diff options
| author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-05-12 08:30:35 +0100 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-06-02 08:24:02 +0100 |
| commit | 0f2c59367a649de5f57acdccfb4f1fdba9cde730 (patch) | |
| tree | 7a3558a3e08e690fbb0b5bdc4044316f9ab4bbcb /bitbake/lib/bb/server | |
| parent | ef1df516512587ad415f76a9626620992d660e45 (diff) | |
| download | poky-0f2c59367a649de5f57acdccfb4f1fdba9cde730.tar.gz | |
bitbake: bitbake: Convert to python 3
Various misc changes to convert bitbake to python3 which don't warrant
separation into separate commits.
(Bitbake rev: d0f904d407f57998419bd9c305ce53e5eaa36b24)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/server')
| -rw-r--r-- | bitbake/lib/bb/server/process.py | 8 | ||||
| -rw-r--r-- | bitbake/lib/bb/server/xmlrpc.py | 48 |
2 files changed, 29 insertions, 27 deletions
diff --git a/bitbake/lib/bb/server/process.py b/bitbake/lib/bb/server/process.py index cc58c720a2..982fcf71c3 100644 --- a/bitbake/lib/bb/server/process.py +++ b/bitbake/lib/bb/server/process.py | |||
| @@ -30,7 +30,7 @@ import signal | |||
| 30 | import sys | 30 | import sys |
| 31 | import time | 31 | import time |
| 32 | import select | 32 | import select |
| 33 | from Queue import Empty | 33 | from queue import Empty |
| 34 | from multiprocessing import Event, Process, util, Queue, Pipe, queues, Manager | 34 | from multiprocessing import Event, Process, util, Queue, Pipe, queues, Manager |
| 35 | 35 | ||
| 36 | from . import BitBakeBaseServer, BitBakeBaseServerConnection, BaseImplServer | 36 | from . import BitBakeBaseServer, BitBakeBaseServerConnection, BaseImplServer |
| @@ -137,7 +137,7 @@ class ProcessServer(Process, BaseImplServer): | |||
| 137 | if not fds: | 137 | if not fds: |
| 138 | fds = [] | 138 | fds = [] |
| 139 | 139 | ||
| 140 | for function, data in self._idlefuns.items(): | 140 | for function, data in list(self._idlefuns.items()): |
| 141 | try: | 141 | try: |
| 142 | retval = function(self, data, False) | 142 | retval = function(self, data, False) |
| 143 | if retval is False: | 143 | if retval is False: |
| @@ -145,7 +145,7 @@ class ProcessServer(Process, BaseImplServer): | |||
| 145 | nextsleep = None | 145 | nextsleep = None |
| 146 | elif retval is True: | 146 | elif retval is True: |
| 147 | nextsleep = None | 147 | nextsleep = None |
| 148 | elif isinstance(retval, float): | 148 | elif isinstance(retval, float) and nextsleep: |
| 149 | if (retval < nextsleep): | 149 | if (retval < nextsleep): |
| 150 | nextsleep = retval | 150 | nextsleep = retval |
| 151 | elif nextsleep is None: | 151 | elif nextsleep is None: |
| @@ -213,7 +213,7 @@ class BitBakeProcessServerConnection(BitBakeBaseServerConnection): | |||
| 213 | # Wrap Queue to provide API which isn't server implementation specific | 213 | # Wrap Queue to provide API which isn't server implementation specific |
| 214 | class ProcessEventQueue(multiprocessing.queues.Queue): | 214 | class ProcessEventQueue(multiprocessing.queues.Queue): |
| 215 | def __init__(self, maxsize): | 215 | def __init__(self, maxsize): |
| 216 | multiprocessing.queues.Queue.__init__(self, maxsize) | 216 | multiprocessing.queues.Queue.__init__(self, maxsize, ctx=multiprocessing.get_context()) |
| 217 | self.exit = False | 217 | self.exit = False |
| 218 | bb.utils.set_process_name("ProcessEQueue") | 218 | bb.utils.set_process_name("ProcessEQueue") |
| 219 | 219 | ||
diff --git a/bitbake/lib/bb/server/xmlrpc.py b/bitbake/lib/bb/server/xmlrpc.py index ace1cf646b..146ca17b51 100644 --- a/bitbake/lib/bb/server/xmlrpc.py +++ b/bitbake/lib/bb/server/xmlrpc.py | |||
| @@ -31,31 +31,33 @@ | |||
| 31 | in the server's main loop. | 31 | in the server's main loop. |
| 32 | """ | 32 | """ |
| 33 | 33 | ||
| 34 | import os | ||
| 35 | import sys | ||
| 36 | |||
| 37 | import hashlib | ||
| 38 | import time | ||
| 39 | import socket | ||
| 40 | import signal | ||
| 41 | import threading | ||
| 42 | import pickle | ||
| 43 | import inspect | ||
| 44 | import select | ||
| 45 | import http.client | ||
| 46 | import xmlrpc.client | ||
| 47 | from xmlrpc.server import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler | ||
| 48 | |||
| 34 | import bb | 49 | import bb |
| 35 | import xmlrpclib, sys | ||
| 36 | from bb import daemonize | 50 | from bb import daemonize |
| 37 | from bb.ui import uievent | 51 | from bb.ui import uievent |
| 38 | import hashlib, time | 52 | from . import BitBakeBaseServer, BitBakeBaseServerConnection, BaseImplServer |
| 39 | import socket | ||
| 40 | import os, signal | ||
| 41 | import threading | ||
| 42 | try: | ||
| 43 | import cPickle as pickle | ||
| 44 | except ImportError: | ||
| 45 | import pickle | ||
| 46 | 53 | ||
| 47 | DEBUG = False | 54 | DEBUG = False |
| 48 | 55 | ||
| 49 | from SimpleXMLRPCServer import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler | 56 | class BBTransport(xmlrpc.client.Transport): |
| 50 | import inspect, select, httplib | ||
| 51 | |||
| 52 | from . import BitBakeBaseServer, BitBakeBaseServerConnection, BaseImplServer | ||
| 53 | |||
| 54 | class BBTransport(xmlrpclib.Transport): | ||
| 55 | def __init__(self, timeout): | 57 | def __init__(self, timeout): |
| 56 | self.timeout = timeout | 58 | self.timeout = timeout |
| 57 | self.connection_token = None | 59 | self.connection_token = None |
| 58 | xmlrpclib.Transport.__init__(self) | 60 | xmlrpc.client.Transport.__init__(self) |
| 59 | 61 | ||
| 60 | # Modified from default to pass timeout to HTTPConnection | 62 | # Modified from default to pass timeout to HTTPConnection |
| 61 | def make_connection(self, host): | 63 | def make_connection(self, host): |
| @@ -67,7 +69,7 @@ class BBTransport(xmlrpclib.Transport): | |||
| 67 | # create a HTTP connection object from a host descriptor | 69 | # create a HTTP connection object from a host descriptor |
| 68 | chost, self._extra_headers, x509 = self.get_host_info(host) | 70 | chost, self._extra_headers, x509 = self.get_host_info(host) |
| 69 | #store the host argument along with the connection object | 71 | #store the host argument along with the connection object |
| 70 | self._connection = host, httplib.HTTPConnection(chost, timeout=self.timeout) | 72 | self._connection = host, http.client.HTTPConnection(chost, timeout=self.timeout) |
| 71 | return self._connection[1] | 73 | return self._connection[1] |
| 72 | 74 | ||
| 73 | def set_connection_token(self, token): | 75 | def set_connection_token(self, token): |
| @@ -76,11 +78,11 @@ class BBTransport(xmlrpclib.Transport): | |||
| 76 | def send_content(self, h, body): | 78 | def send_content(self, h, body): |
| 77 | if self.connection_token: | 79 | if self.connection_token: |
| 78 | h.putheader("Bitbake-token", self.connection_token) | 80 | h.putheader("Bitbake-token", self.connection_token) |
| 79 | xmlrpclib.Transport.send_content(self, h, body) | 81 | xmlrpc.client.Transport.send_content(self, h, body) |
| 80 | 82 | ||
| 81 | def _create_server(host, port, timeout = 60): | 83 | def _create_server(host, port, timeout = 60): |
| 82 | t = BBTransport(timeout) | 84 | t = BBTransport(timeout) |
| 83 | s = xmlrpclib.ServerProxy("http://%s:%d/" % (host, port), transport=t, allow_none=True) | 85 | s = xmlrpc.client.ServerProxy("http://%s:%d/" % (host, port), transport=t, allow_none=True, use_builtin_types=True) |
| 84 | return s, t | 86 | return s, t |
| 85 | 87 | ||
| 86 | class BitBakeServerCommands(): | 88 | class BitBakeServerCommands(): |
| @@ -128,7 +130,7 @@ class BitBakeServerCommands(): | |||
| 128 | def addClient(self): | 130 | def addClient(self): |
| 129 | if self.has_client: | 131 | if self.has_client: |
| 130 | return None | 132 | return None |
| 131 | token = hashlib.md5(str(time.time())).hexdigest() | 133 | token = hashlib.md5(str(time.time()).encode("utf-8")).hexdigest() |
| 132 | self.server.set_connection_token(token) | 134 | self.server.set_connection_token(token) |
| 133 | self.has_client = True | 135 | self.has_client = True |
| 134 | return token | 136 | return token |
| @@ -232,7 +234,7 @@ class XMLRPCServer(SimpleXMLRPCServer, BaseImplServer): | |||
| 232 | while not self.quit: | 234 | while not self.quit: |
| 233 | fds = [self] | 235 | fds = [self] |
| 234 | nextsleep = 0.1 | 236 | nextsleep = 0.1 |
| 235 | for function, data in self._idlefuns.items(): | 237 | for function, data in list(self._idlefuns.items()): |
| 236 | retval = None | 238 | retval = None |
| 237 | try: | 239 | try: |
| 238 | retval = function(self, data, False) | 240 | retval = function(self, data, False) |
| @@ -267,7 +269,7 @@ class XMLRPCServer(SimpleXMLRPCServer, BaseImplServer): | |||
| 267 | pass | 269 | pass |
| 268 | 270 | ||
| 269 | # Tell idle functions we're exiting | 271 | # Tell idle functions we're exiting |
| 270 | for function, data in self._idlefuns.items(): | 272 | for function, data in list(self._idlefuns.items()): |
| 271 | try: | 273 | try: |
| 272 | retval = function(self, data, True) | 274 | retval = function(self, data, True) |
| 273 | except: | 275 | except: |
| @@ -379,7 +381,7 @@ class BitBakeXMLRPCClient(BitBakeBaseServer): | |||
| 379 | bb.warn("Could not create socket for %s:%s (%s)" % (host, port, str(e))) | 381 | bb.warn("Could not create socket for %s:%s (%s)" % (host, port, str(e))) |
| 380 | raise e | 382 | raise e |
| 381 | try: | 383 | try: |
| 382 | self.serverImpl = XMLRPCProxyServer(host, port) | 384 | self.serverImpl = XMLRPCProxyServer(host, port, use_builtin_types=True) |
| 383 | self.connection = BitBakeXMLRPCServerConnection(self.serverImpl, (ip, 0), self.observer_only, featureset) | 385 | self.connection = BitBakeXMLRPCServerConnection(self.serverImpl, (ip, 0), self.observer_only, featureset) |
| 384 | return self.connection.connect(self.token) | 386 | return self.connection.connect(self.token) |
| 385 | except Exception as e: | 387 | except Exception as e: |
