public inbox for pbs-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pbs-devel] [PATCH proxmox-backup] api2/config/tape_backup_job: fix duplicate id parameter
@ 2021-02-23 14:54 Dominik Csapak
  2021-02-23 16:26 ` [pbs-devel] applied: " Dietmar Maurer
  0 siblings, 1 reply; 11+ messages in thread
From: Dominik Csapak @ 2021-02-23 14:54 UTC (permalink / raw)
  To: pbs-devel

since the PUT api call is using the 'Updater', the 'id' parameter is
already encoded in there, tripping up the api verify tests with
'Duplicate keys found in AllOf schema: id'

"fixing" it by removing the explicit id from the api call and
taking it from the Updater (and failing if it does not exists there;
even though that should never happen)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
i am *really* not sure if this is the correct way @Wolfgang, is
there another wayt to selectively use the struct members for the
Updater?

 src/api2/config/tape_backup_job.rs | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/api2/config/tape_backup_job.rs b/src/api2/config/tape_backup_job.rs
index a9edc00f..bc05704c 100644
--- a/src/api2/config/tape_backup_job.rs
+++ b/src/api2/config/tape_backup_job.rs
@@ -1,4 +1,4 @@
-use anyhow::{bail, Error};
+use anyhow::{bail, format_err, Error};
 use serde_json::Value;
 use ::serde::{Deserialize, Serialize};
 
@@ -123,9 +123,6 @@ pub enum DeletableProperty {
     protected: true,
     input: {
         properties: {
-            id: {
-                schema: JOB_ID_SCHEMA,
-            },
             update: {
                 flatten: true,
                 type: TapeBackupJobConfigUpdater,
@@ -147,13 +144,14 @@ pub enum DeletableProperty {
 )]
 /// Update the tape backup job
 pub fn update_tape_backup_job(
-    id: String,
-    update: TapeBackupJobConfigUpdater,
+    mut update: TapeBackupJobConfigUpdater,
     delete: Option<Vec<String>>,
     digest: Option<String>,
 ) -> Result<(), Error> {
     let _lock = open_file_locked(TAPE_JOB_CFG_LOCKFILE, std::time::Duration::new(10, 0), true)?;
 
+    let id = update.id.take().ok_or_else(|| format_err!("no id given"))?;
+
     let (mut config, expected_digest) = config::tape_job::config()?;
 
     let mut job: TapeBackupJobConfig = config.lookup("backup", &id)?;
-- 
2.20.1





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

end of thread, other threads:[~2021-02-25  8:53 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-23 14:54 [pbs-devel] [PATCH proxmox-backup] api2/config/tape_backup_job: fix duplicate id parameter Dominik Csapak
2021-02-23 16:26 ` [pbs-devel] applied: " Dietmar Maurer
2021-02-23 17:00   ` Thomas Lamprecht
2021-02-23 19:27     ` Dietmar Maurer
2021-02-24  6:13       ` Dietmar Maurer
2021-02-24  7:28         ` Dietmar Maurer
2021-02-24  8:35           ` Wolfgang Bumiller
2021-02-24  8:42             ` Dietmar Maurer
2021-02-24  9:02               ` Wolfgang Bumiller
2021-02-24  9:47                 ` Dietmar Maurer
2021-02-25  8:53                   ` Dietmar Maurer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal