From 91132a3428c74e43ab0ddb8e8f679afa1638b411 Mon Sep 17 00:00:00 2001 From: Tony Mack Date: Thu, 31 Dec 2009 00:01:00 +0000 Subject: [PATCH] get origin hrn from the credentials gid_origin_caller object --- sfa/methods/get_resources.py | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/sfa/methods/get_resources.py b/sfa/methods/get_resources.py index 399f0e85..f5870a19 100644 --- a/sfa/methods/get_resources.py +++ b/sfa/methods/get_resources.py @@ -29,29 +29,26 @@ class get_resources(Method): Mixed(Parameter(str, "Human readable name (hrn)"), Parameter(None, "hrn not specified")), Mixed(Parameter(str, "Request hash"), - Parameter(None, "Request hash not specified")), - Parameter(str, "Callers credential string") + Parameter(None, "Request hash not specified")) ] returns = Parameter(str, "String representatin of an rspec") - def call(self, cred, hrn=None, request_hash = None, origin_hrn=None): - sfa_aggregate_type = Config().get_aggregate_rspec_type() + def call(self, cred, hrn=None, 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 authority 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 - client_gid = Credential(string=cred).get_gid_caller() + 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], request_hash) self.api.auth.check(cred, 'listnodes') - if origin_hrn==None: - origin_hrn=Credential(string=cred).get_gid_caller().get_hrn() - - #log the call - self.api.logger.info("interface: %s\tcaller-hrn: %s\ttarget-hrn: %s\tmethod-name: %s"%(self.api.interface, origin_hrn, hrn, self.name)) - - # send the call to the right manager manager_base = 'sfa.managers' @@ -59,13 +56,13 @@ class get_resources(Method): mgr_type = self.api.config.SFA_AGGREGATE_TYPE manager_module = manager_base + ".aggregate_manager_%s" % mgr_type manager = __import__(manager_module, fromlist=[manager_base]) - rspec = manager.get_rspec(self.api, hrn, origin_hrn) + rspec = manager.get_rspec(self.api, hrn, gid_origin_caller) outgoing_rules = SFATablesRules('OUTGOING') 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]) - rspec = manager.get_rspec(self.api, hrn, origin_hrn) + rspec = manager.get_rspec(self.api, hrn, gid_origin_caller) outgoing_rules = SFATablesRules('FORWARD-OUTGOING') filtered_rspec = rspec -- 2.43.0