from sfa.util.policy import Policy
from sfa.rspecs.rspec import RSpec
from sfa.plc.vlink import VLink
+from sfa.util.xrn import Xrn
MAXINT = 2L**31-1
except:
self.api.logger.log_exc('Failed to add/remove slice from nodes')
- def verify_slice_links(self, slice, links, aggregate):
+ def verify_slice_links(self, links, aggregate):
# nodes is undefined here
- if not links or not aggregate.nodes:
+ if not links:
return
+
for link in links:
- topo_rspec = VLink.get_topo_rspec(link)
+ # get the ip address of the first node in the link
+ ifname1 = Xrn(link['interface1']).get_leaf()
+ (node, device) = ifname1.split(':')
+ node_id = int(node.replace('node', ''))
+ node = aggregate.nodes[node_id]
+ if1 = aggregate.interfaces[node['interface_ids'][0]]
+ ipaddr = if1['ip']
+ topo_rspec = VLink.get_topo_rspec(link, ipaddr)
+ self.api.plshell.AddSliceTag(self.api.plauth, slice['name'], 'topo_rspec', topo_rspec, node_id)
+
def handle_peer(self, site, slice, persons, peer):