self.cert = Certificate(filename=cert_file)
# Establish connection to server(s)
self.logger.info("Contacting Registry at: %s"%reg_url)
- self.registry = xmlrpcprotocol.get_server(reg_url, key_file, cert_file, self.options.debug)
+ self.registry = xmlrpcprotocol.get_server(reg_url, key_file, cert_file, self.options)
self.logger.info("Contacting Slice Manager at: %s"%sm_url)
- self.slicemgr = xmlrpcprotocol.get_server(sm_url, key_file, cert_file, self.options.debug)
+ self.slicemgr = xmlrpcprotocol.get_server(sm_url, key_file, cert_file, self.options)
return
record = records[0]
return self.get_server(record['hostname'], CM_PORT, self.key_file, \
- self.cert_file, self.options.debug)
+ self.cert_file, self.options)
- def get_server(self, host, port, keyfile, certfile, debug):
+ def get_server(self, host, port, keyfile, certfile):
"""
Return an instnace of an xmlrpc server connection
"""
url = "http://%s:%s" % (host, port)
- return xmlrpcprotocol.get_server(url, keyfile, certfile, debug)
+ return xmlrpcprotocol.get_server(url, keyfile, certfile, self.options)
def get_server_from_opts(self, opts):
"""
server = self.slicemgr
# direct connection to an aggregate
if hasattr(opts, 'aggregate') and opts.aggregate:
- server = self.get_server(opts.aggregate, opts.port, self.key_file, \
- self.cert_file, self.options.debug)
+ server = self.get_server(opts.aggregate, opts.port, self.key_file, self.cert_file)
# direct connection to the nodes component manager interface
if hasattr(opts, 'component') and opts.component:
server = self.get_component_server_from_hrn(opts.component)
parser = xmlrpclib.ExpatParser(unmarshaller)
return parser, unmarshaller
-def get_server(url, key_file, cert_file, debug=False):
+class XMLRPCServerProxy(xmlrpclib.ServerProxy):
+ def __init__(self, url, transport, allow_none=True, options=None):
+ self.options = options
+ verbose = False
+ if self.options and self.options.debug:
+ verbose = True
+ xmlrpclib.ServerProxy.__init__(self, url, transport, allow_none=allow_none, verbose=verbose)
+
+ def __getattr__(self, attr):
+ if self.options.verbose:
+ print "Calling xml-rpc method:", attr
+ return xmlrpclib.ServerProxy.__getattr__(self, attr)
+
+
+def get_server(url, key_file, cert_file, options=None):
transport = XMLRPCTransport()
transport.key_file = key_file
transport.cert_file = cert_file
- return xmlrpclib.ServerProxy(url, transport, allow_none=True, verbose=debug)
+ return XMLRPCServerProxy(url, transport, allow_none=True, options=options)