From a92b9cef62f2fca6422d8ae78b6fb3bfff184ebf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jelizaveta=20Leme=C5=A1eva?= Date: Fri, 30 Aug 2024 09:22:02 +0200 Subject: [PATCH] feat(reana_dev): prevent Helm values string wrapping by PyYAML (#827) --- reana/reana_dev/cluster.py | 9 +- tests/test_cluster.py | 174 +++++++++++++++++++++++++++++++++++++ 2 files changed, 180 insertions(+), 3 deletions(-) create mode 100644 tests/test_cluster.py diff --git a/reana/reana_dev/cluster.py b/reana/reana_dev/cluster.py index 0a84e769..5c4437de 100644 --- a/reana/reana_dev/cluster.py +++ b/reana/reana_dev/cluster.py @@ -349,7 +349,7 @@ def job_mounts_to_config(job_mounts): values_dict = {} with open(os.path.join(get_srcdir("reana"), values)) as f: - values_dict = yaml.safe_load(f.read()) + values_dict = yaml.safe_load(f.read()) or {} job_mount_config = job_mounts_to_config(job_mounts) if job_mount_config: @@ -365,9 +365,12 @@ def job_mounts_to_config(job_mounts): find_standard_component_name(c) for c in exclude_components.split(",") ] if "reana-ui" in standard_named_exclude_components: - values_dict["components"]["reana_ui"]["enabled"] = False + values_dict.setdefault("components", {}).setdefault("reana_ui", {})[ + "enabled" + ] = False - values_yaml = yaml.dump(values_dict) if values_dict else "" + # set arbitrary big value for `width` to prevent PyYAML from wrapping long lines + values_yaml = yaml.dump(values_dict, width=100000) if values_dict else "" helm_install = f"cat <