all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pbs-devel] [PATCH proxmox-backup 1/2] api2: add keep-job-configs flag to datastore remove endpoint
@ 2021-07-08 10:13 Dominik Csapak
  2021-07-08 10:13 ` [pbs-devel] [PATCH proxmox-backup 2/2] api2/config/datastore: delete_datastore: also remove tape backup jobs Dominik Csapak
  2021-07-08 10:16 ` [pbs-devel] applied: [PATCH proxmox-backup 1/2] api2: add keep-job-configs flag to datastore remove endpoint Thomas Lamprecht
  0 siblings, 2 replies; 4+ messages in thread
From: Dominik Csapak @ 2021-07-08 10:13 UTC (permalink / raw)
  To: pbs-devel

From: Hannes Laimer <h.laimer@proxmox.com>

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
Suggested Fixes:
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
changes from Hannes' v1:
* rebased on master
* i fixed the wrong function call (config vs admin)
* changed 'keep_job_configs' to a bool (from an option) since it has a default

 src/api2/config/datastore.rs | 28 +++++++++++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

diff --git a/src/api2/config/datastore.rs b/src/api2/config/datastore.rs
index d083d0c4..1fde362a 100644
--- a/src/api2/config/datastore.rs
+++ b/src/api2/config/datastore.rs
@@ -10,6 +10,12 @@ use proxmox::api::schema::parse_property_string;
 
 use pbs_datastore::task::TaskState;
 
+use crate::api2::config::sync::delete_sync_job;
+use crate::api2::config::verify::delete_verification_job;
+use crate::api2::admin::{
+    sync::list_sync_jobs,
+    verify::list_verification_jobs,
+};
 use crate::api2::types::*;
 use crate::backup::*;
 use crate::config::cached_user_info::CachedUserInfo;
@@ -413,6 +419,12 @@ pub fn update_datastore(
             name: {
                 schema: DATASTORE_SCHEMA,
             },
+            "keep-job-configs": {
+                description: "If enabled, the job configurations related to this datastore will be kept.",
+                type: bool,
+                optional: true,
+                default: false,
+            },
             digest: {
                 optional: true,
                 schema: PROXMOX_CONFIG_DIGEST_SCHEMA,
@@ -424,7 +436,12 @@ pub fn update_datastore(
     },
 )]
 /// Remove a datastore configuration.
-pub async fn delete_datastore(name: String, digest: Option<String>) -> Result<(), Error> {
+pub async fn delete_datastore(
+    name: String,
+    keep_job_configs: bool,
+    digest: Option<String>,
+    rpcenv: &mut dyn RpcEnvironment,
+) -> Result<(), Error> {
 
     let _lock = datastore::lock_config()?;
 
@@ -440,6 +457,15 @@ pub async fn delete_datastore(name: String, digest: Option<String>) -> Result<()
         None => bail!("datastore '{}' does not exist.", name),
     }
 
+    if !keep_job_configs {
+        for job in list_verification_jobs(Some(name.clone()), Value::Null, rpcenv)? {
+            delete_verification_job(job.config.id, None, rpcenv)?
+        }
+        for job in list_sync_jobs(Some(name.clone()), Value::Null, rpcenv)? {
+            delete_sync_job(job.config.id, None, rpcenv)?
+        }
+    }
+
     datastore::save_config(&config)?;
 
     // ignore errors
-- 
2.30.2





^ permalink raw reply	[flat|nested] 4+ messages in thread

* [pbs-devel] [PATCH proxmox-backup 2/2] api2/config/datastore: delete_datastore: also remove tape backup jobs
  2021-07-08 10:13 [pbs-devel] [PATCH proxmox-backup 1/2] api2: add keep-job-configs flag to datastore remove endpoint Dominik Csapak
@ 2021-07-08 10:13 ` Dominik Csapak
  2021-07-08 10:16   ` [pbs-devel] applied: " Thomas Lamprecht
  2021-07-08 10:16 ` [pbs-devel] applied: [PATCH proxmox-backup 1/2] api2: add keep-job-configs flag to datastore remove endpoint Thomas Lamprecht
  1 sibling, 1 reply; 4+ messages in thread
From: Dominik Csapak @ 2021-07-08 10:13 UTC (permalink / raw)
  To: pbs-devel

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
 src/api2/config/datastore.rs | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/api2/config/datastore.rs b/src/api2/config/datastore.rs
index 1fde362a..19b822d4 100644
--- a/src/api2/config/datastore.rs
+++ b/src/api2/config/datastore.rs
@@ -12,6 +12,7 @@ use pbs_datastore::task::TaskState;
 
 use crate::api2::config::sync::delete_sync_job;
 use crate::api2::config::verify::delete_verification_job;
+use crate::api2::config::tape_backup_job::{list_tape_backup_jobs, delete_tape_backup_job};
 use crate::api2::admin::{
     sync::list_sync_jobs,
     verify::list_verification_jobs,
@@ -464,6 +465,11 @@ pub async fn delete_datastore(
         for job in list_sync_jobs(Some(name.clone()), Value::Null, rpcenv)? {
             delete_sync_job(job.config.id, None, rpcenv)?
         }
+
+        let tape_jobs = list_tape_backup_jobs(Value::Null, rpcenv)?;
+        for job_config in  tape_jobs.into_iter().filter(|config| config.setup.store == name) {
+            delete_tape_backup_job(job_config.id, None, rpcenv)?;
+        }
     }
 
     datastore::save_config(&config)?;
-- 
2.30.2





^ permalink raw reply	[flat|nested] 4+ messages in thread

* [pbs-devel] applied: [PATCH proxmox-backup 1/2] api2: add keep-job-configs flag to datastore remove endpoint
  2021-07-08 10:13 [pbs-devel] [PATCH proxmox-backup 1/2] api2: add keep-job-configs flag to datastore remove endpoint Dominik Csapak
  2021-07-08 10:13 ` [pbs-devel] [PATCH proxmox-backup 2/2] api2/config/datastore: delete_datastore: also remove tape backup jobs Dominik Csapak
@ 2021-07-08 10:16 ` Thomas Lamprecht
  1 sibling, 0 replies; 4+ messages in thread
From: Thomas Lamprecht @ 2021-07-08 10:16 UTC (permalink / raw)
  To: Proxmox Backup Server development discussion, Dominik Csapak

On 08.07.21 12:13, Dominik Csapak wrote:
> From: Hannes Laimer <h.laimer@proxmox.com>
> 
> Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
> Suggested Fixes:
> Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
> ---
> changes from Hannes' v1:
> * rebased on master
> * i fixed the wrong function call (config vs admin)
> * changed 'keep_job_configs' to a bool (from an option) since it has a default
> 
>  src/api2/config/datastore.rs | 28 +++++++++++++++++++++++++++-
>  1 file changed, 27 insertions(+), 1 deletion(-)
> 
>

applied, thanks!




^ permalink raw reply	[flat|nested] 4+ messages in thread

* [pbs-devel] applied: [PATCH proxmox-backup 2/2] api2/config/datastore: delete_datastore: also remove tape backup jobs
  2021-07-08 10:13 ` [pbs-devel] [PATCH proxmox-backup 2/2] api2/config/datastore: delete_datastore: also remove tape backup jobs Dominik Csapak
@ 2021-07-08 10:16   ` Thomas Lamprecht
  0 siblings, 0 replies; 4+ messages in thread
From: Thomas Lamprecht @ 2021-07-08 10:16 UTC (permalink / raw)
  To: Proxmox Backup Server development discussion, Dominik Csapak

On 08.07.21 12:13, Dominik Csapak wrote:
> Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
> ---
>  src/api2/config/datastore.rs | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
>

applied, thanks! Change commit subject to:

"api: config: delete datastore: also remove tape backup jobs"




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-07-08 10:17 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-08 10:13 [pbs-devel] [PATCH proxmox-backup 1/2] api2: add keep-job-configs flag to datastore remove endpoint Dominik Csapak
2021-07-08 10:13 ` [pbs-devel] [PATCH proxmox-backup 2/2] api2/config/datastore: delete_datastore: also remove tape backup jobs Dominik Csapak
2021-07-08 10:16   ` [pbs-devel] applied: " Thomas Lamprecht
2021-07-08 10:16 ` [pbs-devel] applied: [PATCH proxmox-backup 1/2] api2: add keep-job-configs flag to datastore remove endpoint Thomas Lamprecht

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal