diff --git a/silecs_cli/silecs.py b/silecs_cli/silecs.py index 18b4697552ed57af68decfcb2e78d19dd6f44fa1..49ea008757bb81792f9e35f25d5d4c1ad4447e48 100644 --- a/silecs_cli/silecs.py +++ b/silecs_cli/silecs.py @@ -27,11 +27,11 @@ FESA_XSD=f"{FESA_BASE}/fesa-model-gsi/xml/deployment/deployment-gsi.xsd" FESA_GSI_TEMPLATE=f"{FESA_BASE}/fesa-model-gsi/xml/design/templates/GSIClassTemplate.xml" # silecs specific variables -SILECS_DIR = "/common/usr/cscofe/silecs" - try: SILECS_BASE=(os.environ['SILECS_BASE']) + SILECS_DIR=os.path.abspath(os.path.join(SILECS_BASE, os.pardir)) except KeyError: + SILECS_DIR = "/common/usr/cscofe/silecs" SILECS_BASE= os.path.join(SILECS_DIR, SILECS_VERSION) DESIGN_SHEMA_FILE="DesignSchema.xsd" @@ -565,9 +565,9 @@ def get_migration_modules(matching_versions, old_version): prev_version_underscored = get_version_underscored_tiny_as_x(prev_version) version_underscored = get_version_underscored_tiny_as_x(version) - migration_module = f"{prev_version_underscored}to{version_underscored}" + module = f"{prev_version_underscored}to{version_underscored}" if not prev_version_underscored == version_underscored: - migration_modules += [(migration_module, prev_version, version)] + migration_modules += [(module, prev_version, version)] prev_version = version @@ -596,12 +596,14 @@ def silecs_migrate(project_path, new_version): else: raise Exception(f"Migration {old_version} to {new_version} not possible. The project {project_path} is not a silecs project") - for module, version_from, version_to in migration_modules: + for migration_module in migration_modules: + migration_module = module, version_from, version_to try: module = __import__(module) module.run_migrate(silecs_filepath, new_xml_schema, version_from, version_to) except Exception as e: print(e) + migration_modules.remove(migration_module) if not migration_modules: print(f"There is no Migration Script for an update from: {old_version} to {new_version}\n" \