From 95aaadd69f701b9cc39e8a8484f9dbd755636ccc Mon Sep 17 00:00:00 2001 From: Tony Mack Date: Mon, 16 Aug 2010 21:44:19 +0000 Subject: [PATCH] get_aggregates and get_registries returns full interface details (urn, hrn, url, address, port) --- sfa/methods/get_aggregates.py | 14 +------------- sfa/methods/get_registries.py | 14 +------------- sfa/server/aggregate.py | 7 ++++++- sfa/server/interface.py | 15 +++++++++------ sfa/server/registry.py | 7 ++++++- sfa/trust/auth.py | 1 + 6 files changed, 24 insertions(+), 34 deletions(-) diff --git a/sfa/methods/get_aggregates.py b/sfa/methods/get_aggregates.py index 384b0b60..0ed15f34 100644 --- a/sfa/methods/get_aggregates.py +++ b/sfa/methods/get_aggregates.py @@ -31,16 +31,4 @@ class get_aggregates(Method): hrn, type = urn_to_hrn(xrn) self.api.auth.check(cred, 'list') aggregates = Aggregates(self.api) - hrn_list = [] - if hrn: - if isinstance(hrn, StringTypes): - hrn_list = [hrn] - elif isinstance(hrn, list): - hrn_list = hrn - - if not hrn_list: - interfaces = aggregates.interfaces.keys() - else: - interfaces = [interface for interface in aggregates.interfaces if interface in hrn_list] - - return interfaces + return aggregates.interfaces.values() diff --git a/sfa/methods/get_registries.py b/sfa/methods/get_registries.py index 082c5df8..0d382d61 100644 --- a/sfa/methods/get_registries.py +++ b/sfa/methods/get_registries.py @@ -31,16 +31,4 @@ class get_registries(Method): hrn, type = urn_to_hrn(xrn) self.api.auth.check(cred, 'list') registries = Registries(self.api) - hrn_list = [] - if hrn: - if isinstance(hrn, StringTypes): - hrn_list = [hrn] - elif isinstance(hrn, list): - hrn_list = hrn - - if not hrn_list: - interfaces = registries.interfaces.keys() - else: - interfaces = [interface for interface in registries.interfaces if interface in hrn_list] - - return interfaces + return registries.interfaces.values() diff --git a/sfa/server/aggregate.py b/sfa/server/aggregate.py index 515b9e97..81d87051 100644 --- a/sfa/server/aggregate.py +++ b/sfa/server/aggregate.py @@ -4,6 +4,7 @@ from sfa.util.server import SfaServer from sfa.util.faults import * +from sfa.util.namespace import hrn_to_urn from sfa.server.interface import Interfaces import sfa.util.xmlrpcprotocol as xmlrpcprotocol import sfa.util.soapprotocol as soapprotocol @@ -35,7 +36,11 @@ class Aggregates(Interfaces): address = self.api.config.SFA_AGGREGATE_HOST port = self.api.config.SFA_AGGREGATE_PORT url = 'http://%(address)s:%(port)s' % locals() - local_aggregate = {'hrn': self.api.hrn, 'addr': address, 'port': port} + local_aggregate = {'hrn': self.api.hrn, + 'urn': hrn_to_urn(self.api.hrn, 'authority'), + 'addr': address, + 'port': port, + 'url': url} self.interfaces[self.api.hrn] = local_aggregate # get connections diff --git a/sfa/server/interface.py b/sfa/server/interface.py index 5ccb7ee3..6492e70c 100644 --- a/sfa/server/interface.py +++ b/sfa/server/interface.py @@ -60,6 +60,13 @@ class Interfaces(dict): interfaces = self.interface_info.values()[0].values()[0] if not isinstance(interfaces, list): interfaces = [self.interfaces] + # set the url and urn + for interface in interfaces: + hrn, address, port = interface['hrn'], interface['addr'], interface['port'] + url = 'http://%(address)s:%(port)s' % locals() + interface['url'] = url + interface['urn'] = hrn_to_urn(hrn, 'authority') + self.interfaces = {} required_fields = self.default_fields.keys() for interface in interfaces: @@ -183,12 +190,8 @@ class Interfaces(dict): required_fields = self.default_fields.keys() for interface in self.interfaces.values(): # make sure the required fields are present and not null - if not all([interface.get(key) for key in required_fields]): - continue - - hrn, address, port = interface['hrn'], interface['addr'], interface['port'] - url = 'http://%(address)s:%(port)s' % locals() + url = interface['url'] # check which client we should use # sfa.util.xmlrpcprotocol is default client_type = 'xmlrpcprotocol' @@ -198,6 +201,6 @@ class Interfaces(dict): client_type = 'geniclientlight' connections[hrn] = GeniClientLight(url, self.api.key_file, self.api.cert_file) else: - connections[hrn] = xmlrpcprotocol.get_server(url, self.api.key_file, self.api.cert_file) + connections[interface['hrn']] = xmlrpcprotocol.get_server(url, self.api.key_file, self.api.cert_file) return connections diff --git a/sfa/server/registry.py b/sfa/server/registry.py index 0b92f76e..fb4f0434 100644 --- a/sfa/server/registry.py +++ b/sfa/server/registry.py @@ -7,6 +7,7 @@ from sfa.util.server import SfaServer from sfa.util.faults import * +from sfa.util.namespace import hrn_to_urn from sfa.server.interface import Interfaces import sfa.util.xmlrpcprotocol as xmlrpcprotocol import sfa.util.soapprotocol as soapprotocol @@ -41,7 +42,11 @@ class Registries(Interfaces): address = self.api.config.SFA_REGISTRY_HOST port = self.api.config.SFA_REGISTRY_PORT url = 'http://%(address)s:%(port)s' % locals() - local_registry = {'hrn': self.api.hrn, 'addr': address, 'port': port} + local_registry = {'hrn': self.api.hrn, + 'urn': hrn_to_urn(self.api.hrn, 'authority'), + 'addr': address, + 'port': port, + 'url': url} self.interfaces[self.api.hrn] = local_registry # get connections diff --git a/sfa/trust/auth.py b/sfa/trust/auth.py index f8d09b46..28e86393 100644 --- a/sfa/trust/auth.py +++ b/sfa/trust/auth.py @@ -6,6 +6,7 @@ # +from sfa.trust.certificate import Keypair, Certificate from sfa.trust.credential import Credential from sfa.trust.trustedroot import TrustedRootList from sfa.util.faults import * -- 2.47.0