From 5b3d96d29b52a76fce6de26a66f7187bc19c4370 Mon Sep 17 00:00:00 2001 From: fege Date: Thu, 11 Sep 2025 15:59:32 +0200 Subject: [PATCH 1/3] change: RHOAIENG-32026 remove duplication for mysql commands --- .../model_registry/negative_tests/conftest.py | 28 +++++----------- tests/model_registry/negative_tests/utils.py | 33 +++++++++++++++++++ 2 files changed, 41 insertions(+), 20 deletions(-) create mode 100644 tests/model_registry/negative_tests/utils.py diff --git a/tests/model_registry/negative_tests/conftest.py b/tests/model_registry/negative_tests/conftest.py index face5bfa2..fb5d81005 100644 --- a/tests/model_registry/negative_tests/conftest.py +++ b/tests/model_registry/negative_tests/conftest.py @@ -25,6 +25,7 @@ from utilities.constants import MODEL_REGISTRY_CUSTOM_NAMESPACE from utilities.general import wait_for_pods_by_labels from utilities.infra import create_ns +from tests.model_registry.negative_tests.utils import execute_mysql_command, crate_mysql_credentials_file DB_RESOURCES_NAME_NEGATIVE = "db-model-registry-negative" @@ -139,28 +140,15 @@ def model_registry_db_deployment_negative_test( @pytest.fixture() def set_mr_db_dirty(model_registry_db_instance_pod: Pod) -> int: """Set the model registry database dirty and return the latest migration version""" - output = model_registry_db_instance_pod.execute( - command=[ - "mysql", - "-u", - MODEL_REGISTRY_DB_SECRET_STR_DATA["database-user"], - f"-p{MODEL_REGISTRY_DB_SECRET_STR_DATA['database-password']}", - "-e", - "SELECT version FROM schema_migrations ORDER BY version DESC LIMIT 1;", - MODEL_REGISTRY_DB_SECRET_STR_DATA["database-name"], - ] + crate_mysql_credentials_file(model_registry_db_instance_pod=model_registry_db_instance_pod) + output = execute_mysql_command( + sql_query="SELECT version FROM schema_migrations ORDER BY version DESC LIMIT 1;", + model_registry_db_instance_pod=model_registry_db_instance_pod, ) latest_migration_version = int(output.strip().split()[1]) - model_registry_db_instance_pod.execute( - command=[ - "mysql", - "-u", - MODEL_REGISTRY_DB_SECRET_STR_DATA["database-user"], - f"-p{MODEL_REGISTRY_DB_SECRET_STR_DATA['database-password']}", - "-e", - f"UPDATE schema_migrations SET dirty = 1 WHERE version = {latest_migration_version};", - MODEL_REGISTRY_DB_SECRET_STR_DATA["database-name"], - ] + execute_mysql_command( + sql_query=f"UPDATE schema_migrations SET dirty = 1 WHERE version = {latest_migration_version};", + model_registry_db_instance_pod=model_registry_db_instance_pod, ) return latest_migration_version diff --git a/tests/model_registry/negative_tests/utils.py b/tests/model_registry/negative_tests/utils.py new file mode 100644 index 000000000..8a39d03ad --- /dev/null +++ b/tests/model_registry/negative_tests/utils.py @@ -0,0 +1,33 @@ +from ocp_resources.pod import Pod +from tests.model_registry.constants import MODEL_REGISTRY_DB_SECRET_STR_DATA +import base64 + + +def crate_mysql_credentials_file(model_registry_db_instance_pod: Pod) -> None: + """ + Setup MySQL configuration file with credentials. + """ + credentials_file_content = f"""[client] + user={MODEL_REGISTRY_DB_SECRET_STR_DATA["database-user"]} + password={MODEL_REGISTRY_DB_SECRET_STR_DATA["database-password"]} + """ + b64_content = base64.b64encode(credentials_file_content.encode("utf-8")).decode("utf-8") + + model_registry_db_instance_pod.execute( + command=["bash", "-c", f"echo '{b64_content}' | base64 --decode > /tmp/.my.cnf"] + ) + + +def execute_mysql_command(sql_query: str, model_registry_db_instance_pod: Pod) -> str: + """ + Execute a MySQL command on the model registry database instance pod. + """ + return model_registry_db_instance_pod.execute( + command=[ + "mysql", + "--defaults-file=/tmp/.my.cnf", + "-e", + sql_query, + MODEL_REGISTRY_DB_SECRET_STR_DATA["database-name"], + ] + ) From 9a3381f5917963fceaca834afe45f98d049f2743 Mon Sep 17 00:00:00 2001 From: Shelton Cyril Date: Thu, 11 Sep 2025 18:23:16 +0100 Subject: [PATCH 2/3] Update conftest.py --- tests/model_registry/negative_tests/conftest.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/model_registry/negative_tests/conftest.py b/tests/model_registry/negative_tests/conftest.py index fb5d81005..65a352715 100644 --- a/tests/model_registry/negative_tests/conftest.py +++ b/tests/model_registry/negative_tests/conftest.py @@ -25,7 +25,7 @@ from utilities.constants import MODEL_REGISTRY_CUSTOM_NAMESPACE from utilities.general import wait_for_pods_by_labels from utilities.infra import create_ns -from tests.model_registry.negative_tests.utils import execute_mysql_command, crate_mysql_credentials_file +from tests.model_registry.negative_tests.utils import execute_mysql_command, create_mysql_credentials_file DB_RESOURCES_NAME_NEGATIVE = "db-model-registry-negative" @@ -140,7 +140,7 @@ def model_registry_db_deployment_negative_test( @pytest.fixture() def set_mr_db_dirty(model_registry_db_instance_pod: Pod) -> int: """Set the model registry database dirty and return the latest migration version""" - crate_mysql_credentials_file(model_registry_db_instance_pod=model_registry_db_instance_pod) + create_mysql_credentials_file(model_registry_db_instance_pod=model_registry_db_instance_pod) output = execute_mysql_command( sql_query="SELECT version FROM schema_migrations ORDER BY version DESC LIMIT 1;", model_registry_db_instance_pod=model_registry_db_instance_pod, From 7f4c8729417e564c1f42393bb20a8ba69d2b0574 Mon Sep 17 00:00:00 2001 From: Shelton Cyril Date: Thu, 11 Sep 2025 18:23:37 +0100 Subject: [PATCH 3/3] Update utils.py --- tests/model_registry/negative_tests/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/model_registry/negative_tests/utils.py b/tests/model_registry/negative_tests/utils.py index 8a39d03ad..dfcfd786e 100644 --- a/tests/model_registry/negative_tests/utils.py +++ b/tests/model_registry/negative_tests/utils.py @@ -3,7 +3,7 @@ import base64 -def crate_mysql_credentials_file(model_registry_db_instance_pod: Pod) -> None: +def create_mysql_credentials_file(model_registry_db_instance_pod: Pod) -> None: """ Setup MySQL configuration file with credentials. """