Код для входа в систему Hp Aruba Switches .. Сетевое программирование - PullRequest
0 голосов
/ 17 июня 2020

Я написал ниже код для входа в HP ARuba Switches и внесения изменений .. Но он не работает .. После входа в систему выдает ошибку. Что я могу изменить в приведенном ниже коде, чтобы он работал с ОС Aruba. Он должен выдать ошибку, если что-то пойдет не так, и сохранить ее в одном файле на основе ошибки. И если приходит любое другое устройство, кроме Aruba, должно выдать ошибку и продолжить. Модель - 2930F-48G-PoE

Любая помощь будет принята с благодарностью.

      from getpass import getpass
      from netmiko import ConnectHandler
      from netmiko.ssh_exception import NetMikoTimeoutException
      from netmiko.ssh_exception import AuthenticationException
      from paramiko.ssh_exception import SSHException
      from netmiko.aruba import ArubaSSH
      from netmiko.aruba import *

      username = input("Enter username:  ")
      password = getpass()

      with open('HP_commands_file.txt') as f:
          commands_list = f.read().splitlines()

      with open('HP_devices_list.txt') as f:
          devices_list = f.read().splitlines()

      for devices in devices_list:
          print("Connecting to device:  " + devices)
          host_name_of_device = devices
          hp_device = {
              'device_type' : 'hp_procurve' ,
              'host' : host_name_of_device ,
              'username' : username ,
              'password' : password ,
          }

          ## If we want error to be stored in particular file
          Timeouts=open("Connection_TimeOuts_HP.txt", "a")
          Authfailure=open("Auth_failures_HP.txt", "a")
          SSHException=("SSH_Failure_HP.txt", 'a')
          EOFError=("EOFerrors_HP.txt",'a')
          UnknownError=("UnknownError_HP.txt",'a')

          ################# End#############

          try:
              net_connect = ConnectHandler(**hp_device)
          except (AuthenticationException):
              print("Authetication failure: " + host_name_of_device)
              Authfailure.write('\n########\n' + host_name_of_device)
              continue
          except (NetMikoTimeoutException):
              print("Time out from device: " + host_name_of_device)
              Timeouts.write('\n########\n' + host_name_of_device)
              continue
          except (EOFError):
              print("End of File reached: " + host_name_of_device)
              EOFError.write('\n' + host_name_of_device)
              continue
          except (SSHException):
              print("Not able to SSH: Try with Telnet:  " + host_name_of_device)
              SSHException.write('\n########\n' + host_name_of_device)
              continue
          except Exception as unknown_error:
              print("May be error with enable mode or device name is wrong or other: " + str(unknown_error))
              continue

          output = net_connect.send_config_set(commands_list)
          print(output)
...