cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
665
Views
5
Helpful
2
Replies

Python Loop issue driving me crazy

wrobbin
Level 1
Level 1

So i have a python script that applies configs to devices and that part works no problem. The problem is when it hits an exception the script dies. I have looked at a bunch of python resources and I just can't figure it out. Any help would be awesome!

 

##imports python modules needed to work
from netmiko import ConnectHandler
import time, sys, getpass, paramiko
from netmiko.ssh_exception import NetMikoTimeoutException
from netmiko.ssh_exception import NetMikoAuthenticationException

##selects the correct Netmiko class based upon the device_type.
## I then define a network device dictionary consisting of a device_type, ip, username, and password.
user = ""
pword = ""

device = {
'device_type': 'cisco_ios',
#'ip': '192.168.43.10',
'username': user,
'password': pword,
#'secret':'password'
}
ipfile=open("iplist.txt") #This file contains a list of switch ip addresses.
#print ("Please doublecheck your configuration in the config file. Please stop and figure out what you're about to do...")
configfile=open("configfile.txt") #opening the config file with the changes you want to push
configset=configfile.read() ##reads the config file
configfile.close() #closes the config file

for line in ipfile:
device['ip']=line.strip()
print("Connecting to Device " + line)
net_connect = ConnectHandler(**device)
time.sleep(2)
print ("Applying Configuration to Device " + line)
output = net_connect.send_config_set(configset)
print(output)

2 Replies 2

Netmiko will send the commands that you specify down the SSH channel. You will need to look at the output of what comes back to see what happened. In your above case, it should report you back as % invalid command from the remote device (if is the invalid config you are looking for?) Netmiko doesn't sanity check the validity of your configuration commands, nor the response returned by the device.

 

Typically I would use the try and except block in Python, this is used to catch and handle exceptions. For example, Python executes code following the statement as a “normal” part of the program. The code that follows the statement is the program’s response to any exceptions in the preceding try clause. For example, you use this if the device was unreachable.

 

Hope this helps.

Please mark this as helpful or solution accepted to help others
Connect with me https://bigevilbeard.github.io

thank you i will give that a try