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.')