From 52d8db792504d255a0a0d7198b734694ad182113 Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Tue, 23 Feb 2021 15:54:03 +0100 Subject: [PATCH] api2/config/tape_backup_job: fix duplicate id parameter 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 --- 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>, digest: Option, ) -> 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)?;