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