62 lines
2.2 KiB
Python
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")
|