mirror of
https://github.com/CiscoDevNet/cml-community.git
synced 2025-10-25 17:14:03 +00:00
63 lines
1.6 KiB
Python
63 lines
1.6 KiB
Python
import requests
|
|
import json
|
|
import os
|
|
requests.packages.urllib3.disable_warnings()
|
|
from cmlApiCalls import CML as cml
|
|
|
|
#edit the following variables
|
|
server = "cml.server.com"
|
|
username = "admin"
|
|
password = "CMLpassword123"
|
|
lab = "53b3fe"
|
|
|
|
|
|
user = os.getlogin()
|
|
auth = cml.auth(server, username, password)
|
|
|
|
N = True
|
|
n_id = 0
|
|
port = 9000
|
|
try:
|
|
os.mkdir(rf"C:/Users/{user}/AppData/Roaming/VanDyke/Config/Sessions/CML-{lab}")
|
|
except:
|
|
print("directory already exists... continue...")
|
|
|
|
|
|
while N:
|
|
node_id = f"n{n_id}"
|
|
response = cml.getNodesByID(auth, server, lab, node_id)
|
|
|
|
if response == "end of list":
|
|
#exit if end of list
|
|
N = False
|
|
|
|
elif response.get("node_definition") == "external_connector":
|
|
# dont count external_connector as usable
|
|
n_id = n_id + 1
|
|
|
|
else:
|
|
# get label
|
|
node_label = response.get("label")
|
|
|
|
# turn port number into hex
|
|
# strip "0x2233" and make it only 4 charators
|
|
hexport = hex(port).split('x')[-1]
|
|
|
|
with open("config.ini", "r") as config:
|
|
temp = config.read()
|
|
temp = temp.replace("REPLACE", "0000" + hexport)
|
|
location = rf"C:/Users/{user}/AppData/Roaming/VanDyke/Config/Sessions/CML-{lab}/{port}-{node_label}.ini"
|
|
with open( location, "w") as config2write:
|
|
config2write.write(temp)
|
|
|
|
if response.get("node_definition") == "wan_emulator":
|
|
# add by 1 if wan_emulator
|
|
port = port + 1
|
|
else:
|
|
port = port + 2
|
|
n_id = n_id + 1
|
|
|
|
|
|
|
|
|