When destroying a CT, we intentionally did not remove all related configs such 
as
backup or replication jobs.
The intention of this flag is to allow the removal of such configs on destroy.

Signed-off-by: Christian Ebner <c.eb...@proxmox.com>
---
 src/PVE/API2/LXC.pm | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/src/PVE/API2/LXC.pm b/src/PVE/API2/LXC.pm
index 1561cfe..0acb59e 100644
--- a/src/PVE/API2/LXC.pm
+++ b/src/PVE/API2/LXC.pm
@@ -18,6 +18,7 @@ use PVE::LXC;
 use PVE::LXC::Create;
 use PVE::LXC::Migrate;
 use PVE::GuestHelpers;
+use PVE::VZDump::Plugin;
 use PVE::API2::LXC::Config;
 use PVE::API2::LXC::Status;
 use PVE::API2::LXC::Snapshot;
@@ -627,6 +628,11 @@ __PACKAGE__->register_method({
        properties => {
            node => get_standard_option('pve-node'),
            vmid => get_standard_option('pve-vmid', { completion => 
\&PVE::LXC::complete_ctid_stopped }),
+           purge => {
+               type => 'boolean',
+               description => "Remove vmid from backup cron jobs.",
+               optional => 1,
+           },
        },
     },
     returns => {
@@ -647,9 +653,13 @@ __PACKAGE__->register_method({
        die "unable to remove CT $vmid - used in HA resources\n"
            if PVE::HA::Config::vm_is_ha_managed($vmid);
 
-       # do not allow destroy if there are replication jobs
-       my $repl_conf = PVE::ReplicationConfig->new();
-       $repl_conf->check_for_existing_jobs($vmid);
+       if ($param->{purge}) {
+           PVE::ReplicationConfig::remove_vmid_jobs($vmid);
+       } else {
+           # do not allow destroy if there are replication jobs
+           my $repl_conf = PVE::ReplicationConfig->new();
+           $repl_conf->check_for_existing_jobs($vmid);
+       }
 
        my $running_error_msg = "unable to destroy CT $vmid - container is 
running\n";
 
@@ -665,6 +675,7 @@ __PACKAGE__->register_method({
            PVE::LXC::destroy_lxc_container($storage_cfg, $vmid, $conf);
            PVE::AccessControl::remove_vm_access($vmid);
            PVE::Firewall::remove_vmfw_conf($vmid);
+           PVE::VZDump::Plugin::remove_vmid_from_backup_jobs($vmid) if 
($param->{purge});
        };
 
        my $realcmd = sub { PVE::LXC::Config->lock_config($vmid, $code); };
-- 
2.20.1

_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to