X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fserver%2Faggregate.py;h=9295e3f51477dce5fc3e74b32ccd5e59f8690cae;hb=3d7237fa0b5f2b4a60cb97c7fb3b6aecfd94558a;hp=696c9967fd7133931a06573b4f2b90d1536d64d8;hpb=f13173726f8382eef380f1e754f24dd2b126a77b;p=sfa.git diff --git a/sfa/server/aggregate.py b/sfa/server/aggregate.py index 696c9967..9295e3f5 100644 --- a/sfa/server/aggregate.py +++ b/sfa/server/aggregate.py @@ -8,10 +8,11 @@ import time import xmlrpclib from types import StringTypes, ListType -from sfa.util.geniserver import GeniServer -from sfa.util.geniclient import GeniClient +from sfa.util.server import SfaServer from sfa.util.storage import * from sfa.util.faults import * +import sfa.util.xmlrpcprotocol as xmlrpcprotocol +import sfa.util.soapprotocol as soapprotocol # GeniLight client support is optional try: @@ -20,7 +21,7 @@ except ImportError: GeniClientLight = None -class Aggregate(GeniServer): +class Aggregate(SfaServer): ## # Create a new aggregate object. @@ -29,13 +30,12 @@ class Aggregate(GeniServer): # @param port the port to listen on # @param key_file private key filename of registry # @param cert_file certificate filename containing public key (could be a GID file) - def __init__(self, ip, port, key_file, cert_file): - GeniServer.__init__(self, ip, port, key_file, cert_file) + SfaServer.__init__(self, ip, port, key_file, cert_file) self.server.interface = 'aggregate' ## -# Aggregates is a dictionary of geniclient aggregate connections keyed on the aggregate hrn +# Aggregates is a dictionary of aggregate connections keyed on the aggregate hrn class Aggregates(dict): @@ -44,7 +44,7 @@ class Aggregates(dict): def __init__(self, api, file = "/etc/sfa/aggregates.xml"): dict.__init__(self, {}) self.api = api - + self.interfaces = [] # create default connection dict connection_dict = {} for field in self.required_fields: @@ -70,11 +70,10 @@ class Aggregates(dict): self.aggregate_info.load() self.connectAggregates() - def connectAggregates(self): """ Get connection details for the trusted peer aggregates from file and - create an GeniClient connection to each. + create an connection to each. """ aggregates = self.aggregate_info['aggregates']['aggregate'] if isinstance(aggregates, dict): @@ -87,9 +86,10 @@ class Aggregates(dict): hrn, address, port = aggregate['hrn'], aggregate['addr'], aggregate['port'] if not hrn or not address or not port: continue + self.interfaces.append(aggregate) # check which client we should use - # geniclient is default - client_type = 'geniclient' + # sfa.util.xmlrpcprotocol is default + client_type = 'xmlrpcprotocol' if aggregate.has_key('client') and aggregate['client'] in ['geniclientlight']: client_type = 'geniclientlight' @@ -101,12 +101,14 @@ class Aggregates(dict): if client_type in ['geniclientlight'] and GeniClientLight: self[hrn] = GeniClientLight(url, self.api.key_file, self.api.cert_file) else: - self[hrn] = GeniClient(url, self.api.key_file, self.api.cert_file) + self[hrn] = xmlrpcprotocol.get_server(url, self.api.key_file, self.api.cert_file) # set up a connection to the local registry - # connect to registry using GeniClient - address = self.api.config.GENI_AGGREGATE_HOST - port = self.api.config.GENI_AGGREGATE_PORT + address = self.api.config.SFA_AGGREGATE_HOST + port = self.api.config.SFA_AGGREGATE_PORT url = 'http://%(address)s:%(port)s' % locals() - self[self.api.hrn] = GeniClient(url, self.api.key_file, self.api.cert_file) - + local_aggregate = {'hrn': self.api.hrn, 'addr': address, 'port': port} + self.interfaces.append(local_aggregate) + self[self.api.hrn] = xmlrpcprotocol.get_server(url, self.api.key_file, self.api.cert_file) + +