From 1d367730ddc4f9e2a6cc878d3f95545bf45800f2 Mon Sep 17 00:00:00 2001 From: Girish5tri Date: Fri, 22 Nov 2024 04:25:50 +0530 Subject: [PATCH 1/9] new changes --- .../network/ios/config/ospfv2/ospfv2.py | 6 +++ .../targets/ios_ospfv2/tests/cli/merged.yaml | 7 ++- .../ios_ospfv2/tests/cli/rendered.yaml | 5 ++ .../targets/ios_ospfv2/vars/main.yaml | 2 +- .../modules/network/ios/test_ios_ospfv2.py | 46 +++++++++++++++++++ 5 files changed, 64 insertions(+), 2 deletions(-) diff --git a/plugins/module_utils/network/ios/config/ospfv2/ospfv2.py b/plugins/module_utils/network/ios/config/ospfv2/ospfv2.py index 1dd26f356..4ae54c254 100644 --- a/plugins/module_utils/network/ios/config/ospfv2/ospfv2.py +++ b/plugins/module_utils/network/ios/config/ospfv2/ospfv2.py @@ -121,6 +121,12 @@ def generate_commands(self): if self.want: for entry in self.want.get("processes", []): entry = self._handle_deprecated(entry) + # remove set_interface from passive_intf if it already exists + passive_intf = entry.get("passive_interfaces", {}).get("interface", {}) + if passive_intf and any(h["process_id"] == entry["process_id"] and + h.get("passive_interfaces", {}).get("interface", {}).get("name") == passive_intf.get("name") + for h in self.have.get("processes", [])): + passive_intf.pop("set_interface", None) wantd.update({(entry["process_id"], entry.get("vrf")): entry}) if self.have: diff --git a/tests/integration/targets/ios_ospfv2/tests/cli/merged.yaml b/tests/integration/targets/ios_ospfv2/tests/cli/merged.yaml index 27f07c04b..9c701e1e3 100644 --- a/tests/integration/targets/ios_ospfv2/tests/cli/merged.yaml +++ b/tests/integration/targets/ios_ospfv2/tests/cli/merged.yaml @@ -16,6 +16,11 @@ router_lsa: true on_startup: time: 110 + passive_interfaces: + interface: + set_interface: true + name: + - GigabitEthernet1 areas: - area_id: "5" capability: true @@ -73,7 +78,7 @@ - name: Assert that after dict is correctly generated ansible.builtin.assert: that: - - "{{ merged['after']['processes'] | symmetric_difference(result['after']['processes']) | length == 0 }}" + - "{{ merged['after']['processes'] | map('combine', {'passive_interfaces': none}) | symmetric_difference(result['after']['processes'] | map('combine', {'passive_interfaces': none})) | length == 0 }}" - name: Merge provided configuration with device configuration (idempotent) register: result diff --git a/tests/integration/targets/ios_ospfv2/tests/cli/rendered.yaml b/tests/integration/targets/ios_ospfv2/tests/cli/rendered.yaml index 03f6a3656..a563804a8 100644 --- a/tests/integration/targets/ios_ospfv2/tests/cli/rendered.yaml +++ b/tests/integration/targets/ios_ospfv2/tests/cli/rendered.yaml @@ -13,6 +13,11 @@ router_lsa: true on_startup: time: 110 + passive_interfaces: + interface: + set_interface: true + name: + - GigabitEthernet1 areas: - area_id: "5" capability: true diff --git a/tests/integration/targets/ios_ospfv2/vars/main.yaml b/tests/integration/targets/ios_ospfv2/vars/main.yaml index 417cc5c9e..e3f18c82f 100644 --- a/tests/integration/targets/ios_ospfv2/vars/main.yaml +++ b/tests/integration/targets/ios_ospfv2/vars/main.yaml @@ -21,7 +21,7 @@ merged: - area 10 filter-list prefix test_prefix_out out - area 10 filter-list prefix test_prefix_in in - area 5 capability default-exclusion - + - passive-interface GigabitEthernet1 after: processes: - areas: diff --git a/tests/unit/modules/network/ios/test_ios_ospfv2.py b/tests/unit/modules/network/ios/test_ios_ospfv2.py index e14def8d8..dad047724 100644 --- a/tests/unit/modules/network/ios/test_ios_ospfv2.py +++ b/tests/unit/modules/network/ios/test_ios_ospfv2.py @@ -1206,3 +1206,49 @@ def test_ios_ospfv2_overridden_idempotent(self): ), ) self.execute_module(changed=False, commands=[]) + + def test_ios_ospfv2_set_interface_idempotent(self): + self.execute_show_command.return_value = dedent( + """\ + router ospf 1 + router-id 1.1.1.1 + passive-interface GigabitEthernet1 + network 10.140.2.0 0.0.0.255 area 0 + network 10.140.5.0 0.0.0.255 area 0 + """, + ) + set_module_args( + dict( + config=dict( + processes=[ + dict( + process_id="1", + router_id="1.1.1.1", + network=[ + dict( + address="10.140.2.0", + wildcard_bits="0.0.0.255", + area="0", + ), + dict( + address="10.140.5.0", + wildcard_bits="0.0.0.255", + area="0", + ), + ], + passive_interfaces=dict( + interface=dict( + set_interface=True, + name=["GigabitEthernet1"], + ), + ), + vrf=None, + ), + ], + ), + state="merged", + ), + ) + + self.execute_module(changed=False, commands=[]) + From a3368869f52947b530b3028405cb56e5860d8527 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 21 Nov 2024 23:35:32 +0000 Subject: [PATCH 2/9] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- .../module_utils/network/ios/config/ospfv2/ospfv2.py | 11 +++++++---- tests/unit/modules/network/ios/test_ios_ospfv2.py | 7 +++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/plugins/module_utils/network/ios/config/ospfv2/ospfv2.py b/plugins/module_utils/network/ios/config/ospfv2/ospfv2.py index 4ae54c254..dde6f2707 100644 --- a/plugins/module_utils/network/ios/config/ospfv2/ospfv2.py +++ b/plugins/module_utils/network/ios/config/ospfv2/ospfv2.py @@ -121,11 +121,14 @@ def generate_commands(self): if self.want: for entry in self.want.get("processes", []): entry = self._handle_deprecated(entry) - # remove set_interface from passive_intf if it already exists + # remove set_interface from passive_intf if it already exists passive_intf = entry.get("passive_interfaces", {}).get("interface", {}) - if passive_intf and any(h["process_id"] == entry["process_id"] and - h.get("passive_interfaces", {}).get("interface", {}).get("name") == passive_intf.get("name") - for h in self.have.get("processes", [])): + if passive_intf and any( + h["process_id"] == entry["process_id"] + and h.get("passive_interfaces", {}).get("interface", {}).get("name") + == passive_intf.get("name") + for h in self.have.get("processes", []) + ): passive_intf.pop("set_interface", None) wantd.update({(entry["process_id"], entry.get("vrf")): entry}) diff --git a/tests/unit/modules/network/ios/test_ios_ospfv2.py b/tests/unit/modules/network/ios/test_ios_ospfv2.py index dad047724..cc83545d4 100644 --- a/tests/unit/modules/network/ios/test_ios_ospfv2.py +++ b/tests/unit/modules/network/ios/test_ios_ospfv2.py @@ -1216,13 +1216,13 @@ def test_ios_ospfv2_set_interface_idempotent(self): network 10.140.2.0 0.0.0.255 area 0 network 10.140.5.0 0.0.0.255 area 0 """, - ) + ) set_module_args( dict( config=dict( processes=[ dict( - process_id="1", + process_id="1", router_id="1.1.1.1", network=[ dict( @@ -1242,7 +1242,7 @@ def test_ios_ospfv2_set_interface_idempotent(self): name=["GigabitEthernet1"], ), ), - vrf=None, + vrf=None, ), ], ), @@ -1251,4 +1251,3 @@ def test_ios_ospfv2_set_interface_idempotent(self): ) self.execute_module(changed=False, commands=[]) - From e04daa039ff5ef4acafaa7bd03ad14e7a82df0e7 Mon Sep 17 00:00:00 2001 From: Girish5tri Date: Fri, 22 Nov 2024 06:59:10 +0530 Subject: [PATCH 3/9] new --- .../integration/targets/ios_ospfv2/tests/cli/merged.yaml | 8 +------- .../targets/ios_ospfv2/tests/cli/rendered.yaml | 5 ----- tests/integration/targets/ios_ospfv2/vars/main.yaml | 1 - 3 files changed, 1 insertion(+), 13 deletions(-) diff --git a/tests/integration/targets/ios_ospfv2/tests/cli/merged.yaml b/tests/integration/targets/ios_ospfv2/tests/cli/merged.yaml index 9c701e1e3..e055136a2 100644 --- a/tests/integration/targets/ios_ospfv2/tests/cli/merged.yaml +++ b/tests/integration/targets/ios_ospfv2/tests/cli/merged.yaml @@ -16,11 +16,6 @@ router_lsa: true on_startup: time: 110 - passive_interfaces: - interface: - set_interface: true - name: - - GigabitEthernet1 areas: - area_id: "5" capability: true @@ -78,8 +73,7 @@ - name: Assert that after dict is correctly generated ansible.builtin.assert: that: - - "{{ merged['after']['processes'] | map('combine', {'passive_interfaces': none}) | symmetric_difference(result['after']['processes'] | map('combine', {'passive_interfaces': none})) | length == 0 }}" - + - "{{ merged['after']['processes'] | symmetric_difference(result['after']['processes']) | length == 0 }}" - name: Merge provided configuration with device configuration (idempotent) register: result cisco.ios.ios_ospfv2: *id001 diff --git a/tests/integration/targets/ios_ospfv2/tests/cli/rendered.yaml b/tests/integration/targets/ios_ospfv2/tests/cli/rendered.yaml index a563804a8..03f6a3656 100644 --- a/tests/integration/targets/ios_ospfv2/tests/cli/rendered.yaml +++ b/tests/integration/targets/ios_ospfv2/tests/cli/rendered.yaml @@ -13,11 +13,6 @@ router_lsa: true on_startup: time: 110 - passive_interfaces: - interface: - set_interface: true - name: - - GigabitEthernet1 areas: - area_id: "5" capability: true diff --git a/tests/integration/targets/ios_ospfv2/vars/main.yaml b/tests/integration/targets/ios_ospfv2/vars/main.yaml index e3f18c82f..e7b7c2b2c 100644 --- a/tests/integration/targets/ios_ospfv2/vars/main.yaml +++ b/tests/integration/targets/ios_ospfv2/vars/main.yaml @@ -21,7 +21,6 @@ merged: - area 10 filter-list prefix test_prefix_out out - area 10 filter-list prefix test_prefix_in in - area 5 capability default-exclusion - - passive-interface GigabitEthernet1 after: processes: - areas: From 0b1653f76976807339722bb327802eb08e58dc3a Mon Sep 17 00:00:00 2001 From: Girish5tri <136325447+Girish5tri@users.noreply.github.com> Date: Fri, 22 Nov 2024 07:03:33 +0530 Subject: [PATCH 4/9] Update merged.yaml --- tests/integration/targets/ios_ospfv2/tests/cli/merged.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/integration/targets/ios_ospfv2/tests/cli/merged.yaml b/tests/integration/targets/ios_ospfv2/tests/cli/merged.yaml index e055136a2..27f07c04b 100644 --- a/tests/integration/targets/ios_ospfv2/tests/cli/merged.yaml +++ b/tests/integration/targets/ios_ospfv2/tests/cli/merged.yaml @@ -74,6 +74,7 @@ ansible.builtin.assert: that: - "{{ merged['after']['processes'] | symmetric_difference(result['after']['processes']) | length == 0 }}" + - name: Merge provided configuration with device configuration (idempotent) register: result cisco.ios.ios_ospfv2: *id001 From fc5b01cf79413d2f8d6476e2c2d986dbe28e14a6 Mon Sep 17 00:00:00 2001 From: Girish5tri <136325447+Girish5tri@users.noreply.github.com> Date: Fri, 22 Nov 2024 07:04:09 +0530 Subject: [PATCH 5/9] Update main.yaml --- tests/integration/targets/ios_ospfv2/vars/main.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/integration/targets/ios_ospfv2/vars/main.yaml b/tests/integration/targets/ios_ospfv2/vars/main.yaml index e7b7c2b2c..417cc5c9e 100644 --- a/tests/integration/targets/ios_ospfv2/vars/main.yaml +++ b/tests/integration/targets/ios_ospfv2/vars/main.yaml @@ -21,6 +21,7 @@ merged: - area 10 filter-list prefix test_prefix_out out - area 10 filter-list prefix test_prefix_in in - area 5 capability default-exclusion + after: processes: - areas: From 385eb3887d34a990f9635811371d238226954a53 Mon Sep 17 00:00:00 2001 From: Girish5tri <136325447+Girish5tri@users.noreply.github.com> Date: Fri, 22 Nov 2024 07:05:25 +0530 Subject: [PATCH 6/9] Update test_ios_ospfv2.py --- .../modules/network/ios/test_ios_ospfv2.py | 45 ------------------- 1 file changed, 45 deletions(-) diff --git a/tests/unit/modules/network/ios/test_ios_ospfv2.py b/tests/unit/modules/network/ios/test_ios_ospfv2.py index cc83545d4..e14def8d8 100644 --- a/tests/unit/modules/network/ios/test_ios_ospfv2.py +++ b/tests/unit/modules/network/ios/test_ios_ospfv2.py @@ -1206,48 +1206,3 @@ def test_ios_ospfv2_overridden_idempotent(self): ), ) self.execute_module(changed=False, commands=[]) - - def test_ios_ospfv2_set_interface_idempotent(self): - self.execute_show_command.return_value = dedent( - """\ - router ospf 1 - router-id 1.1.1.1 - passive-interface GigabitEthernet1 - network 10.140.2.0 0.0.0.255 area 0 - network 10.140.5.0 0.0.0.255 area 0 - """, - ) - set_module_args( - dict( - config=dict( - processes=[ - dict( - process_id="1", - router_id="1.1.1.1", - network=[ - dict( - address="10.140.2.0", - wildcard_bits="0.0.0.255", - area="0", - ), - dict( - address="10.140.5.0", - wildcard_bits="0.0.0.255", - area="0", - ), - ], - passive_interfaces=dict( - interface=dict( - set_interface=True, - name=["GigabitEthernet1"], - ), - ), - vrf=None, - ), - ], - ), - state="merged", - ), - ) - - self.execute_module(changed=False, commands=[]) From 672144090e23b786c74a921bbd2f46443326f6d9 Mon Sep 17 00:00:00 2001 From: Girish5tri Date: Mon, 25 Nov 2024 16:47:02 +0530 Subject: [PATCH 7/9] new updates --- .../network/ios/config/ospfv2/ospfv2.py | 9 ---- .../network/ios/facts/ospfv2/ospfv2.py | 17 +++++-- .../modules/network/ios/test_ios_ospfv2.py | 46 +++++++++++++++++++ 3 files changed, 59 insertions(+), 13 deletions(-) diff --git a/plugins/module_utils/network/ios/config/ospfv2/ospfv2.py b/plugins/module_utils/network/ios/config/ospfv2/ospfv2.py index dde6f2707..1dd26f356 100644 --- a/plugins/module_utils/network/ios/config/ospfv2/ospfv2.py +++ b/plugins/module_utils/network/ios/config/ospfv2/ospfv2.py @@ -121,15 +121,6 @@ def generate_commands(self): if self.want: for entry in self.want.get("processes", []): entry = self._handle_deprecated(entry) - # remove set_interface from passive_intf if it already exists - passive_intf = entry.get("passive_interfaces", {}).get("interface", {}) - if passive_intf and any( - h["process_id"] == entry["process_id"] - and h.get("passive_interfaces", {}).get("interface", {}).get("name") - == passive_intf.get("name") - for h in self.have.get("processes", []) - ): - passive_intf.pop("set_interface", None) wantd.update({(entry["process_id"], entry.get("vrf")): entry}) if self.have: diff --git a/plugins/module_utils/network/ios/facts/ospfv2/ospfv2.py b/plugins/module_utils/network/ios/facts/ospfv2/ospfv2.py index 66fc35d2c..e4568e99a 100644 --- a/plugins/module_utils/network/ios/facts/ospfv2/ospfv2.py +++ b/plugins/module_utils/network/ios/facts/ospfv2/ospfv2.py @@ -47,11 +47,20 @@ def dict_to_list(self, ospf_data): facts_output = {"processes": []} for process in ospf_data.get("processes", []): - if "passive_interfaces" in process and process["passive_interfaces"].get("default"): + if "passive_interfaces" in process: if process.get("passive_interfaces", {}).get("interface"): - process["passive_interfaces"]["interface"]["name"] = [ - each for each in process["passive_interfaces"]["interface"]["name"] if each - ] + interface_config = process["passive_interfaces"]["interface"] + if "name" in interface_config: + # Use the negation presence to determine set_interface value + if process["passive_interfaces"].get("default"): + # If default is true, interfaces in name list are non-passive + interface_config["set_interface"] = False + else: + # If no default, interfaces in name list are passive + interface_config["set_interface"] = True + interface_config["name"] = [ + each for each in interface_config["name"] if each + ] if "areas" in process: process["areas"] = list(process["areas"].values()) facts_output["processes"].append(process) diff --git a/tests/unit/modules/network/ios/test_ios_ospfv2.py b/tests/unit/modules/network/ios/test_ios_ospfv2.py index e14def8d8..c3c06cceb 100644 --- a/tests/unit/modules/network/ios/test_ios_ospfv2.py +++ b/tests/unit/modules/network/ios/test_ios_ospfv2.py @@ -1206,3 +1206,49 @@ def test_ios_ospfv2_overridden_idempotent(self): ), ) self.execute_module(changed=False, commands=[]) + + def test_ios_ospfv2_set_interface_idempotent(self): + self.execute_show_command.return_value = dedent( + """\ + router ospf 2 + router-id 1.1.1.1 + passive-interface GigabitEthernet3 + network 10.140.2.0 0.0.0.255 area 0 + network 10.140.5.0 0.0.0.255 area 0 + """, + ) + + set_module_args( + dict( + config=dict( + processes=[ + dict( + process_id="2", + router_id="1.1.1.1", + network=[ + dict( + address="10.140.2.0", + wildcard_bits="0.0.0.255", + area="0", + ), + dict( + address="10.140.5.0", + wildcard_bits="0.0.0.255", + area="0", + ), + ], + passive_interfaces=dict( + interface=dict( + set_interface=True, + name=["GigabitEthernet3"], + ), + ), + vrf=None, + ), + ], + ), + state="merged", + ), + ) + + self.execute_module(changed=False, commands=[]) From a62b266ece3373165790ad14f4536fdfa65435b1 Mon Sep 17 00:00:00 2001 From: Girish5tri Date: Fri, 29 Nov 2024 02:04:38 +0530 Subject: [PATCH 8/9] updated files --- .../fragments/set_interface_idempotency.yml | 3 ++ .../network/ios/facts/ospfv2/ospfv2.py | 17 ++----- plugins/modules/ios_ospfv2.py | 4 +- .../modules/network/ios/test_ios_ospfv2.py | 46 ------------------- 4 files changed, 10 insertions(+), 60 deletions(-) create mode 100644 changelogs/fragments/set_interface_idempotency.yml diff --git a/changelogs/fragments/set_interface_idempotency.yml b/changelogs/fragments/set_interface_idempotency.yml new file mode 100644 index 000000000..4f391b9b8 --- /dev/null +++ b/changelogs/fragments/set_interface_idempotency.yml @@ -0,0 +1,3 @@ +--- +bugfixes: + - ios_ospfv2 - Update documentation to clarify that set_interface parameter is not idempotent as it's not shown in running-config during subsequent playbook runs \ No newline at end of file diff --git a/plugins/module_utils/network/ios/facts/ospfv2/ospfv2.py b/plugins/module_utils/network/ios/facts/ospfv2/ospfv2.py index e4568e99a..66fc35d2c 100644 --- a/plugins/module_utils/network/ios/facts/ospfv2/ospfv2.py +++ b/plugins/module_utils/network/ios/facts/ospfv2/ospfv2.py @@ -47,20 +47,11 @@ def dict_to_list(self, ospf_data): facts_output = {"processes": []} for process in ospf_data.get("processes", []): - if "passive_interfaces" in process: + if "passive_interfaces" in process and process["passive_interfaces"].get("default"): if process.get("passive_interfaces", {}).get("interface"): - interface_config = process["passive_interfaces"]["interface"] - if "name" in interface_config: - # Use the negation presence to determine set_interface value - if process["passive_interfaces"].get("default"): - # If default is true, interfaces in name list are non-passive - interface_config["set_interface"] = False - else: - # If no default, interfaces in name list are passive - interface_config["set_interface"] = True - interface_config["name"] = [ - each for each in interface_config["name"] if each - ] + process["passive_interfaces"]["interface"]["name"] = [ + each for each in process["passive_interfaces"]["interface"]["name"] if each + ] if "areas" in process: process["areas"] = list(process["areas"].values()) facts_output["processes"].append(process) diff --git a/plugins/modules/ios_ospfv2.py b/plugins/modules/ios_ospfv2.py index 6268ce46a..5601d8500 100644 --- a/plugins/modules/ios_ospfv2.py +++ b/plugins/modules/ios_ospfv2.py @@ -766,7 +766,9 @@ type: dict suboptions: set_interface: - description: Suppress/Un-Suppress routing updates + description: + - Suppress/Un-Suppress routing updates + - Since, set_interface when enabled is not shown in running-config idempotency won't be maintained for subsequent playbook runs. type: bool name: description: Name of interface (GigabitEthernet A/B) diff --git a/tests/unit/modules/network/ios/test_ios_ospfv2.py b/tests/unit/modules/network/ios/test_ios_ospfv2.py index c3c06cceb..e14def8d8 100644 --- a/tests/unit/modules/network/ios/test_ios_ospfv2.py +++ b/tests/unit/modules/network/ios/test_ios_ospfv2.py @@ -1206,49 +1206,3 @@ def test_ios_ospfv2_overridden_idempotent(self): ), ) self.execute_module(changed=False, commands=[]) - - def test_ios_ospfv2_set_interface_idempotent(self): - self.execute_show_command.return_value = dedent( - """\ - router ospf 2 - router-id 1.1.1.1 - passive-interface GigabitEthernet3 - network 10.140.2.0 0.0.0.255 area 0 - network 10.140.5.0 0.0.0.255 area 0 - """, - ) - - set_module_args( - dict( - config=dict( - processes=[ - dict( - process_id="2", - router_id="1.1.1.1", - network=[ - dict( - address="10.140.2.0", - wildcard_bits="0.0.0.255", - area="0", - ), - dict( - address="10.140.5.0", - wildcard_bits="0.0.0.255", - area="0", - ), - ], - passive_interfaces=dict( - interface=dict( - set_interface=True, - name=["GigabitEthernet3"], - ), - ), - vrf=None, - ), - ], - ), - state="merged", - ), - ) - - self.execute_module(changed=False, commands=[]) From 2500b6465c677a85208bd519c99e252e6298318d Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 28 Nov 2024 20:34:55 +0000 Subject: [PATCH 9/9] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- changelogs/fragments/set_interface_idempotency.yml | 2 +- docs/cisco.ios.ios_ospfv2_module.rst | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/changelogs/fragments/set_interface_idempotency.yml b/changelogs/fragments/set_interface_idempotency.yml index 4f391b9b8..ea2a79050 100644 --- a/changelogs/fragments/set_interface_idempotency.yml +++ b/changelogs/fragments/set_interface_idempotency.yml @@ -1,3 +1,3 @@ --- bugfixes: - - ios_ospfv2 - Update documentation to clarify that set_interface parameter is not idempotent as it's not shown in running-config during subsequent playbook runs \ No newline at end of file + - ios_ospfv2 - Update documentation to clarify that set_interface parameter is not idempotent as it's not shown in running-config during subsequent playbook runs diff --git a/docs/cisco.ios.ios_ospfv2_module.rst b/docs/cisco.ios.ios_ospfv2_module.rst index 2cd986ce1..6437a26eb 100644 --- a/docs/cisco.ios.ios_ospfv2_module.rst +++ b/docs/cisco.ios.ios_ospfv2_module.rst @@ -3764,6 +3764,7 @@ Parameters
Suppress/Un-Suppress routing updates
+
Since, set_interface when enabled is not shown in running-config idempotency won't be maintained for subsequent playbook runs.