40 lines
1.5 KiB
Python
40 lines
1.5 KiB
Python
|
# Copyright (c) 2021 Arista Networks, Inc.
|
||
|
# Use of this source code is governed by the Apache License 2.0
|
||
|
# that can be found in the COPYING file.
|
||
|
#
|
||
|
# NOTE: The following example is using the new Change Control Resource APIs supported in 2021.2.0 or newer and in CVaaS.
|
||
|
# For CVaaS service-account token based auth has to be used.
|
||
|
|
||
|
from cvprac.cvp_client import CvpClient
|
||
|
import ssl
|
||
|
import uuid
|
||
|
from datetime import datetime
|
||
|
ssl._create_default_https_context = ssl._create_unverified_context
|
||
|
import requests.packages.urllib3
|
||
|
requests.packages.urllib3.disable_warnings()
|
||
|
|
||
|
# Create connection to CloudVision
|
||
|
clnt = CvpClient()
|
||
|
clnt.connect(['cvp1'],'username', 'password')
|
||
|
|
||
|
# Generate change control id and change control name
|
||
|
cc_id = str(uuid.uuid4())
|
||
|
name = f"Change_{datetime.now().strftime('%Y%m%d_%H%M%S')}"
|
||
|
|
||
|
# Select the tasks and create a CC where all tasks will be run in parallel
|
||
|
tasks = ["1249","1250","1251","1252"]
|
||
|
clnt.api.change_control_create_for_tasks(cc_id, name, tasks, series=False)
|
||
|
|
||
|
# Approve the change control
|
||
|
approve_note = "Approving CC via cvprac"
|
||
|
clnt.api.change_control_approve(cc_id, notes=approve_note)
|
||
|
|
||
|
# # Schedule the change control
|
||
|
# # Executing scheduled CCs might only work post 2021.3.0+
|
||
|
# schedule_note = "Scheduling CC via cvprac"
|
||
|
# schedule_time = "2021-12-23T03:17:00Z"
|
||
|
# clnt.api.change_control_schedule(cc_id,schedule_time,notes=schedule_note)
|
||
|
|
||
|
# Start the change control
|
||
|
start_note = "Start the CC via cvprac"
|
||
|
clnt.api.change_control_start(cc_id, notes=start_note)
|