From 9cf8624b78e531482b44f6a13a862b30bf60fba4 Mon Sep 17 00:00:00 2001 From: killkelleyr Date: Wed, 11 Sep 2024 10:40:31 -0400 Subject: [PATCH 1/3] Resolving issue with regex for composer environments --- composer/tools/composer_dags.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer/tools/composer_dags.py b/composer/tools/composer_dags.py index 3ae090a90d3c..6dc7544e554f 100644 --- a/composer/tools/composer_dags.py +++ b/composer/tools/composer_dags.py @@ -33,7 +33,7 @@ class DAG: """Provides necessary utils for Composer DAGs.""" COMPOSER_AF_VERSION_RE = re.compile( - "composer-([0-9]+).([0-9]+).([0-9]+).*" "-airflow-([0-9]+).([0-9]+).([0-9]+).*" + "composer-(\d+(?:\.\d+){0,2})-airflow-(\d+(?:\.\d+){0,2}).*" ) @staticmethod From 5197f429b0b97daa944bfc45037aed7d7fd0af12 Mon Sep 17 00:00:00 2001 From: killkelleyr Date: Wed, 11 Sep 2024 11:27:27 -0400 Subject: [PATCH 2/3] updating formatting --- composer/tools/composer_dags.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer/tools/composer_dags.py b/composer/tools/composer_dags.py index 6dc7544e554f..aab0e468a4fb 100644 --- a/composer/tools/composer_dags.py +++ b/composer/tools/composer_dags.py @@ -33,7 +33,7 @@ class DAG: """Provides necessary utils for Composer DAGs.""" COMPOSER_AF_VERSION_RE = re.compile( - "composer-(\d+(?:\.\d+){0,2})-airflow-(\d+(?:\.\d+){0,2}).*" + r"composer-(\d+(?:\.\d+){0,2})-airflow-(\d+(?:\.\d+){0,2}).*" ) @staticmethod From 9132e383129c2eb490d87862496f0a570aff5b69 Mon Sep 17 00:00:00 2001 From: killkelleyr Date: Thu, 12 Sep 2024 15:12:30 -0400 Subject: [PATCH 3/3] modifications to ensure we pad version with '0' in the event we are missing 3 elements for the version --- composer/tools/composer_dags.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/composer/tools/composer_dags.py b/composer/tools/composer_dags.py index aab0e468a4fb..0808bda95635 100644 --- a/composer/tools/composer_dags.py +++ b/composer/tools/composer_dags.py @@ -169,6 +169,8 @@ def main( "Image version: %s", environment_info["config"]["softwareConfig"]["imageVersion"], ) + # Split each version on '.' and pad with '0' to ensure minor and patch included + versions = [int(num) if num.isdigit() else 0 for version in versions for num in (version.split('.') + ['0', '0'])[:3]] airflow_version = (int(versions[3]), int(versions[4]), int(versions[5])) list_of_dags = DAG.get_list_of_dags( project_name=project_name,