From b53ed66d7894ad29d7c8b4bb453e4cf74d696030 Mon Sep 17 00:00:00 2001 From: YuandongXu Date: Tue, 9 Jul 2019 08:58:20 +0800 Subject: [PATCH] backport/2.8/57916 ce_vrrp: update ce_vrrp to fix a bug (#57916) (#58554) * update vrrp (#57916) (cherry picked from commit 442d275ae35f0fe6aac1dc212228655a83989fd0) * add a changelog fragment to PR 58554. * Update 58554-update-ce_vrrp-to-fix-a-bug.yml --- .../58554-update-ce_vrrp-to-fix-a-bug.yml | 4 ++++ .../modules/network/cloudengine/ce_vrrp.py | 15 +++++++-------- 2 files changed, 11 insertions(+), 8 deletions(-) create mode 100644 changelogs/fragments/58554-update-ce_vrrp-to-fix-a-bug.yml diff --git a/changelogs/fragments/58554-update-ce_vrrp-to-fix-a-bug.yml b/changelogs/fragments/58554-update-ce_vrrp-to-fix-a-bug.yml new file mode 100644 index 00000000000..b7837e4de73 --- /dev/null +++ b/changelogs/fragments/58554-update-ce_vrrp-to-fix-a-bug.yml @@ -0,0 +1,4 @@ +bugfixes: + - ce_vrrp - tag 'data' is the root node of data xml tree,remove 'data' tag to find all. + line 700,747 "vrrp_group_info["adminIgnoreIfDown"]", value is string and lower case. + line 1177,1240. Compare wrong! They should be same key of value to be compared. diff --git a/lib/ansible/modules/network/cloudengine/ce_vrrp.py b/lib/ansible/modules/network/cloudengine/ce_vrrp.py index 928902465b8..25787e5b167 100644 --- a/lib/ansible/modules/network/cloudengine/ce_vrrp.py +++ b/lib/ansible/modules/network/cloudengine/ce_vrrp.py @@ -482,7 +482,7 @@ class Vrrp(object): virtual_ip_info["vrrpVirtualIpInfos"] = list() root = ElementTree.fromstring(xml_str) vrrp_virtual_ip_infos = root.findall( - "data/vrrp/vrrpGroups/vrrpGroup/virtualIps/virtualIp") + "vrrp/vrrpGroups/vrrpGroup/virtualIps/virtualIp") if vrrp_virtual_ip_infos: for vrrp_virtual_ip_info in vrrp_virtual_ip_infos: virtual_ip_dict = dict() @@ -508,7 +508,7 @@ class Vrrp(object): root = ElementTree.fromstring(xml_str) global_info = root.findall( - "data/vrrp/vrrpGlobalCfg") + "vrrp/vrrpGlobalCfg") if global_info: for tmp in global_info: @@ -532,7 +532,7 @@ class Vrrp(object): root = ElementTree.fromstring(xml_str) global_info = root.findall( - "data/vrrp/vrrpGroups/vrrpGroup") + "vrrp/vrrpGroups/vrrpGroup") if global_info: for tmp in global_info: @@ -693,12 +693,11 @@ class Vrrp(object): def is_vrrp_group_info_change(self): """whether vrrp group attribute info change""" - if self.vrrp_type: if self.vrrp_group_info["vrrpType"] != self.vrrp_type: return True if self.admin_ignore_if_down: - if self.vrrp_group_info["adminIgnoreIfDown"] != self.admin_ignore_if_down: + if self.vrrp_group_info["adminIgnoreIfDown"] != str(self.admin_ignore_if_down).lower(): return True if self.admin_vrid: if self.vrrp_group_info["adminVrrpId"] != self.admin_vrid: @@ -745,7 +744,7 @@ class Vrrp(object): if self.vrrp_group_info["vrrpType"] != self.vrrp_type: return False if self.admin_ignore_if_down: - if self.vrrp_group_info["adminIgnoreIfDown"] != self.admin_ignore_if_down: + if self.vrrp_group_info["adminIgnoreIfDown"] != str(self.admin_ignore_if_down).lower(): return False if self.admin_vrid: if self.vrrp_group_info["adminVrrpId"] != self.admin_vrid: @@ -1174,7 +1173,7 @@ class Vrrp(object): self.existing["vrrp_type"] = self.vrrp_group_info["vrrpType"] if self.vrrp_type == "admin": self.existing["admin_ignore_if_down"] = self.vrrp_group_info[ - "authenticationMode"] + "adminIgnoreIfDown"] if self.admin_vrid and self.admin_interface: self.existing["admin_vrid"] = self.vrrp_group_info[ "adminVrrpId"] @@ -1237,7 +1236,7 @@ class Vrrp(object): self.end_state["vrrp_type"] = self.vrrp_group_info["vrrpType"] if self.vrrp_type == "admin": self.end_state["admin_ignore_if_down"] = self.vrrp_group_info[ - "authenticationMode"] + "adminIgnoreIfDown"] if self.admin_vrid and self.admin_interface: self.existing["admin_vrid"] = self.vrrp_group_info[ "adminVrrpId"]