From 0874f7b01723b59a83f714c04fa3e8b1dffe2b93 Mon Sep 17 00:00:00 2001 From: Harinder Singh Date: Tue, 12 Dec 2023 16:21:01 +0530 Subject: [PATCH] INFRA-2296 | Harinder | Updating script to get manifest with substituted environment variables --- .../add-resource-and-update-tfstate/driver.py | 64 ------------------- 1 file changed, 64 deletions(-) diff --git a/scripts/add-resource-and-update-tfstate/driver.py b/scripts/add-resource-and-update-tfstate/driver.py index 187ea7c..a41a48b 100644 --- a/scripts/add-resource-and-update-tfstate/driver.py +++ b/scripts/add-resource-and-update-tfstate/driver.py @@ -64,63 +64,6 @@ def get_migration_resource_list(): migration_required_for = json.load(fp) print("List of resources for which migration is required:" + str(migration_required_for)) -def update_manifest_with_environment_variables(manifest, config, resource_key): - resource = manifest['extraResources'][resource_key] - for k, v in resource.items(): - if "${" in str(v) or "$" in str(v): - if v[2:-1] in config: - manifest['extraResources'][resource_key][k] = config[v[2:-1]] - elif v[1:] in config: - manifest['extraResources'][resource_key][k] = config[v[1:]] - else: - if "READONLY" in str(v[2:-1]): - manifest['extraResources'][resource_key][k] = "" - else: - print(f"Key {v[2:-1]} or {v[1:]} not found in config") - return False - return True - -def load_env_variables(manifest): - ''' - Loads the environment variables from manifest and exports them to the required variables - Manifest as fetched from portal has variables in the form ${variable_name} or $variable_name - which this function replaces with the actual value from the environment variables - If this isn't done, terraform will throws error. - - Uses update_manifest_with_environment_variables() to update the manifest with the actual values - ''' - config = {} - if "environmentVariables" in manifest: - environment_variables = manifest["environmentVariables"] - for env_var in environment_variables: - config[env_var["name"]] = env_var["value"] - else: - print("Environment variables not found in manifest: " + str(manifest['id'])) - return False - - if 'extraResources' in manifest: - extra_resources = manifest['extraResources'] - # NOTE: The following logic should be changed per resource type - if 'database' in extra_resources: - if not update_manifest_with_environment_variables(manifest, config, 'database'): - return False - if 'docdb' in extra_resources: - if not update_manifest_with_environment_variables(manifest, config, 'docdb'): - return False - if 'elasticSearch' in extra_resources: - if not update_manifest_with_environment_variables(manifest, config, 'elasticSearch'): - return False - else: - print("No extra resources found in manifest: " + str(manifest['id'])) - return False - - # Export updated manifest to file - f = open("manifest.json", "w") - json.dump(manifest, f) - f.close() - - return True - def get_workspace(manifest): # Gets the workspace which is used in selecting the appropriate terraform workspace workspace = "" @@ -162,13 +105,6 @@ def tf_state_update(manifest, resource_type): setup_working_directory() - if load_env_variables(manifest): - print("Loaded environment variables") - else: - print("Issues with finding environment variables and exporting to required variables in manifest. Aborting operation for manifest: " + str(manifest['id'])) - cleanup_working_directory() - return - env_vars = {} env_vars['TEAM_NAME'] = manifest['team']['name']