From ce9588d74a160c88bcea8445febce805f4d8c635 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bar=C4=B1=C5=9F=20Metin?= Date: Mon, 4 Oct 2010 18:17:24 +0200 Subject: [PATCH] on client (sfi.py), when verbose flag is given print xml-rpc method calls. --- sfa/client/sfi.py | 13 ++++++------- sfa/util/xmlrpcprotocol.py | 18 ++++++++++++++++-- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/sfa/client/sfi.py b/sfa/client/sfi.py index f3b84906..3d9c0f17 100755 --- a/sfa/client/sfi.py +++ b/sfa/client/sfi.py @@ -310,9 +310,9 @@ class Sfi: self.cert = Certificate(filename=cert_file) # Establish connection to server(s) if self.options.verbose : print "Contacting Registry at:", 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) if self.options.verbose : print "Contacting Slice Manager at:", 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 @@ -495,14 +495,14 @@ class Sfi: 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): """ @@ -512,8 +512,7 @@ class Sfi: 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) diff --git a/sfa/util/xmlrpcprotocol.py b/sfa/util/xmlrpcprotocol.py index 11a4317d..d7599737 100644 --- a/sfa/util/xmlrpcprotocol.py +++ b/sfa/util/xmlrpcprotocol.py @@ -45,10 +45,24 @@ class XMLRPCTransport(xmlrpclib.Transport): 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) -- 2.43.0