diff --git a/scripts/coreos-device b/scripts/coreos-device index d5caa1a..2830089 100755 --- a/scripts/coreos-device +++ b/scripts/coreos-device @@ -46,6 +46,12 @@ def swupdate_www_push(image, device, port): loop = asyncio.new_event_loop() returncode = loop.run_until_complete(swupdate_www_push_async(image, device, port)) loop.close() + + if returncode == 0: + click.secho("coreos-device: Update was successfull", bg="green") + else: + click.secho(f"coreos-device: Update has failed!", bg="red") + sys.exit(returncode) @@ -74,10 +80,10 @@ async def swupdate_www_push_data(session, url, image): try: async with session.post(f"{url}/upload", data=data) as resp: if resp.status == 200: - click.secho("coreos-device: Update was successfull", bg="green") + click.secho(f"coreos-device: http status {resp.status}", bg="white", fg="black") return 0 else: - click.secho(f"coreos-device: status {resp.status}, {await resp.text}", bg="red") + click.secho(f"coreos-device: http status {resp.status}, {await resp.text()}", bg="red") return resp.status except Exception as e: click.secho(f"coreos-device: ERROR: {e}", bg="red") @@ -85,6 +91,7 @@ async def swupdate_www_push_data(session, url, image): async def swupdate_www_websocket_logger(session, url): + return_code = 0 try: async with session.ws_connect(f"{url}/ws") as ws: async for msg in ws: @@ -94,15 +101,18 @@ async def swupdate_www_websocket_logger(session, url): if "Waiting for requests" in msg: await ws.close() return 1 - elif "ERROR" in msg: + elif "ERROR" in msg or "not successful" in msg: click.secho("swupdate: " + data["text"], fg='red') + return_code = 1 + elif "successful" in msg: + click.secho("swupdate: " + data["text"], fg="green") else: - click.secho("swupdate: " + data["text"], fg='green') + click.secho("swupdate: " + data["text"]) if data["type"] == "status": if data["status"] == "DONE": await ws.close() - return 0 + return return_code except Exception as e: click.secho(f"coreos-device: ERROR: {e}", bg="red") return 1