From 1a5d97ca60e1fb96fa7a4f98e8763915cf08732a Mon Sep 17 00:00:00 2001 From: adrianciu <adrian.ciu@codemart.ro> Date: Wed, 2 Apr 2025 00:32:28 +0300 Subject: [PATCH] VT-102: improve spack operation creator --- dedal/spack_factory/SpackOperationCreator.py | 13 ++++++++++++- .../spack_operation_creator_test.py | 14 ++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/dedal/spack_factory/SpackOperationCreator.py b/dedal/spack_factory/SpackOperationCreator.py index fdc929d3..f8cb870e 100644 --- a/dedal/spack_factory/SpackOperationCreator.py +++ b/dedal/spack_factory/SpackOperationCreator.py @@ -1,3 +1,5 @@ +import os + from dedal.configuration.SpackConfig import SpackConfig from dedal.spack_factory.SpackOperation import SpackOperation from dedal.spack_factory.SpackOperationCreateCache import SpackOperationCreateCache @@ -7,7 +9,16 @@ from dedal.spack_factory.SpackOperationUseCache import SpackOperationUseCache class SpackOperationCreator: @staticmethod def get_spack_operator(spack_config: SpackConfig = None, use_cache: bool = False) -> SpackOperation: - if spack_config is None: + env_vars = [os.environ.get('CONCRETIZE_OCI_HOST'), + os.environ.get('CONCRETIZE_OCI_PROJECT'), + os.environ.get('CONCRETIZE_OCI_USERNAME'), + os.environ.get('CONCRETIZE_OCI_PASSWORD'), + os.environ.get('BUILDCACHE_OCI_HOST'), + os.environ.get('BUILDCACHE_OCI_PROJECT'), + os.environ.get('BUILDCACHE_OCI_USERNAME'), + os.environ.get('BUILDCACHE_OCI_PASSWORD') + ] + if spack_config is None or None in env_vars: return SpackOperation() elif spack_config.concretization_dir is None and spack_config.buildcache_dir is None: return SpackOperation(spack_config) diff --git a/dedal/tests/integration_tests/spack_operation_creator_test.py b/dedal/tests/integration_tests/spack_operation_creator_test.py index 226184b0..c93d039d 100644 --- a/dedal/tests/integration_tests/spack_operation_creator_test.py +++ b/dedal/tests/integration_tests/spack_operation_creator_test.py @@ -1,3 +1,5 @@ +import os + from dedal.spack_factory.SpackOperationCreateCache import SpackOperationCreateCache from dedal.configuration.SpackConfig import SpackConfig @@ -29,6 +31,18 @@ def test_spack_creator_scratch_3(): spack_operation = SpackOperationCreator.get_spack_operator(spack_config) assert isinstance(spack_operation, SpackOperation) +def test_spack_creator_scratch_4(tmp_path): + concretize_oci_host = os.environ.get('CONCRETIZE_OCI_HOST') + os.environ.pop('CONCRETIZE_OCI_HOST', None) + install_dir = tmp_path + env = SpackDescriptor('test-spack-env', install_dir, test_spack_env_git) + repo = SpackDescriptor('ebrains-spack-builds', install_dir, ebrains_spack_builds_git) + spack_config = SpackConfig(env, install_dir=install_dir, concretization_dir=install_dir, buildcache_dir=install_dir) + spack_config.add_repo(repo) + spack_operation = SpackOperationCreator.get_spack_operator(spack_config) + os.environ['CONCRETIZE_OCI_HOST'] = concretize_oci_host + assert isinstance(spack_operation, SpackOperation) + def test_spack_creator_create_cache(tmp_path): install_dir = tmp_path -- GitLab