From: Tony Mack Date: Tue, 3 Aug 2010 22:25:05 +0000 (+0000) Subject: stop_slice replaced by Stop X-Git-Tag: sfa-1.0-0~104 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=f192b22b57987cb68b17a48105b5dd18dfa3608b;p=sfa.git stop_slice replaced by Stop --- diff --git a/sfa/methods/Stop.py b/sfa/methods/Stop.py new file mode 100644 index 00000000..61c92855 --- /dev/null +++ b/sfa/methods/Stop.py @@ -0,0 +1,41 @@ +### $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 Stop(Method): + """ + Stop the specified slice + + @param cred credential string specifying the rights of the caller + @param xrn human readable name of slice to instantiate (hrn or urn) + @return 1 is successful, faults otherwise + """ + + interfaces = ['aggregate', 'slicemgr', 'component'] + + accepts = [ + Parameter(str, "Human readable name of slice to instantiate (hrn or urn)"), + Mixed(Parameter(str, "Credential string"), + Parameter(type([str]), "List of credentials")), + ] + + returns = Parameter(int, "1 if successful") + + def call(self, xrn, creds): + hrn, type = urn_to_hrn(xrn) + valid_creds = self.api.auth.checkCredentials(creds, 'deletesliver', hrn) + + #log the call + origin_hrn = Credential(string=valid_creds[0]).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, hrn, self.name)) + + manager = self.api.get_interface_manager() + manager.stop_slice(self.api, xrn, valid_creds) + + return 1 diff --git a/sfa/methods/stop_slice.py b/sfa/methods/stop_slice.py index 184b27c4..14d17f20 100644 --- a/sfa/methods/stop_slice.py +++ b/sfa/methods/stop_slice.py @@ -5,11 +5,11 @@ 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 +from sfa.methods.Stop import Stop -class stop_slice(Method): +class stop_slice(Stop): """ + Deprecated. Use Stop instead Stop the specified slice @param cred credential string specifying the rights of the caller @@ -29,33 +29,5 @@ class stop_slice(Method): returns = Parameter(int, "1 if successful") def call(self, cred, xrn, origin_hrn=None): - hrn, type = urn_to_hrn(xrn) - 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, hrn, self.name)) - - # validate the cred - self.api.auth.check(cred, 'stopslice', hrn) - - # 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]) - manager.stop_slice(self.api, xrn) - 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]) - manager.stop_slice(self.api, xrn) - 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]) - manager.stop_slice(self.api, xrn) - return 1 + return Stop.call(self, xrn, cred)