from urllib3 import exceptions # Prevent SSL Self-Signed Certificate Error import requests # Creation Of New Object import urllib3 from netmiko import (ConnectHandler,NetmikoTimeoutException) # SSH Connection import socket # DNS Lookup import time # For Waiting import CampusSelector import SwitchCommands def main(ArubaUsername, ArubaPassword): urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) # Disable Certificate Warning # Get the Campus or Switch IP Address campus = CampusSelector.Campus_Selector() ip = campus[1] campus_selection = campus[2] campus = campus[0] # Get the Role we want to bounce role = CampusSelector.Role_Selector() if campus_selection == "6": hostname = socket.getfqdn(ip) print('Current Switch:', hostname, ":", ip) # Create Session Object session = requests.session() # Create SSH Connection ssh = ConnectHandler( device_type="aruba_procurve", host=ip, username=ArubaUsername, password=ArubaPassword, ) try: cli = ssh.send_command(f"show port-access clients") parse = cli.split("\n") for line in parse: line = line.lstrip() if role in line: interface = line.split(" ")[0] if interface == 'd': interface = line.split(" ")[1] print("Non-Tunneled Device, Skip:", interface) else: interface = line.split(" ")[0] # int_config = [f'interface {interface}', 'shut'] SwitchCommands.shutport(ssh, interface) # config_send = ssh.send_config_set(int_config) print("Sending Command: ", interface, "\n Port Shutdown - Waiting 2 Seconds") # int_config = [f'interface {interface}', 'no shut'] SwitchCommands.noshutport(ssh, interface) # config_send = ssh.send_config_set(int_config) print("Sending Command: ", interface, "\n Flipped - Waiting 1 Second For Next Port") finally: print("Logging Out From Switch", hostname, ip) ssh.disconnect() time.sleep(1) if campus_selection != "6": with open(campus) as file: while line := file.readline().rstrip(): ip = line hostname = socket.getfqdn(ip) print('Current Switch:', hostname, ":", ip) # Create Session Object session = requests.session() # Create SSH Connection try: ssh = ConnectHandler( device_type="aruba_procurve", host=ip, username=ArubaUsername, password=ArubaPassword, ) try: cli = ssh.send_command(f"show port-access clients") parse = cli.split("\n") for line in parse: line = line.lstrip() if role in line: interface = line.split(" ")[0] if interface == 'd': interface = line.split(" ")[1] print("Non-Tunneled Device, Skip:", interface) else: interface = line.split(" ")[0] # int_config = [f'interface {interface}', 'shut'] SwitchCommands.shutport(ssh, interface) # config_send = ssh.send_config_set(int_config) print("Sending Command: ", interface, "\n Port Shutdown - Waiting 2 Seconds") # int_config = [f'interface {interface}', 'no shut'] SwitchCommands.noshutport(ssh, interface) # config_send = ssh.send_config_set(int_config) print("Sending Command: ", interface, "\n Flipped - Waiting 1 Second For Next Port") finally: print("Logging Out From Switch", hostname, ip) ssh.disconnect() except (NetmikoTimeoutException) as error: print("Switch is not responding-----> " + ip) print("Switch is not responding-----> " + ip) print("Switch is not responding-----> " + ip)