X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Frspecs%2Faggregates%2Frspec_manager_max.py;h=c6504b997badb4cd701a60926bbc040b9c75c1bd;hb=3d7237fa0b5f2b4a60cb97c7fb3b6aecfd94558a;hp=afedffd4aa84e6edf2faa6870e352d872760ced4;hpb=fb6ab994e5367aecef58e40364dc026a3a693adb;p=sfa.git diff --git a/sfa/rspecs/aggregates/rspec_manager_max.py b/sfa/rspecs/aggregates/rspec_manager_max.py index afedffd4..c6504b99 100644 --- a/sfa/rspecs/aggregates/rspec_manager_max.py +++ b/sfa/rspecs/aggregates/rspec_manager_max.py @@ -1,9 +1,9 @@ #!/usr/bin/python -from sfa.util.rspec import Rspec +from sfa.util.rspec import RSpec import sys import pdb -from sfa.util.misc import * +from sfa.util.namespace import * from sfa.util.rspec import * from sfa.util.specdict import * from sfa.util.faults import * @@ -22,21 +22,21 @@ SFA_MAX_CANNED_RSPEC = '/etc/sfa/max_physical_canned.xml' topology = {} -class GeniOutOfResource(GeniFault): +class SfaOutOfResource(SfaFault): def __init__(self, interface): faultString = "Interface " + interface + " not available" - GeniFault.__init__(self, 100, faultString, '') + SfaFault.__init__(self, 100, faultString, '') -class GeniNoPairRspec(GeniFault): +class SfaNoPairRSpec(SfaFault): def __init__(self, interface, interface2): faultString = "Interface " + interface + " should be paired with " + interface2 - GeniFault.__init__(self, 100, faultString, '') + SfaFault.__init__(self, 100, faultString, '') # Returns a mapping from interfaces to the nodes they lie on and their peer interfaces # i -> node,i_peer def get_interface_map(): - r = Rspec() + r = RSpec() r.parseFile(SFA_MAX_DEFAULT_RSPEC) rspec = r.toDict() capacity = rspec['rspec']['capacity'] @@ -122,11 +122,15 @@ def collapse_alloc_dict(d): def alloc_links(api, hrn, links_to_add, links_to_drop): - pdb.set_trace() slicename=hrn_to_pl_slicename(hrn) for (iface,ip) in links_to_add: node = topology[iface][0][0] - api.plshell.AddSliceTag(api.plauth, slicename, "ip_addresses", ip, node) + try: + api.plshell.AddSliceTag(api.plauth, slicename, "ip_addresses", ip, node) + api.plshell.AddSliceTag(api.plauth, slicename, "vsys", "getvlan", node) + except Exception: + # Probably a duplicate tag. XXX July 21 + pass return True def alloc_nodes(api,hrn, requested_ifs): @@ -136,7 +140,7 @@ def alloc_nodes(api,hrn, requested_ifs): # Taken from slices.py def create_slice_max_aggregate(api, hrn, nodes): - # Get the slice record from geni + # Get the slice record from SFA global topology topology = get_interface_map() slice = {} @@ -263,7 +267,7 @@ def create_slice(api, hrn, rspec_xml): # Check if everything in rspec is either allocated by hrn # or not allocated at all. - r = Rspec() + r = RSpec() r.parseString(rspec_xml) rspec = r.toDict() @@ -284,9 +288,9 @@ def create_slice(api, hrn, rspec_xml): for a in requested_interfaces: if (a not in current_hrn_interfaces and a in current_interfaces): - raise GeniOutOfResource(a) + raise SfaOutOfResource(a) if (topology[a][1] not in requested_interfaces): - raise GeniNoPairRspec(a,topology[a][1]) + raise SfaNoPairRSpec(a,topology[a][1]) # Request OK # Allocations to delete @@ -312,13 +316,13 @@ def rspec_to_allocations(rspec): for l in ifspecs: ifs.extend([(l['name'].replace('tns:',''),l['ip'])]) except KeyError: - # Bad Rspec + # Bad RSpec pass return ifs def main(): t = get_interface_map() - r = Rspec() + r = RSpec() rspec_xml = open(sys.argv[1]).read() #get_rspec(None,'foo') create_slice(None, "plc.princeton.sap0", rspec_xml)