From 08eab785c64ac1370db18f2f1bd2a824313fad1c Mon Sep 17 00:00:00 2001 From: Qubasa Date: Wed, 27 Sep 2023 02:27:53 +0200 Subject: [PATCH] Completely working log streaming --- pkgs/clan-cli/clan_cli/webui/routers/vms.py | 3 ++- pkgs/clan-cli/tests/test_vms_api.py | 11 +++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/pkgs/clan-cli/clan_cli/webui/routers/vms.py b/pkgs/clan-cli/clan_cli/webui/routers/vms.py index 503962a3d..18576f3fe 100644 --- a/pkgs/clan-cli/clan_cli/webui/routers/vms.py +++ b/pkgs/clan-cli/clan_cli/webui/routers/vms.py @@ -144,11 +144,12 @@ async def get_logs(uuid: str) -> StreamingResponse: yield line + "\n" for line in proc.stdout: yield line + "\n" - break + continue while True: out = proc.output line = out.get() if line is None: + log.debug("stream logs and line is None") break yield line diff --git a/pkgs/clan-cli/tests/test_vms_api.py b/pkgs/clan-cli/tests/test_vms_api.py index c06d94ef2..3f62ae75b 100644 --- a/pkgs/clan-cli/tests/test_vms_api.py +++ b/pkgs/clan-cli/tests/test_vms_api.py @@ -40,10 +40,17 @@ def test_create(api: TestClient, test_flake_with_core: Path) -> None: assert response.status_code == 200, "Failed to get vm status" response = api.get(f"/api/vms/{uuid}/logs") - print("=========LOGS==========") + print("=========FLAKE LOGS==========") + for line in response.stream: + assert line != b"", "Failed to get vm logs" + print(line.decode("utf-8"), end="") + print("=========END LOGS==========") + assert response.status_code == 200, "Failed to get vm logs" + + response = api.get(f"/api/vms/{uuid}/logs") + print("=========VM LOGS==========") for line in response.stream: assert line != b"", "Failed to get vm logs" print(line.decode("utf-8"), end="") print("=========END LOGS==========") assert response.status_code == 200, "Failed to get vm logs" - time.sleep(10) \ No newline at end of file