From 6cd2b4f93b5c8dd040d5720903d413800c78cd92 Mon Sep 17 00:00:00 2001 From: "patchback[bot]" <45432694+patchback[bot]@users.noreply.github.com> Date: Sat, 20 Aug 2022 13:34:05 +0200 Subject: [PATCH] Change Proxmox `agent` argument to string. (#5107) (#5130) * Change Proxmox `agent` argument to string. * Add changelog entry. * Pass boolean directly to `proxmoxer`. (cherry picked from commit 0be7b6e7b91bb2d7b6e16773cc9b93a655ca0dd6) Co-authored-by: Markus Reiter --- .../fragments/5107-proxmox-agent-argument.yaml | 2 ++ plugins/modules/cloud/misc/proxmox_kvm.py | 16 +++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 changelogs/fragments/5107-proxmox-agent-argument.yaml diff --git a/changelogs/fragments/5107-proxmox-agent-argument.yaml b/changelogs/fragments/5107-proxmox-agent-argument.yaml new file mode 100644 index 0000000000..78e7927da1 --- /dev/null +++ b/changelogs/fragments/5107-proxmox-agent-argument.yaml @@ -0,0 +1,2 @@ +minor_changes: + - proxmox_kvm - allow ``agent`` argument to be a string (https://github.com/ansible-collections/community.general/pull/5107). diff --git a/plugins/modules/cloud/misc/proxmox_kvm.py b/plugins/modules/cloud/misc/proxmox_kvm.py index 90e9a14e6a..1e9c840493 100644 --- a/plugins/modules/cloud/misc/proxmox_kvm.py +++ b/plugins/modules/cloud/misc/proxmox_kvm.py @@ -25,7 +25,9 @@ options: agent: description: - Specify if the QEMU Guest Agent should be enabled/disabled. - type: bool + - Since community.general 5.5.0, this can also be a string instead of a boolean. + This allows to specify values such as C(enabled=1,fstrim_cloned_disks=1). + type: str args: description: - Pass arbitrary arguments to kvm. @@ -809,6 +811,7 @@ from ansible_collections.community.general.plugins.module_utils.proxmox import ( from ansible.module_utils.basic import AnsibleModule, missing_required_lib from ansible.module_utils.common.text.converters import to_native +from ansible.module_utils.parsing.convert_bool import boolean def parse_mac(netstr): @@ -960,7 +963,14 @@ class ProxmoxKvmAnsible(ProxmoxAnsible): kwargs.update(kwargs[k]) del kwargs[k] - # Rename numa_enabled to numa. According the API documentation + try: + # The API also allows booleans instead of e.g. `enabled=1` for backward-compatibility. + kwargs['agent'] = boolean(kwargs['agent'], strict=True) + except TypeError: + # Not something that Ansible would parse as a boolean. + pass + + # Rename numa_enabled to numa, according the API documentation if 'numa_enabled' in kwargs: kwargs['numa'] = kwargs['numa_enabled'] del kwargs['numa_enabled'] @@ -1040,7 +1050,7 @@ def main(): module_args = proxmox_auth_argument_spec() kvm_args = dict( acpi=dict(type='bool'), - agent=dict(type='bool'), + agent=dict(type='str'), args=dict(type='str'), autostart=dict(type='bool'), balloon=dict(type='int'),