Skip to content

community.general.pritunl_user empty user_mac_address bug #10954

@david-m-jenkins

Description

@david-m-jenkins

Summary

On version v1.32.3805.95 of Pritunl and version 11.4.0 of community.general, when attempting to modify user_groups of a pritunl user, will result in a 'TypeError: 'NoneType' object is not iterable' error for the module.

This occurs when no 'Allowed MAC Addresses' exists for the user on the server. If a dummy mac address is manually entered, the module will complete successfully.

Issue Type

Bug Report

Component Name

pritunl_user

Ansible Version

$ ansible --version
ansible [core 2.17.14]
  config file = /workspaces/ansible/ansible.cfg
  configured module search path = ['/workspaces/ansible/library', '/home/vscode/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules', '/home/vscode/.ansible/collections/ansible_collections/freeipa/ansible_freeipa/plugins/modules']
  ansible python module location = /home/vscode/.local/lib/python3.11/site-packages/ansible
  ansible collection location = /home/vscode/.ansible/collections:/usr/share/ansible/collections
  executable location = /home/vscode/.local/bin/ansible
  python version = 3.11.14 (main, Oct 10 2025, 08:54:03) [GCC 11.4.0] (/usr/bin/python3.11)
  jinja version = 3.1.6
  libyaml = True

Community.general Version

$ ansible-galaxy collection list community.general

# /home/vscode/.ansible/collections/ansible_collections
Collection        Version
----------------- -------
community.general 11.4.0

Configuration

$ ansible-config dump --only-changed
ANSIBLE_PIPELINING(/workspaces/ansible/ansible.cfg) = True
CONFIG_FILE() = /workspaces/ansible/ansible.cfg
DEFAULT_MODULE_PATH(/workspaces/ansible/ansible.cfg) = ['/workspaces/ansible/library', '/home/vscode/.ansible/plugins/modules', '/>
DEFAULT_MODULE_UTILS_PATH(/workspaces/ansible/ansible.cfg) = ['/home/vscode/.ansible/plugins/module_utils', '/usr/share/ansible/pl>
DEFAULT_ROLES_PATH(/workspaces/ansible/ansible.cfg) = ['/workspaces/ansible/roles', '/workspaces/roles', '/home/vscode/.ansible/co>
HOST_KEY_CHECKING(/workspaces/ansible/ansible.cfg) = False

OS / Environment

Ubuntu 22.04(jammy) devcontainer image

Steps to Reproduce

    - name: Ensure Pritunl user state
      community.general.pritunl_user:
        organization: "{{ organization }}"
        pritunl_api_secret: "{{ api_secret }}"
        pritunl_api_token: "{{ api_token }}"
        pritunl_url: "{{ url }}"
        user_groups:
          - group1
          - group2
        user_name: mytargetuser

Expected Results

Successful task completion (change)

Actual Results

TASK [Ensure Pritunl user state] **************************************************************************************************
task path: /workspaces/ansible/playbooks/ad_hoc/modify_pritunl_users.yml:49
Using module file /home/vscode/.ansible/collections/ansible_collections/community/general/plugins/modules/pritunl_user.py
Pipelining is enabled.
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: vscode
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python3.11 && sleep 0'
The full traceback is:
Traceback (most recent call last):
  File "<stdin>", line 107, in <module>
  File "<stdin>", line 99, in _ansiballz_main
  File "<stdin>", line 47, in invoke_module
  File "<frozen runpy>", line 226, in run_module
  File "<frozen runpy>", line 98, in _run_module_code
  File "<frozen runpy>", line 88, in _run_code
  File "/tmp/ansible_community.general.pritunl_user_payload_gapu75zk/ansible_community.general.pritunl_user_payload.zip/ansible_collections/community/general/plugins/modules/pritunl_user.py", line 348, in <module>
  File "/tmp/ansible_community.general.pritunl_user_payload_gapu75zk/ansible_community.general.pritunl_user_payload.zip/ansible_collections/community/general/plugins/modules/pritunl_user.py", line 340, in main
  File "/tmp/ansible_community.general.pritunl_user_payload_gapu75zk/ansible_community.general.pritunl_user_payload.zip/ansible_collections/community/general/plugins/modules/pritunl_user.py", line 217, in add_or_update_pritunl_user
TypeError: 'NoneType' object is not iterable
fatal: [localhost]: FAILED! => {
    "changed": false,
    "module_stderr": "Traceback (most recent call last):\n  File \"<stdin>\", line 107, in <module>\n  File \"<stdin>\", line 99, in _ansiballz_main\n  File \"<stdin>\", line 47, in invoke_module\n  File \"<frozen runpy>\", line 226, in run_module\n  File \"<frozen runpy>\", line 98, in _run_module_code\n  File \"<frozen runpy>\", line 88, in _run_code\n  File \"/tmp/ansible_community.general.pritunl_user_payload_gapu75zk/ansible_community.general.pritunl_user_payload.zip/ansible_collections/community/general/plugins/modules/pritunl_user.py\", line 348, in <module>\n  File \"/tmp/ansible_community.general.pritunl_user_payload_gapu75zk/ansible_community.general.pritunl_user_payload.zip/ansible_collections/community/general/plugins/modules/pritunl_user.py\", line 340, in main\n  File \"/tmp/ansible_community.general.pritunl_user_payload_gapu75zk/ansible_community.general.pritunl_user_payload.zip/ansible_collections/community/general/plugins/modules/pritunl_user.py\", line 217, in add_or_update_pritunl_user\nTypeError: 'NoneType' object is not iterable\n",
    "module_stdout": "",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 1
}

Code of Conduct

  • I agree to follow the Ansible Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugThis issue/PR relates to a bugmodulemodulepluginsplugin (any type)traceback

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions