diff options
author | Ed Bartosh <ed.bartosh@linux.intel.com> | 2016-07-18 19:07:16 +0300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-07-20 10:23:45 +0100 |
commit | 6597ba6b43fff2c8d8179090b4c92ce511c84a20 (patch) | |
tree | d8c68cbfd042c20747b81457393e513f9e4dafe8 | |
parent | dead7b22b4af5292c1a350ac09654b835f5aa4e5 (diff) | |
download | poky-6597ba6b43fff2c8d8179090b4c92ce511c84a20.tar.gz |
bitbake: bitbake: xmlrpc: implement check of connection to server
Implemented check_connection function. The purpose of this function
is to check if bitbake server is accessible and functional.
To check this this function tries to connect to bitbake server and
run getVariable command.
This API is going to be used to implement autoloading of bitbake
server.
[YOCTO #5534]
(Bitbake rev: 1a18f5ceb478f766b53850451549333f655621ea)
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | bitbake/lib/bb/server/xmlrpc.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/bitbake/lib/bb/server/xmlrpc.py b/bitbake/lib/bb/server/xmlrpc.py index 57c59a82dd..4131b52679 100644 --- a/bitbake/lib/bb/server/xmlrpc.py +++ b/bitbake/lib/bb/server/xmlrpc.py | |||
@@ -85,6 +85,23 @@ def _create_server(host, port, timeout = 60): | |||
85 | s = xmlrpc.client.ServerProxy("http://%s:%d/" % (host, port), transport=t, allow_none=True, use_builtin_types=True) | 85 | s = xmlrpc.client.ServerProxy("http://%s:%d/" % (host, port), transport=t, allow_none=True, use_builtin_types=True) |
86 | return s, t | 86 | return s, t |
87 | 87 | ||
88 | def check_connection(remote, timeout): | ||
89 | try: | ||
90 | host, port = remote.split(":") | ||
91 | port = int(port) | ||
92 | except Exception as e: | ||
93 | bb.warn("Failed to read remote definition (%s)" % str(e)) | ||
94 | raise e | ||
95 | |||
96 | server, _transport = _create_server(host, port, timeout) | ||
97 | try: | ||
98 | ret, err = server.runCommand(['getVariable', 'TOPDIR']) | ||
99 | if err or not ret: | ||
100 | return False | ||
101 | except ConnectionError: | ||
102 | return False | ||
103 | return True | ||
104 | |||
88 | class BitBakeServerCommands(): | 105 | class BitBakeServerCommands(): |
89 | 106 | ||
90 | def __init__(self, server): | 107 | def __init__(self, server): |