update
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
#!/usr/bin/python
|
||||
import sys,argparse,json,time
|
||||
import time
|
||||
sys.path.insert(0, './classes/')
|
||||
|
||||
import cohesityAPI as cohesity
|
||||
import sharePointAPI as sharePoint
|
||||
import serviceNowAPI as snow
|
||||
import automationsAPI as dashboard
|
||||
|
||||
|
||||
# Global variables that will be used across all functions
|
||||
# Begin Functions
|
||||
|
||||
def GetArgs():
|
||||
parser = argparse.ArgumentParser(add_help=False)
|
||||
parser.add_argument('--cluster', '-c', type=str, action='store')
|
||||
parser.add_argument('--verify', '-v', action='store_true')
|
||||
parser.add_argument('--help', '-h', action='store_true')
|
||||
return (parser.parse_args())
|
||||
|
||||
def PrintHelp():
|
||||
print("\nBasic Usage:")
|
||||
print("\npython3 sqlServerRegistration.py -c cluster.fqdn.tld")
|
||||
print("\t -c FQDN of Cohesity cluster address")
|
||||
print("\t -v force confirmation on change")
|
||||
print("\t -h Prints this help message")
|
||||
|
||||
args = GetArgs()
|
||||
|
||||
# Validate arguments & assign variables if necessary
|
||||
if args.help:
|
||||
PrintHelp()
|
||||
exit(1)
|
||||
|
||||
if not args.cluster:
|
||||
PrintHelp()
|
||||
exit(1)
|
||||
|
||||
# ServiceNow object
|
||||
ticketSystem = snow.SnowAPI("northdakota.service-now.com")
|
||||
|
||||
# Sharepoint Object
|
||||
cmdb = sharePoint.API()
|
||||
|
||||
# Connect to the Cohesity cluster
|
||||
cluster = cohesity.API(args.cluster)
|
||||
authToken = cluster.GetAuthToken()
|
||||
cluster.UpdateHeaders(authToken['accessToken'])
|
||||
|
||||
vmWareJobs=cluster.GetFilteredRequest("/public/protectionJobs","?environments=kAzureNative&isActive=True")
|
||||
|
||||
for job in vmWareJobs:
|
||||
preChangeNotes = json.dumps(job)
|
||||
if 'name' in job:
|
||||
jobName = job['name']
|
||||
|
||||
if '@cares01' in jobName:
|
||||
continue
|
||||
print("\nUpdating policy for {0}".format(jobName))
|
||||
policyData = {"policyId": "7780085755317378:1694019083558:285"
|
||||
|
||||
if '@infra01' in jobName:
|
||||
continue
|
||||
print("\nUpdating policy for {0}".format(jobName))
|
||||
policyData = {"policyId": "7780085755317378:1694019083558:286"}
|
||||
job.update(policyData)
|
||||
|
||||
elif '@npd01' in jobName:
|
||||
continue
|
||||
print("\nUpdating policy for {0}".format(jobName))
|
||||
policyData = {"policyId": "7780085755317378:1694019083558:287"}
|
||||
job.update(policyData)
|
||||
|
||||
elif '@prd01' in jobName:
|
||||
print("\nUpdating policy for {0}".format(jobName))
|
||||
policyData = {"policyId": "7780085755317378:1694019083558:288"}
|
||||
job.update(policyData)
|
||||
|
||||
else:
|
||||
continue
|
||||
|
||||
if args.verify:
|
||||
confirm = input("About to update protection job {0}. Are you sure? [yes|no] ".format(jobName))
|
||||
else:
|
||||
confirm = "yes"
|
||||
|
||||
if confirm.lower() == "yes":
|
||||
changeID = ticketSystem.CreateStandardChange("NDIT-SPS-Cohesity Data Protection", "NDIT-Cloud Platforms", "svccohesityadm", "ndheck", "mlaverdure", "Computer Systems", "Backup/Restore", "Automated Change - Cohesity job update for {}".format(jobName), "Update protection policy to enable replication.")
|
||||
changeSysID = changeID['result']['sys_id']['value']
|
||||
ticketSystem.scheduleStandardChange(changeSysID)
|
||||
ticketSystem.implementStandardChange(changeSysID)
|
||||
ticketSystem.addStandardChangeNotes(changeSysID, "Original job details\n\n{}".format(preChangeNotes))
|
||||
ticketSystem.reviewStandardChange(changeSysID)
|
||||
|
||||
updateStats = cluster.UpdateVMProtectionJob(job)
|
||||
|
||||
if updateStats.status_code != 200 and updateStats.status_code != 201:
|
||||
postChangeNotes = "Job update failed\n\n" + updateStats.text
|
||||
ticketSystem.addStandardChangeNotes(changeSysID, postChangeNotes)
|
||||
ticketSystem.closeStandardChange(changeSysID, "Unsuccessful", "Change Failed")
|
||||
else:
|
||||
postChangeNotes = "Updated the policy\n\n" + updateStats.text
|
||||
ticketSystem.addStandardChangeNotes(changeSysID, postChangeNotes)
|
||||
ticketSystem.closeStandardChange(changeSysID, "Successful", "Change Complete")
|
||||
|
||||
print("Change {} complete".format(changeID['result']['number']['value']))
|
||||
Reference in New Issue
Block a user