You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi everyone,
I am new in python and I can't seem to find a way to get around it.
I have writen a python script, to select office number, vlan number, switch IP address (dropdown menu), and port number (dropdown menu)
Then connect to the switch with available details and configure the switch port accordingly.
The program works fine when I was collecting the data from text files, but now that I have converted into menu so there will be no mistake in typing the details, I am not able to figure out why it is not working.
Thanks in advance for your help
The codes is below:
importloggingfromtkinterimport*importhvacimportparamiko# Connect to Vaultvault_addr="http://192.168.99.19:8200"vault_token="hvs.xxxxxxxxxxxxxxxxxxxxx"client=hvac.Client(url=vault_addr, token=vault_token)
# Retrieve credentials from Vaultsecret_path="passwords"secret=client.secrets.kv.v2.read_secret_version(path=secret_path)
username=secret['data']['data']['myuser']
password=secret['data']['data']['mypass']
main_window=Tk()
main_window.title('Switch Configuration')
main_window.iconbitmap('C:/soft/1/net.ico')
main_window.geometry("400x300")
main_window.columnconfigure(0, weight=1)
main_window.columnconfigure(1, weight=1)
#now we create check boxes#first creating Options parttop_label=Label(main_window, text="Switch Configurations")
top_label.grid(column=0, row=2, columnspan=2)
#we create name label here we don't see entry section and only the left side of the frameoffice_label=Label(main_window, text="Office No. ")
office_label.grid(column=0, row=4)
office_field=Entry()
office_field.grid(column=1, row=4)
#we create name label here we don't see entry section and only the left side of the framevlan_label=Label(main_window, text="Vlan No. ")
vlan_label.grid(column=0, row=6)
vlan_field=Entry()
vlan_field.grid(column=1, row=6)
#drop down menu switch Listswitch_menu_label=Label(main_window, text="Switch List ")
switch_menu_label.grid(column=0, row=8)
switch_list= ["192.168.99.241", "192.168.99.242", "192.168.99.243", "192.168.99.244",
"192.168.99.245", "192.168.99.246", "192.168.99.247", "192.168.99.248", "192.168.99.249"]
switch_value=StringVar(main_window)
switch_value.set("Select A Switch: ")
switch_menu=OptionMenu(main_window, switch_value, *switch_list)
switch_menu.grid(column=1, row=8)
#drop down menuport_menu_label=Label(main_window, text="Switch Port ")
port_menu_label.grid(column=0, row=10)
port_list= ["FastEthernet0/1", "FastEthernet0/2", "FastEthernet0/3", "FastEthernet0/4",
"FastEthernet0/5", "FastEthernet0/6", "FastEthernet0/7", "FastEthernet0/8", "FastEthernet0/9",
"FastEthernet0/10", "FastEthernet0/11", "FastEthernet0/12", "FastEthernet0/13", "FastEthernet0/14",
"FastEthernet0/15", "FastEthernet0/16", "FastEthernet0/17", "FastEthernet0/18", "FastEthernet0/19",
"FastEthernet0/20", "FastEthernet0/21", "FastEthernet0/22", "FastEthernet0/23", "FastEthernet0/24",
"FastEthernet0/25", "FastEthernet0/26", "FastEthernet0/27", "FastEthernet0/28", "FastEthernet0/29",
"FastEthernet0/30", "FastEthernet0/31", "FastEthernet0/32", "FastEthernet0/33", "FastEthernet0/34",
"FastEthernet0/35", "FastEthernet0/36", "FastEthernet0/37", "FastEthernet0/38", "FastEthernet0/39",
"FastEthernet0/40", "FastEthernet0/41", "FastEthernet0/42", "FastEthernet0/43", "FastEthernet0/44",
"FastEthernet0/45", "FastEthernet0/46", "FastEthernet0/47"]
port_value=StringVar(main_window)
port_value.set("Select Switch Port: ")
port_menu=OptionMenu(main_window, port_value, *port_list)
port_menu.grid(column=1, row=10)
desc=office_field.get()
vlan=vlan_field.get()
interface=port_value.get()
switches=switch_value.get()
ssh_client=paramiko.SSHClient()
defget_switch_data():
deflogin():
#connections = []ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
connection=login()
#for connection in connections:config_commands= [
f"interface FastEthernet0/{interface}",
f"switchport access vlan {vlan}",
f"switchport voice vlan 96",
f"des {desc}",
f"switchport mode access",
f"no switchport trunk encapsulation dot1q",
f"no switchport trunk native vlan",
f"no switchport trunk allowed vlan",
f"no shutdown"
]
output=connection.send_config_set(config_commands)
print(output)
print("-"*72)
output=connection.send_command("wri")
print(output)
finally:
ssh_client.close()
#Submit Buttonsubmit_button=Button(main_window, text="Submit Changes", command=get_switch_data)
submit_button.grid(column=0, row=20, columnspan=2)
main_window.mainloop()
### Error Traceback
c:\soft\Test\1.py:23: DeprecationWarning: The raise_on_deleted_version parameter will change its default value to False in hvac v3.0.0. The current default of True will presere previous behavior.
To use the old behavior with no warning, explicitly set this value to True. See https://github.com/hvac/hvac/pull/907
secret = client.secrets.kv.v2.read_secret_version(path=secret_path)
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Program Files\Python313\Lib\tkinter\__init__.py", line 2068, in __call__
return self.func(*args)
~~~~~~~~~^^^^^^^
File "c:\soft\Test\1.py", line 117, in get_switch_data
output = connection.send_config_set(config_commands)
^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'send_config_set'
The text was updated successfully, but these errors were encountered:
Hi everyone,
I am new in python and I can't seem to find a way to get around it.
I have writen a python script, to select office number, vlan number, switch IP address (dropdown menu), and port number (dropdown menu)
Then connect to the switch with available details and configure the switch port accordingly.
The program works fine when I was collecting the data from text files, but now that I have converted into menu so there will be no mistake in typing the details, I am not able to figure out why it is not working.
Thanks in advance for your help
The codes is below:
### Error Traceback
The text was updated successfully, but these errors were encountered: