diff --git a/lib/ansible/modules/network/cloudengine/ce_evpn_bd_vni.py b/lib/ansible/modules/network/cloudengine/ce_evpn_bd_vni.py index 21f23b02bb8e5a..ac30b8cc8661b2 100644 --- a/lib/ansible/modules/network/cloudengine/ce_evpn_bd_vni.py +++ b/lib/ansible/modules/network/cloudengine/ce_evpn_bd_vni.py @@ -248,6 +248,7 @@ sample: true ''' +import re import copy from xml.etree import ElementTree from ansible.module_utils.basic import AnsibleModule @@ -260,7 +261,7 @@ - %s + @@ -552,7 +553,7 @@ def get_evpn_instance_info(self): replace('xmlns="http://www.huawei.com/netconf/vrp"', "") root = ElementTree.fromstring(xml_str) - evpn_inst = root.find("data/evpn/evpnInstances/evpnInstance") + evpn_inst = root.find("evpn/evpnInstances/evpnInstance") if evpn_inst: for eles in evpn_inst: if eles.tag in ["evpnAutoRD", "evpnRD", "evpnRTs", "evpnAutoRTs"]: @@ -1006,9 +1007,9 @@ def check_params(self): def check_vni_bd(self): """Check whether vxlan vni is configured in BD view""" - xml_str = CE_NC_GET_VNI_BD % self.bridge_domain_id + xml_str = CE_NC_GET_VNI_BD xml_str = get_nc_config(self.module, xml_str) - if "" in xml_str: + if "" in xml_str or not re.findall(r'\S+\s+%s' % self.bridge_domain_id, xml_str): self.module.fail_json( msg='Error: The vxlan vni is not configured or the bridge domain id is invalid.')