Files
Zack Meier 1d304511b8 update
2026-04-15 15:45:50 -05:00

63 lines
2.1 KiB
Python

import sys
# Import NDIT storage classes
sys.path.insert(0, './classes/')
import cohesityAPI as cohesity
import serviceNowAPI as serviceNow
def main():
# Instantiate the ServiceNow API
svcNowInterface = serviceNow.API('northdakota.service-now.com')
# Instantiate Cohesity APIs
mdnCluster = cohesity.API('itdmdndpc01.nd.gov')
clusters = [mdnCluster]
replicationFailures = []
sqlFailures = []
backupFailures = []
undetermined = []
for cluster in clusters:
cluster.Authenticate()
alertID = 0
openAlerts = cluster.GetFilteredRequest("/public/alerts","?alertStateList=kOpen&maxAlerts=1000")
if len(openAlerts) > 1:
for alert in openAlerts:
if (alert['severity'] != "kInfo"):
# Open a unique ticket for every alert
if (alert['alertCategory'] == "kRemoteReplication"):
replicationFailures.append(alert)
continue
if (alert['alertCategory'] == "kBackupRestore"):
for item in alert['propertyList']:
if (item['value'] == "kSQL"):
sqlFailures.append(alert)
continue
shortDescription = "Backup Failure on " + str(cluster.GetClusterName()) + ": " + alert['alertDocument']['alertName']
longDescription = alert['alertDocument']['alertCause']
print("Opening incident for Cohesity alert:" + str(alertID))
print("\tShort Description: " + shortDescription)
print("\tLong Description: " + longDescription)
alertID += 1
#End if alert['severity'] != kInfo
#End for alert in alerts
# End if len(openAlerts) > 1
#End for cluster in clusters
print("Total replication failures: " + str(len(replicationFailures)))
print("Total SQL Backup failures: " + str(len(sqlFailures)))
#End main()
# Run the program
main()