Python Netmiko发送配置集-解析响应-检测错误?
我正在使用Netmiko库连接到设备,并通过“send_config_set”方法发送新的配置命令。目前,我只在Cisco IOS设备上执行此操作。但是我正在做一些东西,允许用户输入任何命令(除了一些例外),因此我试图理解如何解释我得到的输出 据我所知,Netmiko目前只返回原始输出。但对我来说,有用的是确定在执行这些命令的过程中是否出现了问题——比如布尔标志 例如,假设我这样做:Python Netmiko发送配置集-解析响应-检测错误?,python,error-handling,network-programming,cisco-ios,Python,Error Handling,Network Programming,Cisco Ios,我正在使用Netmiko库连接到设备,并通过“send_config_set”方法发送新的配置命令。目前,我只在Cisco IOS设备上执行此操作。但是我正在做一些东西,允许用户输入任何命令(除了一些例外),因此我试图理解如何解释我得到的输出 据我所知,Netmiko目前只返回原始输出。但对我来说,有用的是确定在执行这些命令的过程中是否出现了问题——比如布尔标志 例如,假设我这样做: send_config_set(['abcd']) 我得到的答复是: config term Enter co
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
开头,或者类似的以a%开头,所以我想知道这是否足以让我搜索这些错误的输出,然后自己设置一个标志来显示遇到了错误?也许我可以建立一个字符串列表,以便在输出中查找
尽管如此,我不相信这一切都是可靠的,我渴望听到其他人对最好的方法的意见。Netmiko是一个“屏幕抓取”库;它从屏幕上刮下文本并发送给您
您所描述的正是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构建某种包装,也许您也应该这样做。Hm,您的观点很好,它只是一个屏幕刮刀。我想我在寻找更聪明的东西,但没有简单的解决办法。