+ def get_sitenodes(self, nodes):
+ n = []
+ for i in self.node_ids:
+ n.append(nodes[i])
+ return n
+
+ def add_adjacency(self, site):
+ self.adj_site_ids.add(site.id)
+ for n in site.node_ids:
+ self.adj_node_ids.add(n)
+
+
+class Slice:
+ def __init__(self, slice):
+ self.id = slice['slice_id']
+ self.name = slice['name']
+ self.node_ids = set(slice['node_ids'])
+ self.slice_tag_ids = slice['slice_tag_ids']
+ self.attrs = {}
+
+ def get_tag(self, tagname, slicetags):
+ if tagname not in self.attrs:
+ for i in self.slice_tag_ids:
+ if slicetags[i].tagname == tagname:
+ self.attrs[tagname] = slicetags[i]
+ break
+ else:
+ self.attrs[tagname] = None
+ return self.attrs[tagname]
+
+ def get_nodes(self, nodes):
+ n = []
+ for id in self.node_ids:
+ n.append(nodes[id])
+ return n
+
+ def get_rspec(self, slicetags, node):
+ for i in self.slice_tag_ids:
+ tag = slicetags[i]
+ if tag.tagname == 'topo_rspec' and node.id == tag.node_id:
+ return tag
+ else:
+ return None
+