尝试使用两个conf对象 find_objects_w_child & 在单个文件中 find_objects_wo_child 。
我需要从Cisco配置文件中找出配置了特定QoS“服务策略”命令的“接口”。
同时不应成为任何以太通道的一部分。
是否甚至可以在同一个配置文件中使用这两个对象?
答案 0 :(得分:0)
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")]
因为正则表达式对象是truthy,所以上面的列表理解将仅返回IOSCfgLine对象,这些对象表示未配置channel-group
但配置了service-policy
的接口。