v4.2 backwards compatibility
authorMarc Fiuczynski <mef@cs.princeton.edu>
Fri, 22 May 2009 03:55:18 +0000 (03:55 +0000)
committerMarc Fiuczynski <mef@cs.princeton.edu>
Fri, 22 May 2009 03:55:18 +0000 (03:55 +0000)
PLC/Methods/GetSlices.py
PLC/Methods/GetSlivers.py

index d235ef1..eed38df 100644 (file)
@@ -7,7 +7,7 @@ from PLC.Persons import Person, Persons
 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
@@ -74,3 +74,20 @@ class GetSlices(Method):
                    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
index 781f2d0..5405d5f 100644 (file)
@@ -103,7 +103,7 @@ def get_slivers(api, slice_filter, node = None):
 
     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
@@ -226,3 +226,32 @@ class GetSlivers(Method):
            '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