From 4f8fefa6c46b5bf1ce3307c257418dd4c0066a68 Mon Sep 17 00:00:00 2001 From: yanzhangi <51999930+yanzhangi@users.noreply.github.com> Date: Sat, 12 Oct 2019 03:57:39 +0800 Subject: [PATCH] [Backport/2.9/61136]Update ce_evpn_bgp to fix bugs (#62692) * Update ce_evpn_bgp modified information * Update ce_evpn_bgp to fix bugs (cherry picked from commit 05d984b180cf60a04713a5819ec2d20125baebca) --- .../61136-ce_evpn_bgp-to-fix-bugs.yml | 2 ++ .../network/cloudengine/ce_evpn_bgp.py | 24 ++++++++++++------- 2 files changed, 17 insertions(+), 9 deletions(-) create mode 100644 changelogs/fragments/61136-ce_evpn_bgp-to-fix-bugs.yml diff --git a/changelogs/fragments/61136-ce_evpn_bgp-to-fix-bugs.yml b/changelogs/fragments/61136-ce_evpn_bgp-to-fix-bugs.yml new file mode 100644 index 00000000000..e39952976cf --- /dev/null +++ b/changelogs/fragments/61136-ce_evpn_bgp-to-fix-bugs.yml @@ -0,0 +1,2 @@ +bugfixes: +- ce_evpn_bgp - update to fix some bugs - Modify the configured query statement and replace get_config with exec_command. (https://github.com/ansible/ansible/pull/61136) diff --git a/lib/ansible/modules/network/cloudengine/ce_evpn_bgp.py b/lib/ansible/modules/network/cloudengine/ce_evpn_bgp.py index 51c139afad4..3805375d63f 100644 --- a/lib/ansible/modules/network/cloudengine/ce_evpn_bgp.py +++ b/lib/ansible/modules/network/cloudengine/ce_evpn_bgp.py @@ -136,7 +136,7 @@ end_state: import re from ansible.module_utils.basic import AnsibleModule -from ansible.module_utils.network.cloudengine.ce import get_config, load_config +from ansible.module_utils.network.cloudengine.ce import exec_command, load_config from ansible.module_utils.network.cloudengine.ce import ce_argument_spec @@ -238,18 +238,20 @@ class EvpnBgp(object): def get_evpn_overlay_config(self): """get evpn-overlay enable configuration""" - flags = list() - exp = "| ignore-case include evpn-overlay enable" - flags.append(exp) - return get_config(self.module, flags) + cmd = "display current-configuration | include ^evpn-overlay enable" + rc, out, err = exec_command(self.module, cmd) + if rc != 0: + self.module.fail_json(msg=err) + return out def get_current_config(self): """get current configuration""" - flags = list() - exp = "| ignore-case section include bgp %s" % self.bgp_instance - flags.append(exp) - return get_config(self.module, flags) + cmd = "display current-configuration | section include bgp %s" % self.bgp_instance + rc, out, err = exec_command(self.module, cmd) + if rc != 0: + self.module.fail_json(msg=err) + return out def cli_add_command(self, command, undo=False): """add command to self.update_cmd and self.commands""" @@ -501,6 +503,10 @@ class EvpnBgp(object): if not self.config: return + self.config_list = self.config.split('l2vpn-family evpn') + if len(self.config_list) == 2: + self.l2vpn_evpn_exist = True + if self.bgp_instance: self.end_state["bgp_instance"] = self.bgp_instance