From 3acd8f6f7f61b72a42a017060c3a718bbbeaf854 Mon Sep 17 00:00:00 2001 From: GomathiselviS Date: Mon, 24 Feb 2020 07:57:11 -0500 Subject: [PATCH] Fix to - nxos_lag_interfaces not idempotent (#67359) * Added fix for bug # 54400 * Adding files for RM static_routes * Added Integration tests * Revert "Added fix for bug # 54400" This reverts commit bf42db42697d64abbfea4e546f890637d4a5175b. * Revert "Adding files for RM static_routes" This reverts commit dafdd92d4327cfc6dfcebb1e977454b2f77a1daa. * Revert "Added Integration tests" This reverts commit 129dc87682bba9292105fc3b642fdf3930ce79fd. * Adding files for RM static_routes * Added Integration tests * Corrected lint errors * Added fix for bug # 54400 * Revert "Added fix for bug # 54400" This reverts commit bf42db42697d64abbfea4e546f890637d4a5175b. * Revert "Adding files for RM static_routes" This reverts commit dafdd92d4327cfc6dfcebb1e977454b2f77a1daa. * Revert "Added Integration tests" This reverts commit 129dc87682bba9292105fc3b642fdf3930ce79fd. * Fix to #67169 * corrected rebase spillover * indentation errors fixed * modified integration testcase --- .../nxos/config/lag_interfaces/lag_interfaces.py | 10 ++++++++-- .../targets/nxos_lag_interfaces/tests/cli/merged.yaml | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/ansible/module_utils/network/nxos/config/lag_interfaces/lag_interfaces.py b/lib/ansible/module_utils/network/nxos/config/lag_interfaces/lag_interfaces.py index da6bfd0d410..ed000f5467c 100644 --- a/lib/ansible/module_utils/network/nxos/config/lag_interfaces/lag_interfaces.py +++ b/lib/ansible/module_utils/network/nxos/config/lag_interfaces/lag_interfaces.py @@ -149,8 +149,10 @@ class Lag_interfaces(ConfigBase): commands = [] for h in have: obj_in_want = search_obj_in_list(h['name'], want, 'name') - if h == obj_in_want: - continue + if obj_in_want: + diff = self.diff_list_of_dicts(h['members'], obj_in_want['members']) + if not diff: + continue commands.extend(self.del_all_commands(h)) for w in want: commands.extend(self.set_commands(w, have)) @@ -196,6 +198,10 @@ class Lag_interfaces(ConfigBase): h_item = search_obj_in_list(w_item['member'], have, key='member') or {} delta = dict_diff(h_item, w_item) if delta: + if h_item: + if 'mode' in delta.keys() and delta['mode'] == 'on' and 'mode' not in h_item.keys(): + # mode = on will not be displayed in running-config + continue if 'member' not in delta.keys(): delta['member'] = w_item['member'] diff.append(delta) diff --git a/test/integration/targets/nxos_lag_interfaces/tests/cli/merged.yaml b/test/integration/targets/nxos_lag_interfaces/tests/cli/merged.yaml index f52a7a4fc2d..49af1046744 100644 --- a/test/integration/targets/nxos_lag_interfaces/tests/cli/merged.yaml +++ b/test/integration/targets/nxos_lag_interfaces/tests/cli/merged.yaml @@ -27,6 +27,7 @@ members: - member: "{{ test_int1 }}" - member: "{{ test_int2 }}" + mode: yes state: merged register: result