Python 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

我正在使用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
开头,或者类似的以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,您的观点很好,它只是一个屏幕刮刀。我想我在寻找更聪明的东西,但没有简单的解决办法。