Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding purge parameter to proxmox for use with lxc delete requests #2013

Merged

Conversation

Ajpantuso
Copy link
Collaborator

@Ajpantuso Ajpantuso commented Mar 12, 2021

SUMMARY

Adding purge parameter to proxmox module to allow for deletion of containers with HA defined.

Fixes #1488

ISSUE TYPE
  • Feature Pull Request
COMPONENT NAME

plugins/modules/cloud/misc/proxmox.py

ADDITIONAL INFORMATION

Purge can be optionally included with any combination of parameters, but only has meaning when used with state=absent.
If state=absent and purge=true, then the purge parameter will be included as a keyword argument in the delete request.
Given that this is an optional parameter for the PVE API, it has no conflict with other PVE parameters, and is only used for deletion so this should be a low impact change.

@ansibullbot
Copy link
Collaborator

@ansibullbot ansibullbot added affects_2.10 cloud community_review feature This issue/PR relates to a feature request module module needs_triage plugins plugin (any type) labels Mar 12, 2021
@Ajpantuso Ajpantuso marked this pull request as ready for review March 12, 2021 21:28
Ajpantuso and others added 2 commits March 13, 2021 07:52
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
Copy link
Collaborator

@felixfontein felixfontein left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me, in the sense that this is a new feature which definitely does not break backwards compatibility. @Aversiste @Thulium-Drake you can hopefully say whether this works as expected, but it definitely shouldn't break anything that worked before :)

@felixfontein felixfontein added backport-2 check-before-release PR will be looked at again shortly before release and merged if possible. labels Mar 13, 2021
Copy link
Contributor

@aminvakil aminvakil left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for adding this!
LGTM

@Thulium-Drake
Copy link
Contributor

I don't have an HA cluster, but it didn't break on my standalone installation :)

    - name: delete container
      community.general.proxmox:
        vmid: 999
        node: carrier
        api_user: ansible@pve
        api_password: supermassivepassword
        api_host: carrier
        hostname: ansible-created
        state: absent
        purge: true

Task result from proxmox

purging CT 999 from related configurations..
TASK OK

@Thulium-Drake
Copy link
Contributor

LGTM

@Ajpantuso
Copy link
Collaborator Author

Ajpantuso commented Mar 15, 2021

I don't have an HA cluster, but it didn't break on my standalone installation :)

    - name: delete container
      community.general.proxmox:
        vmid: 999
        node: carrier
        api_user: ansible@pve
        api_password: supermassivepassword
        api_host: carrier
        hostname: ansible-created
        state: absent
        purge: true

Task result from proxmox

purging CT 999 from related configurations..
TASK OK

The purge option is also used to remove the LXC from any backup jobs so it is possible to test that behavior without needing HA.

Expected result when purge=true, state=absent, and LXC targeted in backup job:
If the LXC is contained in a backup job with multiple VM's targeted, then purging it will remove only that instance from the job
Else if the LXC is the only VM targeted in a backup job, then the job will be removed entirely.

@felixfontein
Copy link
Collaborator

If nobody complains, I'll merge this one as well in a few days at latest.

@felixfontein felixfontein removed the check-before-release PR will be looked at again shortly before release and merged if possible. label Mar 19, 2021
@felixfontein felixfontein merged commit 79fb3e9 into ansible-collections:main Mar 19, 2021
patchback bot pushed a commit that referenced this pull request Mar 19, 2021
…2013)

* 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>
(cherry picked from commit 79fb3e9)
@felixfontein
Copy link
Collaborator

@Ajpantuso thanks for contributing this!
@aminvakil @Thulium-Drake thanks for reviewing!

felixfontein pushed a commit that referenced this pull request Mar 19, 2021
…2013) (#2050)

* 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>
(cherry picked from commit 79fb3e9)

Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Apr 2, 2021
v3.2.0

community.crypto
- acme module_utils - the ``acme`` module_utils has been split up into several Python modules (ansible-collections/community.crypto#184).
- acme_* modules - codebase refactor which should not be visible to end-users (ansible-collections/community.crypto#184).
- acme_* modules - support account key passphrases for ``cryptography`` backend (ansible-collections/community.crypto#197, ansible-collections/community.crypto#207).
- acme_certificate_revoke - support revoking by private keys that are passphrase protected for ``cryptography`` backend (ansible-collections/community.crypto#207).
- acme_challenge_cert_helper - add ``private_key_passphrase`` parameter (ansible-collections/community.crypto#207).

community.docker
- docker_swarm_service - change ``publish.published_port`` option from mandatory to optional. Docker will assign random high port if not specified (ansible-collections/community.docker#99).

community.general
- archive - refactored some reused code out into a couple of functions (ansible-collections/community.general#2061).
- csv module utils - new module_utils for shared functions between ``from_csv`` filter and ``read_csv`` module (ansible-collections/community.general#2037).
- ipa_sudorule - add support for setting sudo runasuser (ansible-collections/community.general#2031).
- jenkins_job - add a ``validate_certs`` parameter that allows disabling TLS/SSL certificate validation (ansible-collections/community.general#255).
- kibana_plugin - add parameter for passing ``--allow-root`` flag to kibana and kibana-plugin commands (ansible-collections/community.general#2014).
- proxmox - added ``purge`` module parameter for use when deleting lxc's with HA options (ansible-collections/community.general#2013).
- proxmox inventory plugin - added ``tags_parsed`` fact containing tags parsed as a list (ansible-collections/community.general#1949).
- proxmox_kvm - added new module parameter ``tags`` for use with PVE 6+ (ansible-collections/community.general#2000).
- rax - elements of list parameters are now validated (ansible-collections/community.general#2006).
- rax_cdb_user - elements of list parameters are now validated (ansible-collections/community.general#2006).
- rax_scaling_group - elements of list parameters are now validated (ansible-collections/community.general#2006).
- read_csv - refactored read_csv module to use shared csv functions from csv module_utils (ansible-collections/community.general#2037).
- redfish_* modules, redfish_utils module utils - add support for Redfish session create, delete, and authenticate (ansible-collections/community.general#1975).
- snmp_facts - added parameters ``timeout`` and ``retries`` to module (ansible-collections/community.general#980).
- vdo - add ``force`` option (ansible-collections/community.general#2101).

community.network
- edgeos_config - match the space after ``set`` and ``delete`` commands (ansible-collections/community.network#199).
- nclu - execute ``net commit description <description>`` only if changed ``net pending``'s diff field (ansible-collections/community.network#219).

community.postgresql
- postgresql_info - add the ``patch``, ``full``, and ``raw`` values of the ``version`` return value (ansible-collections/community.postgresql#68).
- postgresql_ping - add the ``patch``, ``full``, and ``raw`` values of the ``server_version`` return value (ansible-collections/community.postgresql#70).

community.zabbix
- zabbix_agent - added support for installations on arm64 systems (ansible-collections/community.zabbix#320).
- zabbix_proxy - now supports configuring StatsAllowedIP (ansible-collections/community.zabbix#337).
- zabbix_server - added support for installtions on arm64 systems (ansible-collections/community.zabbix#320).
- zabbix_web - added support for installtions on arm64 systems (ansible-collections/community.zabbix#320).

dellemc.openmanage
- ome_template - Allows to deploy a template on device groups.

hetzner.hcloud
- Add firewalls to hcloud_server module

ovirt.ovirt
- cluster_upgrade - Add correlation-id header (oVirt/ovirt-ansible-collection#222).
- engine_setup - Add skip renew pki confirm (oVirt/ovirt-ansible-collection#228).
- examples - Add recipe for removing DM device (oVirt/ovirt-ansible-collection#233).
- hosted_engine_setup - Filter devices with unsupported bond mode (oVirt/ovirt-ansible-collection#226).
- infra - Add reboot host parameters (oVirt/ovirt-ansible-collection#231).
- ovirt_disk - Add SATA support (oVirt/ovirt-ansible-collection#225).
- ovirt_user - Add ssh_public_key (oVirt/ovirt-ansible-collection#232)

purestorage.flasharray
- purefa_maintenance - New module to set maintenance windows
- purefa_pg - Add support to rename protection groups
- purefa_syslog - Add support for naming SYSLOG servers for Purity//FA 6.1 or higher

purestorage.flashblade
- purefb_certs - Add update functionality for array cert
- purefb_fs - Add multiprotocol ACL support
- purefb_info - Add information regarding filesystem multiprotocol (where available)
- purefb_info - Add new parameter to provide details on admin users
- purefb_info - Add replication performace statistics
- purefb_s3user - Add ability to remove an S3 users existing access key
@Ajpantuso Ajpantuso deleted the proxmox_purge_when_ha branch April 7, 2021 00:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cloud community_review feature This issue/PR relates to a feature request module module plugins plugin (any type)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Proxmox destroy fail when HA
5 participants