06-20-2022 07:57 AM - edited 06-22-2022 02:33 AM
Hello, i'm building a Python Netmiko code to login to APIC, collect list of nodes, then attach to each node and run some commands that need to be done on the leaf itself (not from Apic via fabric command).
Now, it seems the code can login (attach) to the leaf, but then gets stuck with netmiko.exceptions.ReadTimeout: which doesn't make sense to me because it is already logged in as shown in the log file.
switch = { 'device_type': 'cisco_nxos', 'host': host_ip, 'username': username, 'password': password, 'port' : 22, # optional, defaults to 22 'secret': 'admin', # optional, defaults to '' 'session_log': 'log.log', #generate a log session for the code to teshoot the code 'ssh_config_file': ssh_config, 'banner_timeout': 3 } try: #Avoid Timeout & Auth errors and continuo for next switch net_connect = ConnectHandler(**switch) except (NetMikoTimeoutException, NetMikoAuthenticationException): print ('\n' + 'Cannot connect to device: ' + host_ip) sys.exit() host_list.append(host_ip) #Register IPs of connected hosts timestamp = date.today() #timestamp = datetime.now().strftime("%Y-%m-%d_%H:%M:%S") #Time including hours, minutes, seconds hostname = net_connect.find_prompt()[:-1] #Get the hostname print ("Checking current status of ACI fabric ports for " + hostname + "_" + (host_ip)) command1 = "show switch" #with ConnectHandler(**cisco1) as net_connect: output1 = net_connect.send_command(command1) node_list = re.findall(r"(\d+)\s+(\d+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)", output1, re.MULTILINE) x=0 for i in node_list: node_id = node_list[x][0] node_name = node_list[x][10] node_diffrentiator = node_list[x][8] x=x+1 output2 = net_connect.send_command(command_string=f"attach {node_name}", expect_string=r"Password:") output2 += net_connect.send_command(command_string=f"{password}", expect_string=r"#", read_timeout=30) node_hostname = net_connect.find_prompt()[:-1]
Traceback (most recent call last): File "ACI_Interfaces_Health_Check.py", line 132, in <module> output2 += net_connect.send_command(command_string=f"{password}") File "/usr/local/lib/python3.6/site-packages/netmiko/utilities.py", line 600, in wrapper_decorator return func(self, *args, **kwargs) File "/usr/local/lib/python3.6/site-packages/netmiko/base_connection.py", line 1644, in send_command new_data = self.command_echo_read(cmd=cmd, read_timeout=10) File "/usr/local/lib/python3.6/site-packages/netmiko/base_connection.py", line 1370, in command_echo_read pattern=re.escape(cmd), read_timeout=read_timeout File "/usr/local/lib/python3.6/site-packages/netmiko/base_connection.py", line 651, in read_until_pattern raise ReadTimeout(msg) netmiko.exceptions.ReadTimeout: Pattern not detected: '' in output. Things you might try to fix this: 1. Adjust the regex pattern to better identify the terminating string. Note, in many situations the pattern is automatically based on the network device's prompt. 2. Increase the read_timeout to a larger value. You can also look at the Netmiko session_log or debug log for more information.
Last login: 2022-06-20T16:30:50.000+02:00 UTC % APIC# tterminal width 511 % APIC# tterminal length 0 % APIC# % APIC# % APIC# % APIC# % APIC# attach LEAF101 This command is being deprecated on APIC controller, please use NXOS-style equivalent command # Executing command: ssh LEAF101 -b 10.4.0.1 Password: Password: Password: Last login: Mon Jun 20 16:27:11 2022 from 10.4.0.1 Cisco Nexus Operating System (NX-OS) Software TAC support: http://www.cisco.com/tac Copyright (c) 2002-2018, Cisco Systems, Inc. All rights reserved. The copyrights to certain works contained in this software are owned by other third parties and used and distributed under license. Certain components of this software are licensed under the GNU General Public License (GPL) version 2.0 or the GNU Lesser General Public License (LGPL) Version 2.1. A copy of each such license is available at http://www.opensource.org/licenses/gpl-2.0.php and http://www.opensource.org/licenses/lgpl-2.1.php LEAF101#
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide