X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fplc%2Fnodes.py;h=f80bd1ab394eb4f60356d480120f3b3f7de82f85;hb=3d7237fa0b5f2b4a60cb97c7fb3b6aecfd94558a;hp=5c0777ae6bb15a716db758943d4fe090ada0a16d;hpb=6c8152ed40590db2fe7f13f7a29c4d222b2ea764;p=sfa.git diff --git a/sfa/plc/nodes.py b/sfa/plc/nodes.py index 5c0777ae..f80bd1ab 100644 --- a/sfa/plc/nodes.py +++ b/sfa/plc/nodes.py @@ -7,7 +7,7 @@ import datetime import sys import traceback -from sfa.util.misc import * +from sfa.util.namespace import * from sfa.util.rspec import * from sfa.util.specdict import * from sfa.util.faults import * @@ -20,7 +20,7 @@ from sfa.server.aggregate import Aggregates class Nodes(SimpleStorage): - def __init__(self, api, ttl = 1, caller_cred=None): + def __init__(self, api, ttl = 1, origin_hrn=None): self.api = api self.ttl = ttl self.threshold = None @@ -31,7 +31,7 @@ class Nodes(SimpleStorage): SimpleStorage.__init__(self, self.nodes_file) self.policy = Policy(api) self.load() - self.caller_cred=caller_cred + self.origin_hrn = origin_hrn def refresh(self): @@ -110,18 +110,13 @@ class Nodes(SimpleStorage): rspecs = {} networks = [] rspec = RSpec() - credential = self.api.getCredential() + credential = self.api.getCredential() + origin_hrn = self.origin_hrn for aggregate in aggregates: + if aggregate not in [self.api.auth.client_cred.get_gid_caller().get_hrn()]: try: - caller_cred = self.caller_cred # get the rspec from the aggregate - try: - request_hash=None - agg_rspec = aggregates[aggregate].get_resources(credential, hrn, request_hash, caller_cred) - except: - arg_list = [credential, hrn] - request_hash = self.api.key.compute_hash(arg_list) - agg_rspec = aggregates[aggregate].get_resources(credential, hrn, request_hash, caller_cred) + agg_rspec = aggregates[aggregate].get_resources(credential, hrn, origin_hrn) # extract the netspec from each aggregates rspec rspec.parseString(agg_rspec) networks.extend([{'NetSpec': rspec.getDictsByTagName('NetSpec')}]) @@ -208,7 +203,7 @@ class Nodes(SimpleStorage): elif self.api.plshell_version in ['4.3']: interface_ids.extend(node['interface_ids']) else: - raise GeniAPIError, "Unsupported plcapi version ", \ + raise SfaAPIError, "Unsupported plcapi version ", \ self.api.plshell_version if self.api.plshell_version in ['4.2']: @@ -216,7 +211,7 @@ class Nodes(SimpleStorage): elif self.api.plshell_version in ['4.3']: interfaces = self.api.plshell.GetInterfaces(self.api.plauth, interface_ids) else: - raise GeniAPIError, "Unsupported plcapi version ", \ + raise SfaAPIError, "Unsupported plcapi version ", \ self.api.plshell_version interface_dict = {} for interface in interfaces: @@ -225,7 +220,7 @@ class Nodes(SimpleStorage): elif self.api.plshell_version in ['4.3']: interface_dict[interface['interface_id']] = interface else: - raise GeniAPIError, "Unsupported plcapi version", \ + raise SfaAPIError, "Unsupported plcapi version", \ self.api.plshell_version # join nodes with thier interfaces @@ -238,7 +233,7 @@ class Nodes(SimpleStorage): for interface_id in node['interface_ids']: node['interfaces'].append(interface_dict[interface_id]) else: - raise GeniAPIError, "Unsupported plcapi version", \ + raise SfaAPIError, "Unsupported plcapi version", \ self.api.plshell_version # convert and threshold to ints