X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fmethods%2Fget_resources.py;h=4274517934fe91a406999cf652be4f2347b87452;hb=acae426433020998d0d45ed25584ebed0591d036;hp=f5870a1937fcd6bcb74275020ad59146803d4f21;hpb=69cca9d43487b57e00012b570006406d60359245;p=sfa.git diff --git a/sfa/methods/get_resources.py b/sfa/methods/get_resources.py index f5870a19..42745179 100644 --- a/sfa/methods/get_resources.py +++ b/sfa/methods/get_resources.py @@ -28,26 +28,21 @@ class get_resources(Method): Parameter(str, "Credential string"), Mixed(Parameter(str, "Human readable name (hrn)"), Parameter(None, "hrn not specified")), - Mixed(Parameter(str, "Request hash"), - Parameter(None, "Request hash not specified")) + Mixed(Parameter(str, "Human readable name of the original caller"), + Paramater(None, "Origin hrn not specified")) ] returns = Parameter(str, "String representatin of an rspec") - def call(self, cred, hrn=None, request_hash = None): + def call(self, cred, hrn=None, origin_hrn=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() + 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)) - # 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 = 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) + # validate the cred self.api.auth.check(cred, 'listnodes') # send the call to the right manager @@ -56,13 +51,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, gid_origin_caller) + rspec = manager.get_rspec(self.api, hrn, origin_hrn) 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, gid_origin_caller) + rspec = manager.get_rspec(self.api, hrn, origin_hrn) outgoing_rules = SFATablesRules('FORWARD-OUTGOING') filtered_rspec = rspec