我可以在单个 Cisco IOS 配置文件中使用两个 ciscoconfparse 对象来获取特定接口吗
Can I use two ciscoconfparse objects in a single Cisco IOS config file to get specific interfaces
Trying to use two of the conf objects find_objects_w_child &
find_objects_wo_child in a single file.
我需要从配置了特定 QoS "service-policy" 命令的 Cisco 配置文件中找出 "interfaces"。
同时不应该是任何以太通道的一部分。
- 使用对象 "find_objects_w_child" 我可以获得所有 'interface' 配置了命令 "service-policy" 的对象,并且
- 使用对象 "find_objects_wo_child" 获取所有 'interface' 个没有命令 "channel-group" 的对象。
是否可以在同一个配置文件中使用这两个对象?
CiscoConfParse 对象不提供允许您查找具有特定子项但没有其他特定子项的对象的方法。然而,我们可以利用列表理解来完成与 IOSCfgLine 对象的 re_search_children()
方法相同的任务,如下所示:
from ciscoconfparse import CiscoConfParse
parse = CiscoConfParse("ios_cfg.txt")
phys_intfs_w_qos = [obj for obj in parse.find_objects_wo_child(r"^interface", "channel-group") if obj.re_search_children(r"service-policy")]
因为正则表达式对象是 ,上面的列表理解将仅 return IOSCfgLine 对象表示没有 channel-group
配置但确实有 service-policy
配置的接口.
Trying to use two of the conf objects find_objects_w_child & find_objects_wo_child in a single file.
我需要从配置了特定 QoS "service-policy" 命令的 Cisco 配置文件中找出 "interfaces"。
同时不应该是任何以太通道的一部分。
- 使用对象 "find_objects_w_child" 我可以获得所有 'interface' 配置了命令 "service-policy" 的对象,并且
- 使用对象 "find_objects_wo_child" 获取所有 'interface' 个没有命令 "channel-group" 的对象。
是否可以在同一个配置文件中使用这两个对象?
CiscoConfParse 对象不提供允许您查找具有特定子项但没有其他特定子项的对象的方法。然而,我们可以利用列表理解来完成与 IOSCfgLine 对象的 re_search_children()
方法相同的任务,如下所示:
from ciscoconfparse import CiscoConfParse
parse = CiscoConfParse("ios_cfg.txt")
phys_intfs_w_qos = [obj for obj in parse.find_objects_wo_child(r"^interface", "channel-group") if obj.re_search_children(r"service-policy")]
因为正则表达式对象是 channel-group
配置但确实有 service-policy
配置的接口.