Создание функций с помощью Netmiko

#python #cisco-ios #netmiko

Вопрос:

У меня есть скрипт функции, использующий netmiko, и я хочу создать функцию для команды send_command, но я действительно понятия не имею, как это сделать.

 def estb_conn(ip,uname,pname,instruct):
cisco_ios = {
    'device_type': 'cisco_ios',
    'ip': ip,
    'username': uname,
    'password': pname,
}

ios_connect = netmiko.ConnectHandler(**cisco_ios)
display = ios_connect.find_prompt()
 

**** Я хочу сделать эту команду send_command новой функцией, чтобы я мог свободно
вызывать ее в любом месте, когда мне нужна многократная команда или для цикла****

 command = ios_connect.send_command(instruct)
time.sleep(1)
 

Ответ №1:

Да, вы можете создавать новые функции в Python. Вы даже можете делать то, что хотите (это называется частичным применением и закрытием).

 def netmiko_partial_from_stackoverflow (ip, uname, pname):
    cisco_ios = {
        'device_type': 'cisco_ios',
        'ip': ip,
        'username': uname,
        'password': pname,
    }

    ios_connect = netmiko.ConnectHandler(**cisco_ios)
    display = ios_connect.find_prompt()

    def inner_function_from_stackoverflow(instruct):
        res = ios_connect.send_command(instruct)
        time.sleep(1)
        return res
    
 

После этого вы можете использовать его так:

 mycommand_from_stackoverflow = netmiko_partial_from_stackoverflow(someip, someuname, somepnmae)
mycommand_from_stackoverflow('show running-config')
mycommand_from_stackoverflow('show inferfaces')