69 lines
2.8 KiB
Python
69 lines
2.8 KiB
Python
# Legal Disclaimer:
|
|
#----------------------
|
|
#This script is an example script and is not supported under any Zerto support program or service.
|
|
#The author and Zerto further disclaim all implied warranties including, without limitation, any implied warranties of merchantability or of fitness for a particular purpose.
|
|
#In no event shall Zerto, its authors or anyone else involved in the creation, production or delivery of the scripts be liable for any damages whatsoever (including, without
|
|
#limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or the inability
|
|
#to use the sample scripts or documentation, even if the author or Zerto has been advised of the possibility of such damages. The entire risk arising out of the use or
|
|
#performance of the sample scripts and documentation remains with you.
|
|
|
|
#importing request, json
|
|
#importing HTTPBasicAuth library for ZVM basic authentication
|
|
import requests
|
|
import json
|
|
from requests.auth import HTTPBasicAuth
|
|
|
|
#Declaring Environment variables
|
|
zvm_ip = "zvmip"
|
|
zvm_u = "zvmusername"
|
|
zvm_p = "zvmpassword"
|
|
base_url = "https://"+zvm_ip+":9669/v1"
|
|
session = base_url+"/session/add"
|
|
vpg_url = base_url + "/vpgs"
|
|
vpg_name = "VPGName"
|
|
|
|
###Functions####
|
|
def login(session_url, zvm_user, zvm_password):
|
|
print("Getting ZVM API token...")
|
|
auth_info = "{\r\n\t\"AuthenticationMethod\":1\r\n}"
|
|
headers = {
|
|
'Accept': 'application/json',
|
|
'Content-Type': 'application/json'
|
|
}
|
|
response = requests.post(session_url, headers=headers, data=auth_info, verify=False, auth=HTTPBasicAuth(zvm_user, zvm_password))
|
|
if response.ok:
|
|
auth_token = response.headers['x-zerto-session']
|
|
print("Api Token: " + auth_token)
|
|
return auth_token
|
|
else:
|
|
print("HTTP %i - %s, Message %s" % (response.status_code, response.reason, response.text))
|
|
|
|
returned_token = login(session, zvm_u, zvm_p)
|
|
|
|
# Creating Header with x-zerto-session
|
|
headers = {
|
|
'Accept': 'application/json',
|
|
'Content-Type': 'application/json',
|
|
'x-zerto-session': returned_token
|
|
}
|
|
|
|
# Get VPG ID
|
|
vpg_response = requests.get(vpg_url, headers=headers, verify=False)
|
|
vpg_response = vpg_response.json()
|
|
|
|
# Retrieve VPG ID from ZVM API
|
|
for i in (range(len(vpg_response))):
|
|
if vpg_response[i]['VpgName'] == vpg_name:
|
|
vpg_id = vpg_response[i]['VpgIdentifier']
|
|
else:
|
|
pass
|
|
|
|
#Post Tag Checkpoint to ZVM API
|
|
checkpoint_url = vpg_url + "/" + vpg_id + "/checkpoints"
|
|
checkpoint_body= {
|
|
"CheckpointName" : "TestingCheckpointTagging"
|
|
}
|
|
tag_checkpoint = requests.post(checkpoint_url, headers=headers, data=json.dumps(checkpoint_body), verify=False)
|
|
if tag_checkpoint.status_code != 200:
|
|
print(tag_checkpoint.text)
|