* Added VMID to all returns
Also added in the docs promised return of MAC and devices when state ==
current.
Fixes: #1641
* Revert devices and mac as get_vminfo works differently then I expected
* Added status output to a few more calls
* Update RETURNS docs
* Remove vmid where it is not available
* Added changelog fragment
* Update changelogs/fragments/1715-proxmox_kvm-add-vmid-to-returns.yml
You're right, this message is way better then mine.. :-)
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 1cce279424)
Co-authored-by: Jeffrey van Pelt <jeff@vanpelt.one>
* Fix a bunch of potential security issues (secret leaking).
* oneandone_server was already ok.
* Add more parameters for pagerduty_alert.
* Add more no_log=True.
(cherry picked from commit 29bd5a9486)
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fixing return code not showing the command that fails in terraform.
* Update changelogs/fragments/1632-using_check_rc_in_terraform.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit dd0d460132)
Co-authored-by: Saqib Rokadia <saqib@saqibr.com>
* fix reconfigure option
If `init_reconfigure` is true, the init fails because it is run as:
`terraform init -input=false - r e c o n f i g u r e`
* changelog fragment
* typo
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 9f4fd4c899)
Co-authored-by: christophemorio <49184206+christophemorio@users.noreply.github.com>
* proxmox: create a common base
Add a doc_fragment to share the documentation regarding authentication
parameters (api_host, api_user, api_password, api_token_id,
api_token_secret as well as the lone validate_certs).
Add a module_utils to hold common code such as the argument spec (again
related to authentication paramters), a helper function to convert from
Proxmox boolean representation to python and the base class
ProxmoxAnsible.
For now it only handles the connection to Proxmox VE API but more can be
added in the future.
To check if everything is well in place add three new modules:
proxmox_{domain,group,user}_info.
And finaly tests these new modules.
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add tests/integration/targets/proxmox/aliases
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 51a08ea398)
Co-authored-by: Tristan Le Guern <tleguern@bouledef.eu>
* fixed validation-modules for plugins/modules/cloud/atomic/atomic_container.py
* fixed validation-modules for plugins/modules/cloud/oracle/oci_vcn.py
* fixed validation-modules for plugins/modules/cloud/heroku/heroku_collaborator.py
* fixed validation-modules for plugins/modules/cloud/docker/docker_stack.py
* fixed validation-modules for plugins/modules/cloud/pubnub/pubnub_blocks.py
* fixed validation-modules for plugins/modules/cloud/huawei/hwc_ecs_instance.py
* fixed validation-modules for plugins/modules/cloud/huawei/hwc_vpc_port.py
* fixed validation-modules for plugins/modules/cloud/huawei/hwc_vpc_subnet.py
* fixed validation-modules for plugins/modules/cloud/ovh/ovh_ip_failover.py
* fixed validation-modules for plugins/modules/cloud/ovh/ovh_ip_loadbalancing_backend.py
* fixed validation-modules for plugins/modules/cloud/softlayer/sl_vm.py
* fixed validation-modules for plugins/modules/cloud/misc/proxmox_kvm.py
* fixed validation-modules for plugins/modules/cloud/misc/proxmox_template.py
* fixed validation-modules for plugins/modules/cloud/misc/terraform.py
* fixed validation-modules for plugins/modules/cloud/memset/memset_dns_reload.py
* fixed validation-modules for plugins/modules/cloud/memset/memset_memstore_info.py
* fixed validation-modules for plugins/modules/cloud/memset/memset_server_info.py
* fixed validation-modules for plugins/modules/cloud/memset/memset_zone_domain.py
* fixed validation-modules for plugins/modules/cloud/memset/memset_zone.py
* fixed validation-modules for plugins/modules/cloud/memset/memset_zone_record.py
* fixed validation-modules for plugins/modules/cloud/linode/linode.py
* fixed validation-modules for plugins/modules/cloud/linode/linode_v4.py
* fixed validation-modules for plugins/doc_fragments/dimensiondata.py
* fixed validation-modules for plugins/modules/cloud/dimensiondata/dimensiondata_network.py
* fixed validation-modules for plugins/modules/cloud/dimensiondata/dimensiondata_vlan.py
* fixed validation-modules for plugins/modules/cloud/xenserver/xenserver_guest_info.py
* fixed validation-modules for plugins/modules/cloud/xenserver/xenserver_guest_powerstate.py
* Tidy up validate-modules ignores for varied cloud modules
- loking at the count of ignore lines, worked from the lower numbers up
* rolled back line for docker_container, removed two extraneous for xenserver
* rolled back lins for linode in 2.9
(cherry picked from commit 3d1f9ed657)
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
Provides an alternative authentication method to the password.
The token validity is only tested during the first request after the
instantiation of `ProxmoxAPI`, thus the presence of a call to
`proxmox.version.get()` in `proxmox_template`.
Example:
- name: Ensure test-vm is created
proxmox_kvm:
api_host: prx-test
api_user: tleguern@pve
api_token_id: api-pve-test
api_token_secret: fad3db3d-b335-ee15-9fb0-ea1bf70128db
node: prx-test-01
name: test-vm
...
(cherry picked from commit 5cc900cfdb)
Co-authored-by: Tristan Le Guern <tristan.leguern-presta@deveryware.com>
* proxmox_kvm: pool parameter not supported by API on update
* added changelog fragment
* format fix and pull request link added
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 726aa5ecf7)
Co-authored-by: thetuxkeeper <thetuxkeeper@gmail.com>
* proxmox, proxmox_kvm: Deprecate hard-coded defaults (#850)
* Remove hard-coded defaults
* Remove hard-coded defaults in proxmox.py
* Add changelog
* Remove defaults in proxmox docs
* Remove more default values
* Remove defaults in doc proxmox_kvm
* Restore default=True to onboot
* Add unspecified back to format
* correct changelog format and grammar
Co-authored-by: Felix Fontein <felix@fontein.de>
* improve changelog
* Fix changelog formatting
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fix changelog formatting
* Deprecate before behaviour change
* Change changelog
* Remove unnecessary ignored sanity tests, fix
* Fix
* Better mention it too often than too little :)
* Deprecate in version 4.0.0 instead of 2.0.0
* Fix changelog
* Fix
* Remove none values
* Improve documentation as suggessted by felixfontein
* fix changelog
Co-authored-by: Felix Fontein <felix@fontein.de>
* Remove default value in force in proxmox_kvm
* Add description to force in proxmox_kvm
Co-authored-by: Felix Fontein <felix@fontein.de>
* Revert the breaking_change
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add support for extra options for terraform init
* Add missing var declaration
* feat: add changelog fragment
* feat: switch from an init_extra_args global option to an init_reconfigure specific option
* Update changelogs/fragments/823-terraform_init_reconfigure.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 282c1d546c)
Co-authored-by: Damien Guihal <dguihal@gmail.com>
* 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>
* 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.
* 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>