Пример #1
0
 def handle_request(self, client, buffer):
     data = buffer.decode('utf-8')
     if not data.strip():
         return
     LOG.debug('Got request: %s', data.strip())
     request = json.loads(data)
     command, args, kwargs = request
     if command not in COMMANDS:
         LOG.warn('unknown command %r', command)
         return
     if args is None:
         args = tuple()
     if kwargs is None:
         kwargs = {}
     command = getattr(self.kernel_api, command)
     response = Future()
     self._channel.thread_send((response, command, args, kwargs))
     result, error = response.result()
     response = json.dumps([result, error], ensure_ascii=False).strip()
     response_bytes = response.encode('utf-8') + b'\n'
     LOG.debug('Send response: %s', response)
     client.sendall(response_bytes)