Merge branch 'master' of git://git.onelab.eu/sfa
[sfa.git] / sfa / methods / Delete.py
index 9dfebda..9204256 100644 (file)
@@ -4,6 +4,7 @@ from sfa.storage.parameter import Parameter, Mixed
 from sfa.trust.auth import Auth
 from sfa.trust.credential import Credential
 
+
 class Delete(Method):
     """
     Remove the slice or slivers and free the allocated resources        
@@ -14,23 +15,24 @@ class Delete(Method):
     """
 
     interfaces = ['aggregate', 'slicemgr', 'component']
-    
+
     accepts = [
-        Parameter([str], "Human readable name of slice to delete (hrn or urn)"),
-        Mixed(Parameter(str, "Credential string"),
-              Parameter(type([str]), "List of credentials")),
+        Parameter(
+            type([str]), "Human readable name of slice to delete (hrn or urn)"),
+        Parameter(type([dict]), "Credentials"),
         Parameter(dict, "options"),
-        ]
+    ]
 
     returns = Parameter(int, "1 if successful")
-    
+
     def call(self, xrns, creds, options):
-        valid_creds = self.api.auth.checkCredentials(creds, 'deletesliver', xrns)
+        valid_creds = self.api.auth.checkCredentialsSpeaksFor(creds, 'deletesliver', xrns,
+                                                              check_sliver_callback=self.api.driver.check_sliver_credentials,
+                                                              options=options)
 
-        #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, xrns, self.name))
+        # log the call
+        origin_hrn = Credential(cred=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, xrns, self.name))
 
-        self.api.manager.Delete(self.api, xrns, options)
-        return 1 
+        return self.api.manager.Delete(self.api, xrns, creds, options)