Как обрабатывать ошибки: Pynt c s sh на сетевое устройство - PullRequest
0 голосов
/ 07 января 2020

Я новичок в области автоматизации сети и пытаюсь использовать pynt c для s sh для устройства. Я не уверен, как правильно написать код для обработки тайм-аута s sh или ошибки аутентификации и т. Д. c.

Мой код указан ниже:

from pyntc import ntc_device as NTC
from pyntc_devices_list import Get_Devices_List

all_devices = Get_Devices_List()

for device in all_devices:
        print('Backing up ' + device['name'])
        DEVICE = NTC(host=device['ip'], username=device['username'], password=device['password'], device_type='cisco_ios$
    try:
            DEVICE.open()
    except Exception:
            print('Error')
            continue

    back_config = DEVICE.backup_running_config(device['name'] + '.cfg')
    DEVICE.close()

Я вручную выключил это устройство и обнаружил, что python код был завершен:

root@Network-Automation:~/Pyntc# python3 pyntc_error_handling.py
Backing up ESW1
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/netmiko/base_connection.py", line 884, in establish_connection
    self.remote_conn_pre.connect(**ssh_connect_params)
  File "/usr/local/lib/python3.5/dist-packages/paramiko/client.py", line 368, in connect
    raise NoValidConnectionsError(errors)
paramiko.ssh_exception.NoValidConnectionsError: [Errno None] Unable to connect to port 22 on 192.168.122.72

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "pyntc_error_handling.py", line 8, in <module>
    DEVICE = NTC(host=device['ip'], username=device['username'], password=device['password'], device_type='cisco_ios_ssh')
  File "/usr/local/lib/python3.5/dist-packages/pyntc/__init__.py", line 38, in ntc_device
    return device_class(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/pyntc/devices/ios_device.py", line 42, in __init__
    self.open()
  File "/usr/local/lib/python3.5/dist-packages/pyntc/devices/ios_device.py", line 300, in open
    verbose=False,
  File "/usr/local/lib/python3.5/dist-packages/netmiko/ssh_dispatcher.py", line 246, in ConnectHandler
    return ConnectionClass(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/netmiko/base_connection.py", line 317, in __init__
    self._open()
  File "/usr/local/lib/python3.5/dist-packages/netmiko/base_connection.py", line 322, in _open
    self.establish_connection()
  File "/usr/local/lib/python3.5/dist-packages/netmiko/base_connection.py", line 890, in establish_connection
    raise NetMikoTimeoutException(msg)
netmiko.ssh_exception.NetMikoTimeoutException: Connection to device timed-out: cisco_ios 192.168.122.72:22

Похоже, ошибок больше 1 ...

...