OPMAAS-4530, OPMAAS-4534 Bug fixes

master
Patryk Gudalewicz 2023-07-18 13:23:47 +02:00
parent cab7660a8d
commit 3be1a6d76e
3 changed files with 29 additions and 7 deletions

View File

@ -1,7 +1,7 @@
--- ---
metadata: metadata:
basename: "Global Offboard Reliability 2.0" basename: "Global Offboard Reliability 2.1"
stagingname: "[STAGING]Global Offboard Reliability 2.0" stagingname: "[STAGING]Global Offboard Reliability 2.1"
owner: "PATRYK.GUDALEWICZ@partner.bmw.de" owner: "PATRYK.GUDALEWICZ@partner.bmw.de"
#actual tile #actual tile
single_value_header_1: "Last 1 h" single_value_header_1: "Last 1 h"

View File

@ -2,6 +2,7 @@
import yaml import yaml
from decouple import config from decouple import config
import json import json
from datetime import datetime
import argparse import argparse
from tileFactory import createHeaderTiles from tileFactory import createHeaderTiles
from tileFactory import createImageTile from tileFactory import createImageTile
@ -11,6 +12,9 @@ from repoConfig import pull_repo
from repoConfig import push_repo from repoConfig import push_repo
from sloHelper import load_slo_parameter from sloHelper import load_slo_parameter
from sloConfigLoader import getSloConfigurations from sloConfigLoader import getSloConfigurations
from remoteDashboard import get_all_dashboards_withname
from remoteDashboard import backup_dashboards
from remoteDashboard import create_or_update_dashboard
import warnings import warnings
warnings.filterwarnings("ignore") warnings.filterwarnings("ignore")
@ -91,7 +95,25 @@ def main():
with open("./tiles/dashboard_tiles_"+str(dahboardcount)+".json", "w") as file: with open("./tiles/dashboard_tiles_"+str(dahboardcount)+".json", "w") as file:
json.dump(dashboard_json, file, indent=2) json.dump(dashboard_json, file, indent=2)
generatedfiles.append("dashboard_tiles_"+str(dahboardcount)+".json") generatedfiles.append("dashboard_tiles_"+str(dahboardcount)+".json")
#Upload staging dashboard if auto upload is specified
if args.auto_upload:
print("Getting existing STAGING dashboards from Dynatrace")
for item, doc in doc.items():
if(item == "globaldashboard"):
token = dict(doc[2])
url = dict(doc[1])
print("Crawling through: " + item)
print("Gather data, hold on a minute")
DTTOKEN = config(token.get('env-token-name'))
DTURL = url.get('env-url')
print("Downloading STAGING dashboards to local repo ("+blname+")...")
existingdashboards = get_all_dashboards_withname(DTTOKEN, DTURL,script_config["metadata"]["stagingname"]+" - " +blname)
print("Uploading STAGING dashboards to Dynatrace ("+blname+")...")
backup_dashboards(DTTOKEN, DTURL, existingdashboards)
now=datetime.now()
strnowdate = now.strftime("%Y%m%d")
push_repo(archiverepo, strnowdate+"_Global dashboard as code auto-upload backup")
create_or_update_dashboard(DTTOKEN, DTURL, existingdashboards, generatedfiles, blname,script_config,args.department)
print("DONE") print("DONE")
if __name__ == "__main__": if __name__ == "__main__":
main() main()

View File

@ -66,7 +66,7 @@ def remove_dashboards(DTAPIToken, DTENV, dashboards):
def create_or_update_dashboard(DTAPIToken, DTENV, dashboards, files, businessline, config, department): def create_or_update_dashboard(DTAPIToken, DTENV, dashboards, files, businessline, config, department):
if(files): if(files):
for index, filename in enumerate(files,start=1): for index, filename in enumerate(files,start=1):
with open('./'+filename) as file: with open('./tiles/'+filename) as file:
tilesjson = json.load(file) tilesjson = json.load(file)
if any(dashboard["name"].endswith("#"+str(index)) for dashboard in dashboards): if any(dashboard["name"].endswith("#"+str(index)) for dashboard in dashboards):
existingdashboard = next((dashboard for dashboard in dashboards if dashboard["name"].endswith("#"+str(index))), None) existingdashboard = next((dashboard for dashboard in dashboards if dashboard["name"].endswith("#"+str(index))), None)
@ -85,13 +85,13 @@ def create_or_update_dashboard(DTAPIToken, DTENV, dashboards, files, businesslin
else: else:
print("Dashboard for file: "+filename + " not found.") print("Dashboard for file: "+filename + " not found.")
if(department == "ALL"): if(department == "ALL"):
dashfullname = config["stagingname"] dashfullname = config["metadata"]["stagingname"]
else: else:
dashfullname = config["stagingname"] + " - " + businessline + " #" + str(index) dashfullname = config["metadata"]["stagingname"] + " - " + businessline + " #" + str(index)
newdashboard = { newdashboard = {
"dashboardMetadata":{ "dashboardMetadata":{
"name": dashfullname, "name": dashfullname,
"owner": "PATRYK.GUDALEWICZ@partner.bmw.de" "owner": config["metadata"]["owner"]
}, },
"tiles":[] "tiles":[]
} }