* change list.copy() with list[:] for py2 compat in terraform module
* add changelog fragment
* Update changelogs/fragments/4621-terraform-py2-compat.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 4b0245355e)
Co-authored-by: Andrea Tartaglia <andrea@braingap.uk>
* Prepare for distutils.version being removed in Python 2.12.
* Fix copy'n'paste error.
* Re-add Loose prefix.
* Fix Python version typos.
* Improve formulation.
* Move message into own line.
* Fix casing, now that the object is no longer called Version.
(cherry picked from commit a2f72be6c8)
* fixing onboot parameter when not supplied
* adding changelog fragment
(cherry picked from commit 00a1152bb1)
Co-authored-by: Andrew Pantuso <ajpantuso@gmail.com>
* Fixes parameters missing in planned state
* Added new line at end of file
* Added changelog fragment for pr 3726
* Added changes mentioned by felixfontein
* Removed blank space for pep8 validation
* Update changelogs/fragments/3726-terraform-missing-parameters-planned-fix.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/cloud/misc/terraform.py
extend needs to be a list
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Thomas Arringe <thomas.arringe@fouredge.se>
Co-authored-by: Thomas Arringe <Thomas.Arringe@ica.se>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 946430e1fb)
Co-authored-by: egnirra <37709886+egnirra@users.noreply.github.com>
* Fixed - TypeError: unexpected keyword argument
- File proxmox_group_info.py creates the error "TypeError:
get_group() got an unexpected keyword argument \'group\'\r\n'" if a
group parameter is used.
Issue is an argument naming conflict. After changing the argument
name to 'groupid', as used in method ProxmoxGroupInfoAnsible::get_group,
testing a Proxmox group name is working now.
* Changelog fragment added for #3649
changelog fragment for TypeError: unexpected keyword argument #3649
* Update changelogs/fragments/3649-proxmox_group_info_TypeError.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 0df41241dd)
Co-authored-by: hklausing <hklausing@users.noreply.github.com>
* Started creating Unit tests for Proxmox Tasks module
* Tried really hard to get the mock to work
* unit tests for the module
* Fixed symslink and permissions
* Suggested changes and more unit tests
* Fixed isFalse
* Apply suggestions from code review
* Update plugins/modules/cloud/misc/proxmox_tasks_info.py
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit e95f63b067)
Co-authored-by: Andreas Botzner <paginabianca66@gmail.com>
* Fixed incorrect VMID: cloning to an existing VM
During a cloning operation, if the destination VM already exists the VMID returned is not correct.
The VMID returned should be that of the destination VM and not that of the source VM (consistent with line 1230).
A playbook that relies on the returned VMID, for example, to perform other operations on the destination VM, will not work properly if it is unexpectedly interrupted.
* Add files via upload
* moved 3266-vmid-existing-target-clone.yml to changelogs/fragments/
replaced line separator CRLF -> LF
* storing vmid list in variable to avoid multiple API calls
(cherry picked from commit 4e2d4e3c68)
Co-authored-by: Atlas974 <43972908+Atlas974@users.noreply.github.com>
* added the utf-8 marker
* fixed the utf-8 marker where it was missde before
(cherry picked from commit 771e9de010)
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
* Clone sucess should return new vm id, not id from cloned vm.
* add changelog fragment
* Update changelogs/fragments/3034-promox-kvm-return-new-id.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Yvan E. Watchman <git@yvanwatchman.eu>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit ac03881002)
Co-authored-by: Yvan Watchman <ik@yvanwatchman.eu>
* added check_destroy
This is based on the work done in PR 398. Authors from that PR:
Co-authored-by: effaamponsah <kamponsah.amponsah@gmail.com>
Co-authored-by: m-yosefpor
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* added changelog fragment
* Update plugins/modules/cloud/misc/terraform.py
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* Update changelogs/fragments/2874-terraform-check-destroy.yml
Co-authored-by: Amin Vakil <info@aminvakil.com>
Co-authored-by: effaamponsah <kamponsah.amponsah@gmail.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
Co-authored-by: Amin Vakil <info@aminvakil.com>
(cherry picked from commit 9dd91f949a)
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
ZFS-backed block devices may contain just the bare device name and
not have extra options like `,size=foo`, `,format=qcow2` etc. This
breaks an assumption in existing regex (which expects a comma).
Support such device strings and add a couple of testcases to validate.
(cherry picked from commit db713bd0f5)
Co-authored-by: Anup Chenthamarakshan <anupcshan@users.noreply.github.com>
* fix: ensure workspace is reset to current value
* chore: linter
* chore: changelog
(cherry picked from commit c49a384a65)
Co-authored-by: christophemorio <49184206+christophemorio@users.noreply.github.com>
* Fixed vmid result when VM with name exists
* Adding changelog fragment
(cherry picked from commit b281d3d699)
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* Set mtu on interface whatsoever
* add changelog fragment
* Revert "add changelog fragment"
This reverts commit 5f2f1e7feb.
(cherry picked from commit e2dfd42dd4)
Co-authored-by: Amin Vakil <info@aminvakil.com>
* Add proxmox_nic module
Add proxmox_nic module to manage NIC's on Qemu(KVM) VM's in a Proxmox VE
cluster.
Update proxmox integration tests and add tests for proxmox_nic module.
This partially solves https://github.com/ansible-collections/community.general/issues/1964#issuecomment-790499397
and allows for adding/updating/deleting network interface cards after
creating/cloning a VM.
The proxmox_nic module will keep MAC-addresses the same when updating a
NIC. It only changes when explicitly setting a MAC-address.
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add check_mode and implement review comments
- check_mode added
- some documentation updates
- when MTU is set, check if the model is virtio, else fail
- trunks can now be provided as list of ints instead of vlanid[;vlanid...]
* Make returns on update_nic and delete_nic more readable
Co-authored-by: Felix Fontein <felix@fontein.de>
* Increase readability on update_nic and delete_nic
* Implement check in get_vmid
- get_vmid will now fail when multiple vmid's are returned as proxmox
doesn't guarantee uniqueness
- remove an unused import
- fix a typo in an error message
* Add some error checking to get_vmid
- get_vmid will now return the error message when proxmoxer fails
- get_vmid will return the vmid directly instead of a list of one
- Some minor documentation updates
* Warn instead of fail when setting mtu on unsupported nic
- When setting the MTU on an unsupported NIC model (virtio is the only
supported model) this module will now print a warning instead of
failing.
- Some minor documentation updates.
* Take advantage of proxmox_auth_argument_spec
Make use of proxmox_auth_argument_spec from plugins/module_utils/proxmox.py
This provides some extra environment fallbacks.
* Add blank line to conform with pep8
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 23dda56913)
Co-authored-by: Kogelvis <github@ar-ix.net>
* Add plugin_paths parameter to terraform module.
The list `plugin_paths` is used in the init phase of terraform by setting
the `-plugin-dir` command line argument to a path that contains
terraform plugins. When the `-plugin-dir` argument is set, the plugin
discovery and auto-download of terraform is disabled. This is useful when
running terraform in automation environments for testing where the production
endpoints are strictly controlled or on air-gapped networks and you need
to control the versions of plugins available.
* Added `elements: path` to `plugin_paths` parameter documentation in terraform.py
* added changelog fragment
* Update changelogs/fragments/2308-terraform-add-plugin_paths-parameter.yaml
use double back-ticks vice single
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/cloud/misc/terraform.py
Add version added to documentation
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/cloud/misc/terraform.py
Add markup around URL in documentation
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/cloud/misc/terraform.py
remove `required=False` and `default=None` from module argument spec, as that is the default behavior and redundant
Co-authored-by: Amin Vakil <info@aminvakil.com>
* Added directory structure info to documentation and examples sections.
* Update plugins/modules/cloud/misc/terraform.py
grammatical fix
Co-authored-by: Felix Fontein <felix@fontein.de>
* grammar fix to description.
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Amin Vakil <info@aminvakil.com>
* Fix for Terraform 0.15
removed the append of variables in terraform validate because this is deprecated in Terraform 0.15. See: https://github.com/hashicorp/terraform/blob/v0.15/CHANGELOG.md >> The -var and -var-file options are no longer available on terraform validate. These were deprecated and have had no effect since Terraform v0.12
* Create terraform-validate.yaml
* Update and rename terraform-validate.yaml to 2246-terraform-validate.yaml
* Update changelogs/fragments/2246-terraform-validate.yaml
Co-authored-by: Amin Vakil <info@aminvakil.com>
* Update terraform.py
remove `-force` add `-auto-approve` on destroy as described in issue #2247
* Update and rename 2246-terraform-validate.yaml to 2246-terraform.yaml
* Update 2246-terraform.yaml
* add a function which check the used tf version
* add a function which check the used tf version
* Update changelogs/fragments/2246-terraform.yaml
Co-authored-by: Amin Vakil <info@aminvakil.com>
* Update changelogs/fragments/2246-terraform.yaml
Co-authored-by: Amin Vakil <info@aminvakil.com>
* add version return to function
* changed it to pass sanity check
* change variable name
* changed to a more specialized data types
* remove use_unsafe_shell=True
* Update changelogs/fragments/2246-terraform.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
* add description
* Update changelogs/fragments/2246-terraform.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Amin Vakil <info@aminvakil.com>
Co-authored-by: Rainer Leber <rainer.leber@sva.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* added purge as optional module parameter
* Adding changelog fragment
* Adding version to documentation for purge
Co-authored-by: Felix Fontein <felix@fontein.de>
* Updating changelog
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Adding tags as module parameter
* Added changelog fragment
* Correcting typo in changelog fragment
* Correcting punctuation in docs
* Including version to tags parameter description
Co-authored-by: Felix Fontein <felix@fontein.de>
* Correct tag validation and parsing logic condition
Original test was for key and not value
Co-authored-by: Felix Fontein <felix@fontein.de>
* Improving usability with default null behavior
* Removing default case and related unneccessary complexity
* Display regex in tags description as code
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Removed requirement for password
* Updated documentation for password
* Adding changelog fragment
* Update changelogs/fragments/1999-proxmox-fix-issue-1955.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* proxmox_kvm: trivial patch for Github issue #1875
* proxmox_kvm: add a changelog fragment
* Update changelogs/fragments/1895-proxmox-kvm-fix-issue-1875.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* proxmox_storage_info: new module
Simple info module dedicated to the retrieval of information about the
storages available on a Proxmox VE cluster.
* Update plugins/modules/cloud/misc/proxmox_storage_info.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/cloud/misc/proxmox_storage_info.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/cloud/misc/proxmox_storage_info.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/cloud/misc/proxmox_storage_info.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/cloud/misc/proxmox_storage_info.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* proxmox_kvm: undefined local variable status
* proxmox_kvm: Add a changelog fragment
* Update changelogs/fragments/1847-proxmox-kvm-fix-status.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* proxmox_kvm: fix the RETURN document
* proxmox_kvm: fix name variable when state=current
The variable name is not always defined as the module can be called with
just a vmid.
Before:
> "msg": "VM None with vmid = 118 is stopped"
After:
> "msg": "VM test-instance with vmid = 118 is stopped"
Co-authored-by: Felix Fontein <felix@fontein.de>
* don't add args if set to 'no_defaults'
* never add force even if false, will require archive parameter other which is not implemented
* remove trailing whitespace
* add changelog fragment
* Update changelogs/fragments/1783-proxmox-kvm-fix-args-500-error.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* 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>
* only set param features when variable is not empty
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Topper Harly <topperharly@gmx.net>
Co-authored-by: Felix Fontein <felix@fontein.de>
* 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.
* 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>
* 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>
* Fresh branch to try this again
* Fix typo
* Fix sanity error
* Redid some tests, not sure if this works...
* Re-fixed documentation
* Fixed linter
* Update layout
* Processed feedback
* Processed feedback
* Added check_mode
* Run test with check mode
* Fix layout
* Fix more layout
* Fixed last sanity errors (for now)
* Check mode is not a module arg..
* Fix sanity-error
* Reworked check_mode and adapted tests
* Added extra test to also run through remove logic, added message for check_mode to show output is different, grabbed magicmock from different library to fix py2 errors
* Remove unused function
* Processed feedback
* Processed feedback
* Processed feedback
* proxmox{,_kvm,_template}: import auth doc fragment
* proxmox{,_kvm}: new common doc_fragment
Share the parameters `pool`, `vmid` and `node`.
* proxmox_template: sync node description
* changelog_framgent
* 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>