Files
cml-community/scripts/breakout-to-secureCRT-session/main.py
2021-08-12 11:14:36 -06:00

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