from netmiko import ConnectHandler from getpass import getpass import requests import urllib3 import re import time import getpass urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) ########################################################################### print(" 1 = UNL-City \n 2 = UNL-East \n 3 = UNO \n 4 = UNK \n Select Campus:") campus = input() print(f"Campus Selected: {campus}") print("----------------------------------") print("----------------------------------") print(" 1 = wired_l1_game_dur-3142-2 \n 2 = wired_l2_print_dur-3134-6 \n 3 = wired_ap_dur-3095-4 \n 4 = wired_l2_iot_dur-3147-2 \n 5 = wired_l2_shared_dur-3168-2 \n 6 = wired_cctv_dur-3107-8 \n 7 = test \n Select Role:") role = input() if campus == "1": file = [line.strip() for line in open("unlCitySwitches-cx.txt", 'r')] if campus == "2": file = [line.strip() for line in open("unlEastSwitches-cx.txt", 'r')] if campus == "3": file = [line.strip() for line in open("unoSwitches-cx.txt", 'r')] if campus == "4": file = [line.strip() for line in open("unkSwitches-cx.txt", 'r')] #print(file[]) #file.close() if role == "1": policyrole = "wired_l1_game_dur-3142-2" if role == "2": policyrole = "wired_l2_print_dur-3134-6" if role == "3": policyrole = "wired_ap_dur-3095-4" if role == "4": policyrole = "wired_l2_iot_dur-3147-2" if role == "5": policyrole = "wired_l2_shared_dur-3168-2" if role == "6": policyrole = "wired_cctv_dur-3107-8" if role == "7": policyrole = "application-failed" ########################################################################## print("Enter Username:") Ausername = input() print("Enter Password:") Apassword = getpass.getpass() creds = {"username": {Ausername}, "password": {Apassword}} for selectIP in file: #print("Enter the Switch IP:") ip_add = selectIP print(ip_add) session = requests.session() net_connect = ConnectHandler( device_type="aruba_procurve", host=ip_add, username=Ausername, password=Apassword, ) # create sessions object ############################################################################### output = net_connect.send_command(f"show port-access clients role {policyrole}") to1 = output.split("\n") print(f"Ports that have role: {policyrole}:") for to in to1 : to = to[2:] to = to.split(" ")[0] if re.search("[\d]+/[\d]/[\d]+",to): print (to) to2 = to.split("/") output2 = [f"interface {to2[0]}/{to2[1]}/{to2[2]}","shut","no shut"] net_connect.send_config_set(output2) net_connect.send_config_set(f"wr mem") net_connect.disconnect() print(f"Logged out from Switch!")