get_slices has been replaced by ListSlices
authorTony Mack <tmack@cs.princeton.edu>
Thu, 5 Aug 2010 02:37:55 +0000 (02:37 +0000)
committerTony Mack <tmack@cs.princeton.edu>
Thu, 5 Aug 2010 02:37:55 +0000 (02:37 +0000)
sfa/managers/aggregate_manager_pl.py
sfa/managers/slice_manager_pl.py
sfa/methods/ListSlices.py [new file with mode: 0644]
sfa/methods/__init__.py
sfa/methods/get_slices.py

index 4e31045..c0bdb5c 100644 (file)
@@ -206,7 +206,7 @@ def delete_slice(api, xrn, creds):
         api.plshell.BindObjectToPeer(api.plauth, 'slice', slice['slice_id'], peer, slice['peer_slice_id'])
     return 1
 
-def get_slices(api):
+def get_slices(api, creds):
     # look in cache first
     if api.cache:
         slices = api.cache.get('slices')
index cc0f6b5..e305e4d 100644 (file)
@@ -203,7 +203,7 @@ def status(api, xrn, creds):
     """
     return 1
 
-def get_slices(api):
+def get_slices(api, creds):
     # look in cache first
     if api.cache:
         slices = api.cache.get('slices')
@@ -216,7 +216,7 @@ def get_slices(api):
     threads = ThreadManager()
     for aggregate in api.aggregates:
         server = api.aggregates[aggregate]
-        threads.run(server.get_slices, credential)
+        threads.run(server.ListSlices, credential)
 
     # combime results
     results = threads.get_results()
diff --git a/sfa/methods/ListSlices.py b/sfa/methods/ListSlices.py
new file mode 100644 (file)
index 0000000..784effa
--- /dev/null
@@ -0,0 +1,37 @@
+### $Id: stop_slice.py 17732 2010-04-19 21:10:45Z tmack $
+### $URL: https://svn.planet-lab.org/svn/sfa/trunk/sfa/methods/stop_slice.py $
+
+from sfa.util.faults import *
+from sfa.util.namespace import *
+from sfa.util.method import Method
+from sfa.util.parameter import Parameter, Mixed
+from sfa.trust.auth import Auth
+from sfa.trust.credential import Credential
+class ListSlices(Method):
+    """
+    List the slices instantiated at this interface       
+
+    @param cred credential string specifying the rights of the caller
+    @return 1 is successful, faults otherwise  
+    """
+
+    interfaces = ['aggregate', 'slicemgr', 'component']
+    
+    accepts = [
+        Mixed(Parameter(str, "Credential string"),
+              Parameter(type([str]), "List of credentials")),
+        ]
+
+    returns = Parameter(list, "List of slice names")
+    
+    def call(self, creds):
+        valid_creds = self.api.auth.checkCredentials(creds, 'listslices')
+
+        #log the call
+        origin_hrn = Credential(string=valid_creds[0]).get_gid_caller().get_hrn()
+        self.api.logger.info("interface: %s\tcaller-hrn: %s\tmethod-name: %s"%(self.api.interface, origin_hrn, self.name))
+
+        manager = self.api.get_interface_manager() 
+        return manager.get_slices(self.api, valid_creds)
index bbff898..070d38e 100644 (file)
@@ -25,6 +25,7 @@ update
 remove_peer_object
 GetVersion
 ListResources
+ListSlices
 CreateSliver
 UpdateSliver
 get_geni_aggregates
index 402bf0a..87aad94 100644 (file)
@@ -4,12 +4,11 @@
 from sfa.util.faults import *
 from sfa.util.method import Method
 from sfa.util.parameter import Parameter, Mixed
-from sfa.trust.auth import Auth
-from sfa.plc.slices import Slices
-from sfa.trust.credential import Credential
+from sfa.methods.ListSlices import ListSlices
 
-class get_slices(Method):
+class get_slices(ListSlices):
     """
+    Deprecated. Use ListSlices instead.
     Get a list of instantiated slices at this authority.      
 
     @param cred credential string specifying the rights of the caller
@@ -27,32 +26,5 @@ class get_slices(Method):
     returns = [Parameter(str, "Human readable slice name (hrn)")]
     
     def call(self, cred, origin_hrn=None):
-        user_cred = Credential(string=cred)
-        #log the call
-        if not origin_hrn:
-            origin_hrn = user_cred.get_gid_caller().get_hrn()
-        self.api.logger.info("interface: %s\tcaller-hrn: %s\ttarget-hrn: %s\tmethod-name: %s"%(self.api.interface, origin_hrn, None, self.name))
 
-        # validate the cred
-        self.api.auth.check(cred, 'listslices')
-
-        slices = []
-        # send the call to the right manager 
-        manager_base = 'sfa.managers'
-        if self.api.interface in ['component']:
-            mgr_type = self.api.config.SFA_CM_TYPE
-            manager_module = manager_base + ".component_manager_%s" % mgr_type
-            manager = __import__(manager_module, fromlist=[manager_base])
-            slices = manager.get_slices(self.api)
-        elif self.api.interface in ['aggregate']:
-            mgr_type = self.api.config.SFA_AGGREGATE_TYPE
-            manager_module = manager_base + ".aggregate_manager_%s" % mgr_type
-            manager = __import__(manager_module, fromlist=[manager_base])
-            slices = manager.get_slices(self.api)
-        elif self.api.interface in ['slicemgr']:
-            mgr_type = self.api.config.SFA_SM_TYPE
-            manager_module = manager_base + ".slice_manager_%s" % mgr_type
-            manager = __import__(manager_module, fromlist=[manager_base])
-            slices = manager.get_slices(self.api)
-
-        return slices
+        return ListSlices.call(self, cred)