Объекты CiscoConfParse не предлагают метод, который позволяет находить объекты с определенными дочерними объектами, но без других определенных дочерних объектов.Однако мы можем использовать понимание списка для выполнения той же задачи с помощью метода re_search_children()
объекта IOSCfgLine, как показано ниже:
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")]
Поскольку объекты регулярных выражений truey , приведенный выше списокпонимание только вернет объекты IOSCfgLine, представляющие интерфейсы, для которых не настроен channel-group
, но настроен service-policy
.