X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fmethods%2Fget_resources.py;h=10cf5be5054ffa1e25265e8e64d7ca8e7c92cf61;hb=a5a281fb873faf6f5a3121f487a4d0df0a3588d5;hp=6ee7bb3cb9cfea4879ad1f3498c91f3fa89c91db;hpb=0617bf203bd582103e7f45633cd320b1f80d1fb0;p=sfa.git diff --git a/sfa/methods/get_resources.py b/sfa/methods/get_resources.py index 6ee7bb3c..10cf5be5 100644 --- a/sfa/methods/get_resources.py +++ b/sfa/methods/get_resources.py @@ -29,7 +29,8 @@ 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(None, "Request hash not specified")), + Parameter(str, "Callers credential string") ] returns = Parameter(str, "String representatin of an rspec") @@ -66,13 +67,17 @@ class get_resources(Method): rspec = rspec_manager.get_rspec(self.api, hrn) # Filter the outgoing rspec using sfatables - outgoing_rules = SFATablesRules('OUTGOING') - - request_context = rspec_manager.fetch_context( - hrn, - Credential(string=caller_cred).get_gid_caller().get_hrn(), - outgoing_rules.contexts) - outgoing_rules.set_context(request_context) - filtered_rspec = outgoing_rules.apply(rspec) - - return filtered_rspec + if self.api.interface=='slicemgr': + outgoing_rules = SFATablesRules('FORWARD-OUTGOING') + else: + outgoing_rules = SFATablesRules('OUTGOING') + if outgoing_rules.sorted_rule_list: + request_context = rspec_manager.fetch_context( + hrn, + Credential(string=caller_cred).get_gid_caller().get_hrn(), + outgoing_rules.contexts) + outgoing_rules.set_context(request_context) + filtered_rspec = outgoing_rules.apply(rspec) + return filtered_rspec + else: + return rspec