diff --git a/Jenkinsfile b/Jenkinsfile index ec39a2a..e4516b2 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -16,18 +16,12 @@ pipeline { } environment { - EMEA_PROD_API_TOKEN = credentials('EUPROD_TOKEN_VAR') - EMEA_PROD_ENV_URL = 'https://xxu26128.live.dynatrace.com' - EMEA_PREPROD_API_TOKEN = credentials('EUPREPROD_TOKEN_VAR') - EMEA_PREPROD_ENV_URL = 'https://qqk70169.live.dynatrace.com' - NA_PROD_API_TOKEN = credentials('NAPROD_TOKEN_VAR') - NA_PROD_ENV_URL = 'https://wgv50241.live.dynatrace.com' - NA_PREPROD_API_TOKEN = credentials('NAPREPROD_TOKEN_VAR') - NA_PREPROD_ENV_URL = 'https://onb44935.live.dynatrace.com' - CN_PROD_API_TOKEN = credentials('CNPROD_TOKEN_VAR') - CN_PROD_ENV_URL= 'https://dynatracemgd-tsp.bmwgroup.net/e/b921f1b9-c00e-4031-b9d1-f5a0d530757b' - CN_PREPROD_API_TOKEN = credentials('CNPREPROD_TOKEN_VAR') - CN_PREPROD_ENV_URL = 'https://dynatracemgd-tsp.bmwgroup.net/e/ab88c03b-b7fc-45f0-9115-9e9ecc0ced35' + EUPROD_TOKEN_VAR = credentials('EUPROD_TOKEN_VAR') + EUPREPROD_TOKEN_VAR = credentials('EUPREPROD_TOKEN_VAR') + NAPROD_TOKEN_VAR = credentials('NAPROD_TOKEN_VAR') + NAPREPROD_TOKEN_VAR = credentials('NAPREPROD_TOKEN_VAR') + CNPROD_TOKEN_VAR = credentials('CNPROD_TOKEN_VAR') + CNPREPROD_TOKEN_VAR = credentials('CNPREPROD_TOKEN_VAR') } stages { diff --git a/environment.yaml b/environment.yaml new file mode 100644 index 0000000..b29c5dd --- /dev/null +++ b/environment.yaml @@ -0,0 +1,31 @@ +--- +euprod: + - name: "euprod" + - env-url: "https://xxu26128.live.dynatrace.com" + - env-token-name: "EUPROD_TOKEN_VAR" + - jenkins: "https://jaws.bmwgroup.net/opapm/" +eupreprod: + - name: "eupreprod" + - env-url: "https://qqk70169.live.dynatrace.com" + - env-token-name: "EUPREPROD_TOKEN_VAR" + - jenkins: "https://jaws.bmwgroup.net/opapm/" +naprod: + - name: "naprod" + - env-url: "https://wgv50241.live.dynatrace.com" + - env-token-name: "NAPROD_TOKEN_VAR" + - jenkins: "https://jaws.bmwgroup.net/opapm/" +napreprod: + - name: "napreprod" + - env-url: "https://onb44935.live.dynatrace.com" + - env-token-name: "NAPREPROD_TOKEN_VAR" + - jenkins: "https://jaws.bmwgroup.net/opapm/" +cnprod: + - name: "cnprod" + - env-url: "https://dyna-synth-cn.bmwgroup.com.cn/e/b921f1b9-c00e-4031-b9d1-f5a0d530757b" + - env-token-name: "CNPROD_TOKEN_VAR" + - jenkins: "https://jaws-china.bmwgroup.net/opmaas/" +cnpreprod: + - name: "cnpreprod" + - env-url: "https://dynatracemgd-tsp.bmwgroup.net/e/ab88c03b-b7fc-45f0-9115-9e9ecc0ced35" + - env-token-name: "CNPREPROD_TOKEN_VAR" + - jenkins: "https://jaws-china.bmwgroup.net/opmaas/" diff --git a/export.py b/export.py index c406c39..059fa92 100644 --- a/export.py +++ b/export.py @@ -8,18 +8,13 @@ import hcl from dotenv import load_dotenv from decouple import config from glob import glob +import yaml -def setEnv(env, time, path, dashboard): - # os.environ[env + "_ENV_URL"] = getJenkinsEnvironmentVariable() - - - print(str(config("EMEA_PROD_API_TOKEN"))) - - - # os.environ['DYNATRACE_ENV_URL'] = str(os.environ.get(env + "_ENV_URL")) - # os.environ['DYNATRACE_API_TOKEN'] = str(os.environ.get(env + "_API_TOKEN")) - # os.environ['DYNATRACE_TARGET_FOLDER'] = str(path + time + "_" + env + dashboard) +def setEnv(doc, timestamp, outputFolder, config): + os.environ['DYNATRACE_ENV_URL'] = dict(doc[1]) + os.environ['DYNATRACE_API_TOKEN'] = config(dict(doc[2])) + os.environ['DYNATRACE_TARGET_FOLDER'] = str(outputFolder + timestamp + "_" + doc[0] + config) return os.environ @@ -52,13 +47,14 @@ if __name__ == "__main__": if(len(sys.argv) == 1): timestamp = time.strftime("%Y%m%d-%H%M%S") outputFolder = "./output/" - environments = ["EMEA_PROD", "EMEA_PREPROD", "NA_PROD", "NA_PREPROD", "CN_PROD", "CN_PREPROD"] + environments = ["euprod", "eupreprod", "naprod", "napreprod", "cnprod", "cnpreprod"] + with open(os.path.basename("./environment.yaml")) as file: + env_doc = yaml.safe_load(file) - for environment in environments: - load_dotenv() - setEnv(environment, timestamp, outputFolder, "") + for item, doc in env_doc.items(): + setEnv(doc, timestamp, outputFolder, "_configurations") runProcess("Export", ["sudo", "/opt/workspace/coco_apm_dynatrace_terraform_backup_exporter/terraform-provider-dynatrace_v1.30.2" , "-export", "-id"]) - # setEnv(environment, timestamp, outputFolder, "_DASHBOARDS") + # setEnv(environment, timestamp, outputFolder, "_dashboards") # runProcess("Export", ["sudo", bin, "-export", "-id", "dynatrace_dashboard"]) print("Finished!")