From 3c21ac961b10f4ce802bfad3115055456c4f3a43 Mon Sep 17 00:00:00 2001 From: "Ted W." Date: Mon, 23 Mar 2026 14:58:47 -0400 Subject: [PATCH] nmcli: fix setting_types() to properly handle routing_rules as a list type (#11635) * Fix setting_types() to properly handle routing_rules as a list type * Add changelog fragment for ipv6.routing-rules bugfix * Update changelogs/fragments/11630-nmcli-ipv6-routing-rules.yml Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com> * Add PR URL to changelog fragment --------- Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com> --- changelogs/fragments/11630-nmcli-ipv6-routing-rules.yml | 2 ++ plugins/modules/nmcli.py | 1 + tests/unit/plugins/modules/test_nmcli.py | 2 ++ 3 files changed, 5 insertions(+) create mode 100644 changelogs/fragments/11630-nmcli-ipv6-routing-rules.yml diff --git a/changelogs/fragments/11630-nmcli-ipv6-routing-rules.yml b/changelogs/fragments/11630-nmcli-ipv6-routing-rules.yml new file mode 100644 index 0000000000..289ec2c32f --- /dev/null +++ b/changelogs/fragments/11630-nmcli-ipv6-routing-rules.yml @@ -0,0 +1,2 @@ +bugfixes: + - nmcli - add missing ``ipv6.routing-rules`` to ``settings_type()`` list type, preventing ``routing_rules6`` list from being corrupted (https://github.com/ansible-collections/community.general/issues/11630, https://github.com/ansible-collections/community.general/pull/11635). diff --git a/plugins/modules/nmcli.py b/plugins/modules/nmcli.py index 0dfc796681..de98a9013e 100644 --- a/plugins/modules/nmcli.py +++ b/plugins/modules/nmcli.py @@ -2372,6 +2372,7 @@ class Nmcli: "ipv6.dns-search", "ipv6.dns-options", "ipv6.routes", + "ipv6.routing-rules", "802-11-wireless-security.group", "802-11-wireless-security.leap-password-flags", "802-11-wireless-security.pairwise", diff --git a/tests/unit/plugins/modules/test_nmcli.py b/tests/unit/plugins/modules/test_nmcli.py index a57a9ef07c..f32585d6c0 100644 --- a/tests/unit/plugins/modules/test_nmcli.py +++ b/tests/unit/plugins/modules/test_nmcli.py @@ -2260,6 +2260,8 @@ def test_generic_connection_modify_routing_rules6(mocked_generic_connection_crea args, kwargs = arg_list[0] assert "ipv6.routing-rules" in args[0] + idx = args[0].index("ipv6.routing-rules") + assert args[0][idx + 1] == "priority 5 from fd00::/24 table 5000,priority 10 from fd01::/24 table 5001" out, err = capfd.readouterr() results = json.loads(out)