+def GetInterfaces(slicename, node_ids):
+ interfaces = []
+ ps_slices = Slice.objects.filter(name=slicename)
+ for ps_slice in ps_slices:
+ for ps_sliver in ps_slice.slivers.all():
+ node_id = ps_id_to_pl_id(ps_sliver.node_id)
+ if node_id in node_ids:
+ ps_node = ps_sliver.node
+ interface = {"node_id": node_id,
+ "ip": socket.gethostbyname(ps_node.name),
+ "broadcast": None,
+ "mac": "11:22:33:44:55:66",
+ "bwlimit": None,
+ "network": None,
+ "is_primary": True,
+ "dns1": None,
+ "hostname": None,
+ "netmask": None,
+ "interface_tag_ids": [],
+ "interface_id": node_id, # assume each node has only one interface
+ "gateway": None,
+ "dns2": None,
+ "type": "ipv4",
+ "method": "dhcp"}
+ interfaces.append(interface)
+ return interfaces
+
+def find_multi_slicename(orig_slicename):
+ """
+ Because we sometimes have issues deleting a slice in planetstack and
+ creating a new one, allow us to use a prefix match, that way someone
+ can put a version number of the end of the slicename
+ """
+ global slice_name_map
+ slices = Slice.objects.filter()
+ for slice in slices:
+ if slice.name.startswith(orig_slicename):
+ slice_name_map[slice.name] = orig_slicename
+ return slice.name
+
+ return orig_slicename
+