63 lines
2.1 KiB
Python
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()
|