diff options
author | 2018-05-27 11:34:39 +0200 | |
---|---|---|
committer | 2018-05-27 11:34:39 +0200 | |
commit | 7ce4bff4b6e707542bc2cabe604f15eefb432e12 (patch) | |
tree | 8cbd358746a02bd8b22f4529dd2fcdf1ccb8a0ca | |
parent | kick off jobs in their own processes (diff) |
now also captures stderr
-rw-r--r-- | rmq.py | 6 | ||||
-rw-r--r-- | snekbox.py | 21 | ||||
-rw-r--r-- | snekweb.py | 2 |
3 files changed, 19 insertions, 10 deletions
@@ -111,13 +111,11 @@ class Rmq(object): properties=self.properties) if result: - log.info((f"published message: {self.host} " - f"port: {self.port} " - f"exchange: {exchange} " + log.info((f"published: {self.host} " f"queue: {queue} " f"message: {message}")) else: - log.error(f"Messge '{message}' not delivered") + log.error(f"Message '{message}' not delivered") except ConnectionClosed: log.error(f"Could not send message, connection to {self.host} was lost") @@ -16,24 +16,35 @@ def execute(body): failed = False old_stdout = sys.stdout + old_stderr = sys.stderr redirected_output = sys.stdout = io.StringIO() + redirected_error = sys.stderr = io.StringIO() + snek_msg = json.loads(msg) + snekid = snek_msg['snekid'] + snekcode = snek_msg['message'].strip() try: - - snek_msg = json.loads(msg) - for snekid, snekcode in snek_msg.items(): - exec(snekcode) + exec(snekcode) except Exception as e: failed = str(e) finally: sys.stdout = old_stdout + sys.stderr = old_stderr if failed: result = failed.strip() + log.debug(f"this was captured via exception: {result}") + + result_err = redirected_error.getvalue().strip() + result_ok = redirected_output.getvalue().strip() - result = redirected_output.getvalue().strip() + if result_err: + log.debug(f"this was captured via stderr: {result_err}") + result = result_err + if result_ok: + result = result_ok log.info(f"outgoing: {result}") @@ -54,7 +54,7 @@ def websocket_route(ws, snekboxid): while not ws.closed: message = ws.receive() if message: - snek_msg = json.dumps({snekboxid: message}) + snek_msg = json.dumps({"snekid": snekboxid, "message": message}) log.info(f"User {snekboxid} sends message\n{message.strip()}") rmq.publish(snek_msg) |