getOneAgentVersions_TLM.py online editiert mit Bitbucket

Andi
master
Andreas Danzer (DE-701) 2023-07-04 11:10:58 +00:00
parent a3c8d6a67a
commit 86ab7240d2
1 changed files with 1 additions and 219 deletions

View File

@ -1,219 +1 @@
#from decouple import config
import yaml
import requests
import json
import pandas as pd
import time
from distutils.version import LooseVersion
from datetime import datetime
#now = datetime.now() # current date and time
#
#def my_function(fname, lname):
# GatherReportingInfo("okay2")
#my_function("Emil", "Test")
def make_request(url, headers):
try:
response = requests.get(url, headers=headers)
response.raise_for_status()
except requests.exceptions.HTTPError as errh:
return "An Http Error occurred:" + repr(errh)
except requests.exceptions.ConnectionError as errc:
return "An Error Connecting to the API occurred:" + repr(errc)
except requests.exceptions.Timeout as errt:
return "A Timeout Error occurred:" + repr(errt)
except requests.exceptions.RequestException as err:
return "An Unknown Error occurred" + repr(err)
return response
def GatherReportingInfo(test, env, DTAPIToken):
reportingFolder = 'C:/Users/Andre/OneDrive/Desktop/OneAgent/'
print(reportingFolder)
friendlyName = test
#NA
#env = 'https://wgv50241.live.dynatrace.com'
#DTAPIToken = 'dt0c01.46HF3MDD7WIWXE7XUW4WSCE2.T3WEX7W5JTAQWZ7KGFIFMDX5JNGQ3KV6GVOZZZPL2YJSRTVWZQRISB24QRW5FCEW'
#Emea
#env = "https://xxu26128.live.dynatrace.com"
# DTAPIToken = 'dt0c01.FHL6HUUTDAHS3Q2XWQOZUVR2.RH6S5OFXQC2AA46NDAZFRU2HR5FK4TFWD7NEUPGLX2RHACNEP5DHWQEDNILTQ73F'
#NA DEV
#env = 'https://onb44935.live.dynatrace.com'
#DTAPIToken = 'dt0c01.2ZFJYF5IHFHIPU4LAIDNWL5Y.UBLH4H7RZ6FYZTOGN4HKIEFDCO5BSTCU37IPKXJUT7GKI5N4QWM7CDDNBHIS5C3G'
#Emea DEV
#env = "https://qqk70169.live.dynatrace.com"
#DTAPIToken = 'dt0c01.W4YZT34MOVYIA5VQTEAZBOGR.ZN7GXBQTYHWAUJNJUFL4MLBFOD3NCKDY3XQQZG7J5RRBACZI6HMF6FNNEHSWD46X'
#NA DEV
#env = "https://onb44935.live.dynatrace.com"
# DTAPIToken = 'dt0c01.2ZFJYF5IHFHIPU4LAIDNWL5Y.UBLH4H7RZ6FYZTOGN4HKIEFDCO5BSTCU37IPKXJUT7GKI5N4QWM7CDDNBHIS5C3G'
DTAPIURL= env + "/api/v1/oneagents"
headers = {
'Content-Type': 'application/json',
'Authorization': 'Api-Token ' + DTAPIToken
}
print(DTAPIURL)
r = make_request(DTAPIURL,headers)
data = r.json()
print(DTAPIURL)
hosts = []
for host in data['hosts']:
hosts.append(host)
while 'nextPageKey' in data.keys():
if data['nextPageKey'] == None:
break
DTAPIURL= env + "/api/v1/oneagents?nextPageKey=" + data['nextPageKey']
r = make_request(DTAPIURL,headers)
data = r.json()
for host in data['hosts']:
hosts.append(host)
df = pd.DataFrame()
mgmt = pd.DataFrame()
for Host in hosts:
row={'Name':Host['hostInfo']['displayName'],'ID':Host['hostInfo']['entityId'],'availabilityState':Host['detailedAvailabilityState'],'autoUpdateSetting':Host['autoUpdateSetting'],'UpdateStatus':Host['updateStatus'],'comsumedHostUnits':Host['hostInfo']['consumedHostUnits']}
for tag in Host['hostInfo']['tags']:
if tag['key'] == 'Cloud':
try:
row.update({ tag['key']:tag['value']})
except:
row.update({ tag['key']:tag['key']})
if tag['key'] == 'Hub':
try:
row.update({ tag['key']:tag['value']})
except:
row.update({ tag['key']:tag['key']})
if tag['key'] == 'Platform':
try:
row.update({ tag['key']:tag['value']})
except:
row.update({ tag['key']:tag['key']})
if tag['key'] == 'licensing-base':
try:
row.update({ tag['key']:tag['value']})
except:
row.update({ tag['key']:tag['key']})
if tag['key'] == 'PaaS':
try:
row.update({ tag['key']:tag['value']})
except:
row.update({ tag['key']:tag['key']})
if tag['key'] == 'compass-id':
try:
row.update({ tag['key']:tag['value']})
except:
row.update({ tag['key']:tag['key']})
if tag['key'] == 'Namespace':
try:
row.update({ tag['key']:tag['value']})
except:
row.update({ tag['key']:tag['key']})
if tag['key'] == 'DynatraceOperatorVersion':
try:
row.update({ tag['key']:tag['value']})
except:
row.update({ tag['key']:tag['key']})
if tag['key'] == 'ms-id':
try:
row.update({ tag['key']:tag['value']})
except:
row.update({ tag['key']:tag['key']})
try:
agentVersion = str(Host['hostInfo']['agentVersion']['major']) + '.' + str(Host['hostInfo']['agentVersion']['minor']) + '.' + str(Host['hostInfo']['agentVersion']['revision']) + '.' + Host['hostInfo']['agentVersion']['timestamp']
row.update({'agentVersion':agentVersion})
except:
row.update({'agentVersion':'NOT_FOUND'})
try:
paasagentVersion = str(Host['hostInfo']['paasAgentVersions'][0]['major']) + '.' + str(Host['hostInfo']['paasAgentVersions'][0]['minor']) + '.' + str(Host['hostInfo']['paasAgentVersions'][0]['revision']) + '.' + Host['hostInfo']['paasAgentVersions'][0]['timestamp']
row.update({'PaasagentVersion':paasagentVersion})
except:
row.update({'PaasagentVersion':'NOT_FOUND'})
try:
osVersion = str(Host['hostInfo']['osVersion']).replace('"','')
osVersion.replace('"','')
row.update({'osVersion':osVersion})
except:
row.update({'osVersion':'NOT_FOUND'})
df = df.append(row,ignore_index=True)
df.to_csv(reportingFolder + friendlyName + 'oa_versions.csv')
#GatherReportingInfo('na_pre_final_30.06.2023',"https://onb44935.live.dynatrace.com",'dt0c01.2ZFJYF5IHFHIPU4LAIDNWL5Y.UBLH4H7RZ6FYZTOGN4HKIEFDCO5BSTCU37IPKXJUT7GKI5N4QWM7CDDNBHIS5C3G')
#GatherReportingInfo("emea_pre_finl_30.06.2023", "https://qqk70169.live.dynatrace.com", 'dt0c01.W4YZT34MOVYIA5VQTEAZBOGR.ZN7GXBQTYHWAUJNJUFL4MLBFOD3NCKDY3XQQZG7J5RRBACZI6HMF6FNNEHSWD46X')
GatherReportingInfo("emea_prod_final_30.06.2023", "https://xxu26128.live.dynatrace.com", 'dt0c01.FHL6HUUTDAHS3Q2XWQOZUVR2.RH6S5OFXQC2AA46NDAZFRU2HR5FK4TFWD7NEUPGLX2RHACNEP5DHWQEDNILTQ73F')
GatherReportingInfo("nap_prod_final_30.06.2023", "https://wgv50241.live.dynatrace.com", 'dt0c01.46HF3MDD7WIWXE7XUW4WSCE2.T3WEX7W5JTAQWZ7KGFIFMDX5JNGQ3KV6GVOZZZPL2YJSRTVWZQRISB24QRW5FCEW')
#NA
#env = 'https://wgv50241.live.dynatrace.com'
#DTAPIToken = 'dt0c01.46HF3MDD7WIWXE7XUW4WSCE2.T3WEX7W5JTAQWZ7KGFIFMDX5JNGQ3KV6GVOZZZPL2YJSRTVWZQRISB24QRW5FCEW'
#Emea
#env = "https://xxu26128.live.dynatrace.com"
# DTAPIToken = 'dt0c01.FHL6HUUTDAHS3Q2XWQOZUVR2.RH6S5OFXQC2AA46NDAZFRU2HR5FK4TFWD7NEUPGLX2RHACNEP5DHWQEDNILTQ73F'
#with open('./environment.yaml') as file:
# doc = yaml.safe_load(file)
#for item, doc in doc.items():
# url = dict(doc[1])
# print("Crawling through: " + item)
# print("Check if token exists in environment...")
# if(config(token.get('env-token-name')) != ""):
# print("Gather data, hold on a minute")
# DTTOKEN = config(token.get('env-token-name'))
# DTURL = url.get('env-url')
# GatherReportingInfo(DTTOKEN,DTURL,item)
#else:
# print("token not found, skipping " + item)
Andi Vesion nur Lokal