summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoromnom62 <75066712+omnom62@users.noreply.github.com>2026-04-08 05:18:50 +1000
committerGitHub <noreply@github.com>2026-04-08 05:18:50 +1000
commitcf76cff9a8f56dad3d65aab8e34dda8b4d94d95a (patch)
tree0bbf1e38e029e2cbd141addedd2a01f8c05dfaf0
parent6b8c182fbfac73128588b8a0e50816cc8b099616 (diff)
parent16e6f21de8e90833e2284aeab6cd39d2e1482155 (diff)
downloadvyos.vyos-cf76cff9a8f56dad3d65aab8e34dda8b4d94d95a.tar.gz
vyos.vyos-cf76cff9a8f56dad3d65aab8e34dda8b4d94d95a.zip
Merge branch 'main' into dependabot/github_actions/ansible/team-devtools/dot-github/workflows/ah_token_refresh.yml-26.2.0
-rw-r--r--changelogs/fragments/T8205_vyos_user_aggregate_fix.yml3
-rw-r--r--plugins/modules/vyos_user.py2
-rw-r--r--tests/unit/modules/network/vyos/test_vyos_user.py40
3 files changed, 45 insertions, 0 deletions
diff --git a/changelogs/fragments/T8205_vyos_user_aggregate_fix.yml b/changelogs/fragments/T8205_vyos_user_aggregate_fix.yml
new file mode 100644
index 00000000..b9f5dead
--- /dev/null
+++ b/changelogs/fragments/T8205_vyos_user_aggregate_fix.yml
@@ -0,0 +1,3 @@
+---
+bugfixes:
+ - plugins/modules/vyos_user.py - Fix aggregate option when extra user properties are defined
diff --git a/plugins/modules/vyos_user.py b/plugins/modules/vyos_user.py
index 7aaa45ae..d2f23509 100644
--- a/plugins/modules/vyos_user.py
+++ b/plugins/modules/vyos_user.py
@@ -363,6 +363,8 @@ def get_param_value(key, item, module):
# if key doesn't exist in the item, get it from module.params
if not item.get(key):
value = module.params[key]
+ else:
+ value = item.get(key)
# validate the param value (if validator func exists)
validator = globals().get("validate_%s" % key)
diff --git a/tests/unit/modules/network/vyos/test_vyos_user.py b/tests/unit/modules/network/vyos/test_vyos_user.py
index e8c50783..d1e7f162 100644
--- a/tests/unit/modules/network/vyos/test_vyos_user.py
+++ b/tests/unit/modules/network/vyos/test_vyos_user.py
@@ -237,3 +237,43 @@ class TestVyosUserModule(TestVyosModule):
),
)
result = self.execute_module(changed=False)
+
+ def test_vyos_user_aggregate_with_public_keys(self):
+ set_module_args(
+ dict(
+ aggregate=[
+ dict(
+ name="user1",
+ public_keys=[
+ dict(
+ name="user1@host1",
+ key="AAAAC3NzaC1lZDI1NTE5AAAAIFIR0jrMvBdmvTJNY5EDhOD+eixvbOinhY1eBU2u",
+ type="ssh-ed25519",
+ ),
+ ],
+ ),
+ dict(
+ name="user2",
+ public_keys=[
+ dict(
+ name="user2@host2",
+ key="AAAAC3NzaC1lZDI1NTE5AAAAIFIR0jrMvBdmvTJNY5EDhOD+eixvbOinhY1eBU2u",
+ type="ssh-ed25519",
+ ),
+ ],
+ ),
+ ],
+ ),
+ )
+ result = self.execute_module(changed=True)
+ self.assertEqual(
+ sorted(result["commands"]),
+ sorted(
+ [
+ "set system login user user1 authentication public-keys user1@host1 key 'AAAAC3NzaC1lZDI1NTE5AAAAIFIR0jrMvBdmvTJNY5EDhOD+eixvbOinhY1eBU2u'",
+ "set system login user user1 authentication public-keys user1@host1 type 'ssh-ed25519'",
+ "set system login user user2 authentication public-keys user2@host2 key 'AAAAC3NzaC1lZDI1NTE5AAAAIFIR0jrMvBdmvTJNY5EDhOD+eixvbOinhY1eBU2u'",
+ "set system login user user2 authentication public-keys user2@host2 type 'ssh-ed25519'",
+ ],
+ ),
+ )