from PLC.Sites import Site, Sites
from PLC.Slices import Slice, Slices
-class GetSlices(Method):
+class v43GetSlices(Method):
"""
Returns an array of structs containing details about slices. If
slice_filter is specified and is an array of slice identifiers or
del slice['slice_id']
return slices
+
+class v42GetSlices(v43GetSlices):
+
+ def call(self, auth, slice_filter = None, return_fields = None):
+ # convert nodenetwork_ids -> interface_ids
+ if slice_filter <> None and \
+ slice_filter.has_key('slice_attribute_ids') and \
+ not slice_filter.has_key('slice_tag_ids'):
+ slice_filter['slice_tag_ids']=slice_filter['slice_attribute_ids']
+ slices = v43GetSlices.call(self,auth,slice_filter,return_fields)
+ # add in a slice_tag_ids -> slice_attribute_ids
+ for slice in slices:
+ if slice.has_key('slice_tag_ids'):
+ slice['slice_attribute_ids']=slice['slice_tag_ids']
+ return slices
+
+GetSlices=v42GetSlices
return slivers
-class GetSlivers(Method):
+class v43GetSlivers(Method):
"""
Returns a struct containing information about the specified node
(or calling node, if called by a node and node_id_or_hostname is
'initscripts': initscripts,
'slivers': slivers
}
+
+class v42GetSlivers(v43GetSlivers):
+ """
+ Returns a struct containing information about the specified node
+ (or calling node, if called by a node and node_id_or_hostname is
+ not specified), including the current set of slivers bound to the
+ node.
+
+ All of the information returned by this call can be gathered from
+ other calls, e.g. GetNodes, GetInterfaces, GetSlices, etc. This
+ function exists almost solely for the benefit of Node Manager.
+ """
+
+ def call(self, auth, node_id_or_hostname = None):
+ result = v43GetSlivers.call(self,auth,node_id_or_hostname)
+ networks = result['networks']
+
+ for i in range(0,len(networks)):
+ network = networks[i]
+ if network.has_key("interface_id"):
+ network['nodenetwork_id']=network['interface_id']
+ if network.has_key("interface_tag_ids"):
+ network['nodenetwork_setting_ids']=network['interface_tag_ids']
+ networks[i]=network
+
+ result['networks']=networks
+ return result
+
+GetSlivers = v42GetSlivers