logging should take place befor call has a chance to exit
authorTony Mack <tmack@cs.princeton.edu>
Wed, 30 Dec 2009 23:47:26 +0000 (23:47 +0000)
committerTony Mack <tmack@cs.princeton.edu>
Wed, 30 Dec 2009 23:47:26 +0000 (23:47 +0000)
sfa/methods/create_slice.py

index 3e07f14..ca37b06 100644 (file)
@@ -37,21 +37,21 @@ class create_slice(Method):
     returns = Parameter(int, "1 if successful")
     
     def call(self, cred, hrn, requested_rspec, request_hash=None):
-        
+        user_cred = Credential(string=cred)
+       
+        #log the call
+        gid_origin_caller = user_cred.get_gid_origin_caller()
+        origin_hrn = gid_origin_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))
+         
         # This cred will be an slice cred, not a user, so we cant use it to
         # authenticate the caller's request_hash. Let just get the caller's gid
         # from the cred and authenticate using that
-        user_cred = Credential(string=cred)
         client_gid = user_cred.get_gid_caller()
         client_gid_str = client_gid.save_to_string(save_parents=True)
         self.api.auth.authenticateGid(client_gid_str, [cred, hrn, requested_rspec], request_hash)
         self.api.auth.check(cred, 'createslice')
 
-        #log the call
-        gid_origin_caller = user_cred.get_gid_origin_caller()
-        origin_hrn = gid_origin_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))
-
         sfa_aggregate_type = Config().get_aggregate_rspec_type()
         rspec_manager = __import__("sfa.rspecs.aggregates.rspec_manager_"+sfa_aggregate_type, fromlist = ["sfa.rspecs.aggregates"])
         #Filter the incoming rspec using sfatables