* Allow setting format to null (None)
* Use string instead of None for consistency
* Add changelog
* Update changelogs/fragments/1028-proxmox-kvm-linked-clone.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/cloud/misc/proxmox_kvm.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Substitute 'unspecified' format with None
Co-authored-by: Lukasz Rzasik <lukasz.rzasik@dreamlab.net>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit e3e66a57ec)
Co-authored-by: lukaszrzasik <lukasz.rzasik@gmail.com>
* proxmox_kvm: remove redundant parameters
The functions start_vm() and stop_vm() receive four common parameters:
module, proxmox, vm and vmid.
The last too are redundant so keep only vm.
I also took the opportunity to remove extra API calls to proxmox.nodes()
by assigning its return value to a variable.
* proxmox_kvm: remove extra calls to status.current
The get_vm() function already returns an array of properties containing
the status so remove extra API calls to retrieve this information.
Example:
[{''netin'': 177232, ''name'': ''test-instance'', ''maxcpu'': 1, ''node'': ''prx-01'', ''disk'': 0, ''template'': 0, ''uptime'': 267, ''cpu'': 0.0410680030805531, ''diskread'': 165294744, ''maxdisk'': 10737418240, ''vmid'': 42, ''status'': ''running'', ''id'': ''qemu/42'', ''maxmem'': 536870912, ''diskwrite'': 18528256, ''netout'': 2918, ''type'': ''qemu'', ''mem'': 160284950}]
* proxmox_kvm: kill VZ_TYPE global variable
It reduces readability without providing much values nowadays.
* proxmox_kvm: simplify vmid generation
Forgotten suggestion from Felix Fontein in PR#811.
* proxmox_kvm: add changelog fragment for PR#934
(cherry picked from commit 02e80c610b)
* proxmox_kvm: new function wait_for_task() (#831)
Allows some factorization of redundant code in stop_vm(), start_vm(),
create_vm() and main().
This new function also waits one extra second after a successful task execution as the API can be a bit ahead of Proxmox.
Before:
TASK [ansible-role-proxmox-instance : Ensure test-instance is created]
changed: [localhost]
TASK [ansible-role-proxmox-instance : Ensure test-instance is updated]
fatal: [localhost]: FAILED! => changed=false
msg: VM test-instance does not exist in cluster.
After:
TASK [ansible-role-proxmox-instance : Ensure test-instance is created]
changed: [localhost]
TASK [ansible-role-proxmox-instance : Ensure test-instance is updated]
changed: [localhost]
With suggestions from Felix Fontein <felix@fontein.de>.
(cherry picked from commit 9a5fe4c9af)
* Update plugins/modules/cloud/misc/proxmox_kvm.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
When the `vmid` parameter is not supplied and the module can only rely on
name look-up an early failure can happen if the targeted VM doesn't exist.
In this case a task execution with the parameter `state` set to `absent`
will actually fail instead of being considered ok.
This patch introduces a deferred error-checking for non-existent VMs
by assigning the value -1 to the `vmid` parameter, allowing the actual
verification to be performed in the right code paths.
Is also help to differentiate between a non-existent `vmid` or non-existent
VM `name`.
Previously:
TASK [ansible-role-proxmox-instance : Remove instance-test]
changed: [localhost]
...
TASK [ansible-role-proxmox-instance : Remove instance-test]
fatal: [localhost]: FAILED! => changed=false
msg: VM instance-test does not exist in cluster.
Now:
TASK [ansible-role-proxmox-instance : Remove instance-test]
ok: [localhost]
...
TASK [ansible-role-proxmox-instance : Remove instance-test]
ok: [localhost]
Update changelogs/fragments/811-proxmox-kvm-state-absent.yml
With suggestions from Felix Fontein <felix@fontein.de>.
(cherry picked from commit 73f8338980)
Co-authored-by: Tristan Le Guern <tleguern@bouledef.eu>
* Revert "Remove entries of modules that no longer exist." partially.
This reverts commit c1e1b37da4.
* Revert "The _info module is in google.cloud."
This reverts commit 26f5c84924.
* Revert "Remove modules that were moved to the google.cloud collection according to ansible/ansible's ansible_builtin_runtime.yml."
This reverts commit a1442ccc35.
* Fix FQCNs in examples and module references.
* Add changelog fragment.
* Update ignore.txt.
* Remove bad lines.
* use Config MacAddress by default instead of Networks
* use Config MacAddress by default instead of Networks - fix typo
* #564 docker_container macaddress - add changelog fragment
* dont start the service it parameter stopped is true
* add missing changelog fragment
* fix formatting of the changelog fragment
* add condition to disallow the usage of stopped and restarted at the same time
* fix changelog
* Add vpc_uuid option to droplet creation
* Include new vpc_uuid option digital_ocean_droplet
* Remove required, add type for vpc_uuid
Co-authored-by: Felix Fontein <felix@fontein.de>
* Create changelog fragment file
* Include version_added
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Adjust deprecation versions.
* Remove redirects that are already made in ansible/ansible's ansible_builtin_runtime.yml
* Remove modules that were moved to the google.cloud collection according to ansible/ansible's ansible_builtin_runtime.yml.
* The _info module is in google.cloud.
* The gcp doc_fragment is a copy of the one in google.cloud and is only used by one lookup. Mark as deprecated/internal.
* Remove entries of modules that no longer exist.
* Update ignore.txt.
* Try to fix test.
* Remove debug output.
* Add version_added: 1.0.0 for all new features added before pre-ansible-base.
* Add version_added: 1.0.0 for all new features.
* Next release will be 0.2.0
* Fix error.
* Remove unnecessary warnings.
To remove a scaleway compute node, one needs to stop it first. This is
handled internally within the module by shutting down before removing.
Shutting down the node transitions it to a "stopping" state, which is
not the "stopped" state we expect. We thus need the transition to
complete so that we can put it in the actual target state (absent, i.e.
delete it).
The mechanism for waiting for such transitions today is controlled by
module parameters, with default to not being enabled at all, which
includes the transition from ([running] -(stopping)-> [stopped]).
Without this chage, in case of a running node, we would shut it down
(transition it to "stopping"), not wait for it complete the transition,
realize that it's not yet stopped and issue a second shut down command
to the api. This would fail with a 400 Bad Request error, "already
stopped".
Reference: https://github.com/ansible/ansible/issues/45740
Reported-by: zwindler
* Un-remove wrongly removed ovirt modules and adjust deprecation to Ansible 2.14 (regular 4 version deprecation cycle).
* Update sanity-2.10.txt
* Vendor dependencies from ovirt.ovirt as deprecated, and remove dependency on ovirt.ovirt.
* Use ovirt_facts doc_fragment, and don't add _ovirt_info doc_fragment.
* add description and hookscript parameters to proxmox LXC container
* fix pep8 E128
* Update plugins/modules/cloud/misc/proxmox.py
Co-Authored-By: Andrew Klychkov <aaklychkov@mail.ru>
* Update plugins/modules/cloud/misc/proxmox.py
Co-Authored-By: Andrew Klychkov <aaklychkov@mail.ru>
* add example for proxmox hookscript and description
* add changelogs fragment for PR #245
* set hookscript type
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>