From 11779389f45a8037247478c4da36eee69fed4d25 Mon Sep 17 00:00:00 2001 From: utkarsh sharma Date: Thu, 5 Oct 2023 18:40:57 +0530 Subject: [PATCH 1/2] Fix autodetect_docker_context for list of dict case --- .../src/airflow_breeze/utils/docker_command_utils.py | 5 ++++- dev/breeze/tests/test_docker_command_utils.py | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py b/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py index c77289383ad7b..fe887ba8ebaad 100644 --- a/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py +++ b/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py @@ -828,7 +828,10 @@ def autodetect_docker_context(): if result.returncode != 0: get_console().print("[warning]Could not detect docker builder. Using default.[/]") return "default" - context_dicts = (json.loads(line) for line in result.stdout.splitlines() if line.strip()) + try: + context_dicts = json.loads(result.stdout) + except json.decoder.JSONDecodeError: + context_dicts = (json.loads(line) for line in result.stdout.splitlines() if line.strip()) known_contexts = {info["Name"]: info for info in context_dicts} if not known_contexts: get_console().print("[warning]Could not detect docker builder. Using default.[/]") diff --git a/dev/breeze/tests/test_docker_command_utils.py b/dev/breeze/tests/test_docker_command_utils.py index 234904a66860d..00749ccbc01ad 100644 --- a/dev/breeze/tests/test_docker_command_utils.py +++ b/dev/breeze/tests/test_docker_command_utils.py @@ -228,6 +228,16 @@ def _fake_ctx_output(*names: str) -> str: "desktop-linux", "[info]Using desktop-linux as context", ), + ( + _fake_ctx_output("a", "default", "desktop-linux"), + "desktop-linux", + "[info]Using desktop-linux as context", + ), + ( + '[{"Name": "desktop-linux", "DockerEndpoint": "unix://desktop-linux"}]', + "desktop-linux", + "[info]Using desktop-linux as context", + ), ], ) def test_autodetect_docker_context(context_output: str, selected_context: str, console_output: str): From c4d525b474c09d665be1489b39d91b4d14a11363 Mon Sep 17 00:00:00 2001 From: utkarsh sharma Date: Thu, 5 Oct 2023 19:02:21 +0530 Subject: [PATCH 2/2] Handle the case of dict --- dev/breeze/src/airflow_breeze/utils/docker_command_utils.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py b/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py index fe887ba8ebaad..b68bb38cfdb3b 100644 --- a/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py +++ b/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py @@ -830,6 +830,8 @@ def autodetect_docker_context(): return "default" try: context_dicts = json.loads(result.stdout) + if isinstance(context_dicts, dict): + context_dicts = [context_dicts] except json.decoder.JSONDecodeError: context_dicts = (json.loads(line) for line in result.stdout.splitlines() if line.strip()) known_contexts = {info["Name"]: info for info in context_dicts}