#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')