coco_apm_dynatrace_terrafor.../export.py

62 lines
2.2 KiB
Python

import os
import subprocess
import sys
import time
import shutil
import hcl
from dotenv import load_dotenv
from glob import glob
def setEnv(env, time, path, dashboard):
os.environ['DYNATRACE_ENV_URL'] = str(os.environ.get(env + "_ENV_URL"))
print("ENVIRONMENT_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)
return os.environ
def runProcess(process_name, input_params):
process_names = ["Export", "Terraform init"]
success = False
try:
process = subprocess.Popen(input_params)
process.wait(timeout=60*10) # 10 minutes
success = True
print("[DEBUG]", "Process:", process_name, "Success:", success)
except subprocess.TimeoutExpired:
print("[DEBUG]", "Exception occured:", subprocess.TimeoutExpired)
print("[DEBUG]", "Killing process:", process_name)
process.kill()
success = False
print("[DEBUG]", "Process:", process_name, "Success:", success)
except:
if process_name in process_names and success == False:
print("[DEBUG]", "Process:", process_name, "Success:", success)
print("[DEBUG]", "Exiting program.")
process.kill()
success = False
sys.exit(1)
else:
print("[FAILED]", input_params)
if __name__ == "__main__":
if(len(sys.argv) == 1):
print(os.getcwd())
timestamp = time.strftime("%Y%m%d-%H%M%S")
outputFolder = "./output/"
environments = ["EMEA_PROD", "EMEA_PREPROD", "NA_PROD", "NA_PREPROD", "CN_PROD", "CN_PREPROD"]
for environment in environments:
load_dotenv()
setEnv(environment, timestamp, outputFolder, "")
runProcess("Export", ["sudo", "/opt/workspace/coco_apm_dynatrace_terraform_backup_exporter/terraform-provider-dynatrace_v1.30.2" , "-export", "-id"])
# setEnv(environment, timestamp, outputFolder, "_DASHBOARDS")
# runProcess("Export", ["sudo", bin, "-export", "-id", "dynatrace_dashboard"])
print("Finished!")
else:
print("Usage example: ")
print("python .\export.py")