Я использую библиотеку Netmiko для подключения к устройствам и отправки новых команд конфигурации с помощью метода "send_config_set". В настоящее время я делаю это только на устройствах Cisco IOS. Но я делаю что-то, что позволит пользователю вводить любые команды (за некоторыми исключениями), и поэтому я пытаюсь понять, как интерпретировать полученный результат.
Как я понимаю, Netmiko в настоящее время возвращает только необработанныевыход. Но что было бы полезно для меня, это определить, что-то пошло не так во время выполнения этих команд - может быть, как логический флаг?
Например, допустим, я делаю это:
send_config_set(['abcd'])
Ответ, который я получил бы:
config term
Enter configuration commands, one per line. End with CNTL/Z.
switch(config)#abcd
^
% Invalid input detected at '^' marker.
switch(config)#end
switch#
Ясно, что в этом случае произошла ошибка, так как команда была недействительной. Но Netmiko не может сказать мне об этом, просто выдает результат, и я думаю, хочет, чтобы я принял решение.
Я не сетевой инженер, поэтому я не знаю, какие могут быть возможные ошибки(т. е. что искать в ответе), я также не знаю всех команд, которые пользователь попробует, поэтому не могу объяснить все.
Что я заметил, так это когда Cisco IOS, кажется, имеет некоторыеошибки, они, кажется, всегда начинаются с % Invalid
или % Access
или чего-то подобного, начинающегося с% - поэтому я задаюсь вопросом, достаточно ли этого для меня, чтобы найти выходные данные для них, а затем сам установить флаг, чтобы показатьошибка обнаружена? Может быть, я могу составить список строк, которые нужно искать в выходных данных?
Хотя я не уверен, что это все настолько надежно, и мне хотелось бы услышать мнение других о том, как лучше всего это сделать.