本文整理汇总了Python中xmlrpc.client.ServerProxy类的典型用法代码示例。如果您正苦于以下问题:Python ServerProxy类的具体用法?Python ServerProxy怎么用?Python ServerProxy使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ServerProxy类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: MySdkTests
class MySdkTests(unittest.TestCase):
def setUp(self):
self.sdk = ServerProxy(RPC_SERVER_URI).sdk
def tearDown(self):
pass
def test_add(self, a=123, b=456):
result = self.sdk.add(a, b)
print("\nsdk.add(%d, %d) = %d" % (a, b, result))
self.assertEqual(result, 579)
def test_subtract(self, a=2015, b=1999):
result = self.sdk.subtract(a, b)
print("\nsdk.subtract(%d, %d) = %d" % (a, b, result))
self.assertEqual(result, 16)
def test_httpGet(self, ip="203.208.48.146"):
result = self.sdk.httpGet(ip)
print("\nsdk.httpGet(%s) is %s" % (ip, result))
self.assertIsNotNone(result)
def test_getDeviceInfo(self):
result = self.sdk.getDeviceInfo()
print("\nsdk.getDeviceInfo() is:\n%s" % (result))
self.assertIsNotNone(result)
示例2: NZBConnection
def NZBConnection(url):
"""Method to connect to NZBget client.
:param url: nzb url to connect
:return: True if connected, else False
"""
nzbGetRPC = ServerProxy(url)
try:
if nzbGetRPC.writelog('INFO', 'Medusa connected to test connection.'):
log.debug('Successfully connected to NZBget')
else:
log.warning('Successfully connected to NZBget but unable to'
' send a message')
return True
except ProtocolError as error:
if error.errmsg == 'Unauthorized':
log.warning('NZBget username or password is incorrect.')
else:
log.error('Protocol Error: {msg}', {'msg': error.errmsg})
return False
except Error as error:
log.warning('Please check your NZBget host and port (if it is running).'
' NZBget is not responding to this combination.'
' Error: {msg}', {'msg': error.errmsg})
return False
except socket.error as error:
log.warning('Please check your NZBget host and port (if it is running).'
' NZBget is not responding to this combination.'
' Socket Error: {msg}', {'msg': error})
return False
示例3: _do_update
def _do_update(self, hwids):
"""Query remote server for driver updates for a set of HardwareIDs."""
logging.debug("Querying XML-RPC driver database %s...", self.url)
client = ServerProxy(self.url)
# TODO: error handling; pass kernel_version, architecture
(res_proto_ver, res_proto_subver, drivers) = client.query(
"20080407",
"0",
{
"os_name": OSLib.inst.os_vendor,
"os_version": OSLib.inst.os_version,
"system_vendor": self.sys_vendor,
"system_product": self.sys_product,
"components": ["%s:%s" % (h.type, h.id) for h in hwids],
},
)
logging.debug(" -> protocol: %s/%s, drivers: %s", res_proto_ver, res_proto_subver, str(drivers))
self.cache = {}
if res_proto_ver != "20080407":
logging.warning(" unknown protocol version, not updating")
return
for hwid in hwids:
for drv in drivers.get("%s:%s" % (hwid.type, hwid.id), []):
if "driver_type" not in drv:
continue
self.cache.setdefault(hwid, []).append(DriverID(**drv))
示例4: __sort_inputs_by_humanoid
def __sort_inputs_by_humanoid(self, possible_events):
if sys.version.startswith("3"):
from xmlrpc.client import ServerProxy
else:
from xmlrpclib import ServerProxy
proxy = ServerProxy("http://%s/" % self.device.humanoid)
request_json = {
"history_view_trees": self.humanoid_view_trees,
"history_events": [x.__dict__ for x in self.humanoid_events],
"possible_events": [x.__dict__ for x in possible_events],
"screen_res": [self.device.display_info["width"],
self.device.display_info["height"]]
}
result = json.loads(proxy.predict(json.dumps(request_json)))
new_idx = result["indices"]
text = result["text"]
new_events = []
# get rid of infinite recursive by randomizing first event
if not self.utg.is_state_reached(self.current_state):
new_first = random.randint(0, len(new_idx) - 1)
new_idx[0], new_idx[new_first] = new_idx[new_first], new_idx[0]
for idx in new_idx:
if isinstance(possible_events[idx], SetTextEvent):
possible_events[idx].text = text
new_events.append(possible_events[idx])
return new_events
示例5: _register_with_server
def _register_with_server(self):
"""
Register child node with server
"""
name = self.name
self.logger.info("attempting to register with roslaunch parent [%s]"%self.server_uri)
try:
server = ServerProxy(self.server_uri)
code, msg, _ = server.register(name, self.uri)
if code != 1:
raise RLException("unable to register with roslaunch server: %s"%msg)
except Exception as e:
self.logger.error("Exception while registering with roslaunch parent [%s]: %s"%(self.server_uri, traceback.format_exc()))
# fail
raise RLException("Exception while registering with roslaunch parent [%s]: %s"%(self.server_uri, traceback.format_exc()))
self.logger.debug("child registered with server")
# register printlog handler so messages are funneled to remote
def serverlog(msg):
server.log(name, Log.INFO, msg)
def servererrlog(msg):
server.log(name, Log.ERROR, msg)
add_printlog_handler(serverlog)
add_printerrlog_handler(servererrlog)
# register process listener to forward process death events to main server
self.pm.add_process_listener(_ProcessListenerForwarder(server))
示例6: _do_update
def _do_update(self, hwids):
'''Query remote server for driver updates for a set of HardwareIDs.'''
logging.debug('Querying XML-RPC driver database %s...', self.url)
client = ServerProxy(self.url)
# TODO: error handling; pass kernel_version, architecture
(res_proto_ver, res_proto_subver, drivers) = client.query(
'20080407', '0', {
'os_name': OSLib.inst.os_vendor,
'os_version': OSLib.inst.os_version,
'system_vendor': self.sys_vendor,
'system_product': self.sys_product,
'components': ['%s:%s' % (h.type, h.id) for h in hwids]
})
logging.debug(' -> protocol: %s/%s, drivers: %s', res_proto_ver,
res_proto_subver, str(drivers))
self.cache = {}
if res_proto_ver != '20080407':
logging.warning(' unknown protocol version, not updating')
return
for hwid in hwids:
for drv in drivers.get('%s:%s' % (hwid.type, hwid.id), []):
if 'driver_type' not in drv:
continue
self.cache.setdefault(hwid, []).append(DriverID(**drv))
示例7: kill_nodes
def kill_nodes(node_names):
"""
Call shutdown on the specified nodes
@return: list of nodes that shutdown was called on successfully and list of failures
@rtype: ([str], [str])
"""
master = rosgraph.Master(ID)
success = []
fail = []
tocall = []
try:
# lookup all nodes keeping track of lookup failures for return value
for n in node_names:
try:
uri = master.lookupNode(n)
tocall.append([n, uri])
except:
fail.append(n)
except socket.error:
raise ROSNodeIOException("Unable to communicate with master!")
for n, uri in tocall:
# the shutdown call can sometimes fail to succeed if the node
# tears down during the request handling, so we assume success
try:
p = ServerProxy(uri)
_succeed(p.shutdown(ID, 'user request'))
except:
pass
success.append(n)
return success, fail
示例8: replicate
def replicate(self, item):
if item is None:
return
path = item[0]
cs_list = item[1]
alive = [x for x in cs_list if self.ns._is_alive_cs(x)]
if len(alive) == 0:
print('There no live cs for chunk', path)
return
if len(alive) >= 2:
print('File', path, 'is already replicated to more than 2 nodes')
return
new_cs = self.ns._select_available_cs(alive)
if new_cs is None:
print("Can't find available cs for replication", path)
else:
try:
cl = ServerProxy(alive[0])
cl.replicate_chunk(path, new_cs)
print("File", path, "replicated to", new_cs)
file = self.ns.root.find_file_by_chunk(path)
if file is not None and path in file.chunks:
file.chunks[path].append(new_cs)
else:
print("Cant find file for chunk", path, "after replication")
except Exception as e:
print('Error during replicatiion', path, 'to', new_cs, ':', e)
示例9: register
def register(self):
"""Tries to register with the Meta-Server"""
foamLogger().info("Trying to register as IP:%s PID:%d Port:%d"
% (self._answerer.ip(),
self._answerer.pid(),self._port))
try:
try:
meta=ServerProxy(
"http://%s:%d" % (config().get(
"Metaserver","ip"),config().getint("Metaserver","port")))
response=meta.registerServer(self._answerer.ip(),
self._answerer.pid(),self._port)
self.isRegistered=True
foamLogger().info("Registered with server. Response "
+ str(response))
except socket.error:
reason = sys.exc_info()[1] # compatible with 2.x and 3.x
foamLogger().warning("Can't connect to meta-server - SocketError: "+str(reason))
except:
foamLogger().error("Can't connect to meta-server - Unknown Error: "+str(sys.exc_info()[0]))
foamLogger().error(str(sys.exc_info()[1]))
foamLogger().error("Traceback: "+str(extract_tb(sys.exc_info()[2])))
except:
# print "Error during registering (no socket module?)"
pass
示例10: list_processes
def list_processes(roslaunch_uris=None):
"""
@param roslaunch_uris: (optional) list of XML-RPCS. If none
are provided, will look up URIs dynamically
@type roslaunch_uris: [str]
@return: list of roslaunch processes
@rtype: [L{NetProcess}]
"""
if not roslaunch_uris:
roslaunch_uris = get_roslaunch_uris()
if not roslaunch_uris:
return []
procs = []
for uri in roslaunch_uris:
try:
r = ServerProxy(uri)
code, msg, val = r.list_processes()
if code == 1:
active, dead = val
procs.extend([NetProcess(a[0], a[1], True, uri) for a in active])
procs.extend([NetProcess(d[0], d[1], False, uri) for d in dead])
except:
#import traceback
#traceback.print_exc()
# don't have a mechanism for reporting these errors upwards yet
pass
return procs
示例11: test_server
def test_server(host='localhost', port=4966):
"""Test for a Larch server on host and port
Arguments
host (str): host name ['localhost']
port (int): port number [4966]
Returns
integer status number:
0 Not in use.
1 Connected, valid Larch server
2 In use, but not a valid Larch server
"""
server = ServerProxy('http://%s:%d' % (host, port))
try:
methods = server.system.listMethods()
except socket.error:
return NOT_IN_USE
# verify that this is a valid larch server
if len(methods) < 5 or 'larch' not in methods:
return NOT_LARCHSERVER
ret = ''
try:
ret = server.get_rawdata('_sys.config.user_larchdir')
except:
return NOT_LARCHSERVER
if len(ret) < 1:
return NOT_LARCHSERVER
return CONNECTED
示例12: get_next_server
def get_next_server(self):
"""
Get the next server online
return rpc server object
"""
#if index is out of list range, scan network again
if self.index_list_online >= len(self.list_online):
self.scan_online_servers()
if len(self.list_online) == 0 :
sys.exit("Couldn't find any server. Verify your connection.")
#get the next server of the list of servers online
self.ip_server = self.list_online[self.index_list_online]
self.index_list_online += 1
#make the structure to connect rpc_server
server_addr = 'http://{}:{}'.format(self.ip_server, self.config.sync_port)
try:
#set configurations of connection
connection = ServerProxy(server_addr)
socket.setdefaulttimeout(10)
#verify if server is online and fine
connection.still_alive()
socket.setdefaulttimeout(None)
#return the object server_rpc
return connection
except:
#try next connection
return self.get_next_server()
示例13: test_get_last_N_minutes
def test_get_last_N_minutes(self):
proxy = ServerProxy('http://127.0.0.1:8000/')
r = proxy.get_last_N_minutes('node-021', 'PH_EXT', 10)
logging.debug(r)
self.assertTrue('ReceptionTime' in r)
self.assertTrue('PH_EXT' in r)
self.assertTrue(len(r['ReceptionTime']) == len(r['PH_EXT']))
示例14: Client
class Client(Cmd):
intro = 'Welcome to the p2p file share shell.\n\
Type help or ? to list commands.'
prompt = '>'
def __init__(self, url, dirname, urlfile):
Cmd.__init__(self)
self.secret = random_string(SECRET_LENGTH)
n = Node(url, dirname, self.secret)
t = Thread(target=n.serve_forever)
t.setDaemon(1)
t.start()
time.sleep(HEAD_START)
self.server = ServerProxy(url)
for line in open(urlfile):
line = line.strip()
self.server.hello(line)
def do_fetch(self, arg):
try:
self.server.fetch(arg, self.secret)
except Fault as f:
if f.faultCode != UNHANDLED:
raise
print("Couldn't find the file ", arg)
def do_exit(self, arg):
sys.exit()
do_EOF = do_exit
示例15: Client
class Client(Cmd):
prompt = '> '
def __init__(self, url, dirname, urlfile):
Cmd.__init__(self)
self.secret = randomString(SECRET_LENGTH)
n = Node(url, dirname, self.secret)
t = Thread(target=n._start)
t.setDaemon(1)
t.start()
sleep(HEAD_START)
self.server = ServerProxy(url)
urlfile = path.join(dirname, urlfile)
for line in open(urlfile):
line = line.strip()
self.server.hello(line)
def do_fetch(self, arg):
try:
self.server.fetch(arg, self.secret)
except Fault as f:
if f.faultCode != UNHANDLED: raise
print("Couldn't find the file", arg)
def do_exit(self, arg):
print()
sys.exit()
do_EOF = do_exit