Netmiko send_config_set - 解析响应 - 检测错误?
Netmiko send_config_set - parsing the response - detecting errors?
我正在使用 Netmiko 库连接到设备并通过 "send_config_set" 方法发送新的配置命令。目前,我只在 Cisco IOS 设备上执行此操作。但是我正在做一些允许用户输入任何命令(有一些例外)的东西,所以我试图了解如何解释我得到的输出。
据我了解,Netmiko 目前只有 returns 原始输出。但是对我有用的是确定在执行这些命令期间是否出现问题 - 也许像布尔标志?
例如,假设我这样做:
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
或类似的以 % 开头的东西开头- 所以我想知道这是否足以让我搜索这些输出然后自己设置一个标志以显示遇到错误?也许我可以构建一个字符串列表以在输出中查找?
虽然,我不相信这一切都那么可靠,但我很想听听其他人对最好的方法的意见。
Netmiko 是一个 "screen-scraping" 库;它会从屏幕上刮下文字并将其发送给您。
您所描述的正是 API 接口(如 NETCONF)优于屏幕抓取接口的原因。
当您应用配置命令时出现的 Cisco IOS 消息确实以 % 开头,但并非所有消息都是错误。例如:
Switch(config-if)#spanning-tree portfast
%Warning: portfast should only be enabled on ports connected to a single host.
Connecting hubs, concentrators, switches, bridges, etc.to this interface
when portfast is enabled, can cause temporary spanning tree loops.
Use with CAUTION
这就是为什么 Netmiko 只是将消息传递给用户,以便他们可以根据消息采取行动的原因。由于您似乎也在围绕 Netmiko 构建某种包装器,也许您也应该这样做。
我正在使用 Netmiko 库连接到设备并通过 "send_config_set" 方法发送新的配置命令。目前,我只在 Cisco IOS 设备上执行此操作。但是我正在做一些允许用户输入任何命令(有一些例外)的东西,所以我试图了解如何解释我得到的输出。
据我了解,Netmiko 目前只有 returns 原始输出。但是对我有用的是确定在执行这些命令期间是否出现问题 - 也许像布尔标志?
例如,假设我这样做:
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
或类似的以 % 开头的东西开头- 所以我想知道这是否足以让我搜索这些输出然后自己设置一个标志以显示遇到错误?也许我可以构建一个字符串列表以在输出中查找?
虽然,我不相信这一切都那么可靠,但我很想听听其他人对最好的方法的意见。
Netmiko 是一个 "screen-scraping" 库;它会从屏幕上刮下文字并将其发送给您。
您所描述的正是 API 接口(如 NETCONF)优于屏幕抓取接口的原因。
当您应用配置命令时出现的 Cisco IOS 消息确实以 % 开头,但并非所有消息都是错误。例如:
Switch(config-if)#spanning-tree portfast
%Warning: portfast should only be enabled on ports connected to a single host.
Connecting hubs, concentrators, switches, bridges, etc.to this interface
when portfast is enabled, can cause temporary spanning tree loops.
Use with CAUTION
这就是为什么 Netmiko 只是将消息传递给用户,以便他们可以根据消息采取行动的原因。由于您似乎也在围绕 Netmiko 构建某种包装器,也许您也应该这样做。