* [pbs-devel] [PATCH proxmox-backup 1/2] api/config: use param_bail for parameter errors
@ 2022-03-04 13:47 Dominik Csapak
2022-03-04 13:47 ` [pbs-devel] [PATCH proxmox-backup 2/2] api/config: use http_bail for 'not found' errors Dominik Csapak
2022-03-08 8:12 ` [pbs-devel] applied-series: [PATCH proxmox-backup 1/2] api/config: use param_bail for parameter errors Wolfgang Bumiller
0 siblings, 2 replies; 3+ messages in thread
From: Dominik Csapak @ 2022-03-04 13:47 UTC (permalink / raw)
To: pbs-devel
when using the 'extjs' formatter, it marks them in a way, so that
the gui can mark the form fields with the error
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
src/api2/config/access/openid.rs | 4 ++--
src/api2/config/acme.rs | 6 +++---
src/api2/config/changer.rs | 10 +++++-----
src/api2/config/datastore.rs | 4 ++--
src/api2/config/drive.rs | 12 ++++++------
src/api2/config/media_pool.rs | 4 ++--
src/api2/config/remote.rs | 6 +++---
src/api2/config/sync.rs | 4 ++--
src/api2/config/tape_backup_job.rs | 4 ++--
src/api2/config/tape_encryption_keys.rs | 10 +++++-----
src/api2/config/traffic_control.rs | 4 ++--
src/api2/config/verify.rs | 4 ++--
12 files changed, 36 insertions(+), 36 deletions(-)
diff --git a/src/api2/config/access/openid.rs b/src/api2/config/access/openid.rs
index 25dfffbf..1e5b5519 100644
--- a/src/api2/config/access/openid.rs
+++ b/src/api2/config/access/openid.rs
@@ -6,7 +6,7 @@ use ::serde::{Deserialize, Serialize};
use hex::FromHex;
use proxmox_router::{Router, RpcEnvironment, Permission};
-use proxmox_schema::api;
+use proxmox_schema::{api, param_bail};
use pbs_api_types::{
OpenIdRealmConfig, OpenIdRealmConfigUpdater,
@@ -68,7 +68,7 @@ pub fn create_openid_realm(config: OpenIdRealmConfig) -> Result<(), Error> {
config.realm == "pam" ||
domains.sections.get(&config.realm).is_some()
{
- bail!("realm '{}' already exists.", config.realm);
+ param_bail!("realm", "realm '{}' already exists.", config.realm);
}
domains.set_data(&config.realm, "openid", &config)?;
diff --git a/src/api2/config/acme.rs b/src/api2/config/acme.rs
index 2fe1664f..5e3b4b3f 100644
--- a/src/api2/config/acme.rs
+++ b/src/api2/config/acme.rs
@@ -13,7 +13,7 @@ use hex::FromHex;
use proxmox_router::{
http_bail, list_subdirs_api_method, Permission, Router, RpcEnvironment, SubdirMap,
};
-use proxmox_schema::api;
+use proxmox_schema::{api, param_bail};
use proxmox_sys::{task_log, task_warn};
use proxmox_acme_rs::account::AccountData as AcmeAccountData;
@@ -582,7 +582,7 @@ pub fn get_plugin(id: String, mut rpcenv: &mut dyn RpcEnvironment) -> Result<Plu
pub fn add_plugin(r#type: String, core: DnsPluginCore, data: String) -> Result<(), Error> {
// Currently we only support DNS plugins and the standalone plugin is "fixed":
if r#type != "dns" {
- bail!("invalid ACME plugin type: {:?}", r#type);
+ param_bail!("type", "invalid ACME plugin type: {:?}", r#type);
}
let data = String::from_utf8(base64::decode(&data)?)
@@ -594,7 +594,7 @@ pub fn add_plugin(r#type: String, core: DnsPluginCore, data: String) -> Result<(
let (mut plugins, _digest) = plugin::config()?;
if plugins.contains_key(&id) {
- bail!("ACME plugin ID {:?} already exists", id);
+ param_bail!("id", "ACME plugin ID {:?} already exists", id);
}
let plugin = serde_json::to_value(DnsPlugin { core, data })?;
diff --git a/src/api2/config/changer.rs b/src/api2/config/changer.rs
index fe00c1eb..f3513011 100644
--- a/src/api2/config/changer.rs
+++ b/src/api2/config/changer.rs
@@ -4,7 +4,7 @@ use serde_json::Value;
use hex::FromHex;
use proxmox_router::{Router, RpcEnvironment, Permission};
-use proxmox_schema::api;
+use proxmox_schema::{api, param_bail};
use pbs_api_types::{
Authid, ScsiTapeChanger, ScsiTapeChangerUpdater, LtoTapeDrive,
@@ -43,11 +43,11 @@ pub fn create_changer(config: ScsiTapeChanger) -> Result<(), Error> {
for changer in existing {
if changer.name == config.name {
- bail!("Entry '{}' already exists", config.name);
+ param_bail!("name", "Entry '{}' already exists", config.name);
}
if changer.path == config.path {
- bail!("Path '{}' already in use by '{}'", config.path, changer.name);
+ param_bail!("path", "Path '{}' already in use by '{}'", config.path, changer.name);
}
}
@@ -252,7 +252,7 @@ pub fn delete_changer(name: String, _param: Value) -> Result<(), Error> {
match config.sections.get(&name) {
Some((section_type, _)) => {
if section_type != "changer" {
- bail!("Entry '{}' exists, but is not a changer device", name);
+ param_bail!("name", "Entry '{}' exists, but is not a changer device", name);
}
config.sections.remove(&name);
},
@@ -263,7 +263,7 @@ pub fn delete_changer(name: String, _param: Value) -> Result<(), Error> {
for drive in drive_list {
if let Some(changer) = drive.changer {
if changer == name {
- bail!("Delete changer '{}' failed - used by drive '{}'", name, drive.name);
+ param_bail!("name", "Delete changer '{}' failed - used by drive '{}'", name, drive.name);
}
}
}
diff --git a/src/api2/config/datastore.rs b/src/api2/config/datastore.rs
index f8f98afe..0ec84423 100644
--- a/src/api2/config/datastore.rs
+++ b/src/api2/config/datastore.rs
@@ -6,7 +6,7 @@ use ::serde::{Deserialize, Serialize};
use hex::FromHex;
use proxmox_router::{Router, RpcEnvironment, RpcEnvironmentType, Permission};
-use proxmox_schema::{api, ApiType};
+use proxmox_schema::{api, param_bail, ApiType};
use proxmox_section_config::SectionConfigData;
use proxmox_sys::WorkerTaskContext;
@@ -113,7 +113,7 @@ pub fn create_datastore(
let (section_config, _digest) = pbs_config::datastore::config()?;
if section_config.sections.get(&config.name).is_some() {
- bail!("datastore '{}' already exists.", config.name);
+ param_bail!("name", "datastore '{}' already exists.", config.name);
}
let auth_id: Authid = rpcenv.get_auth_id().unwrap().parse()?;
diff --git a/src/api2/config/drive.rs b/src/api2/config/drive.rs
index 1c92e4c3..68dc8d06 100644
--- a/src/api2/config/drive.rs
+++ b/src/api2/config/drive.rs
@@ -1,10 +1,10 @@
-use anyhow::{bail, Error};
+use anyhow::{bail, format_err, Error};
use ::serde::{Deserialize, Serialize};
use serde_json::Value;
use hex::FromHex;
use proxmox_router::{Router, RpcEnvironment, Permission};
-use proxmox_schema::api;
+use proxmox_schema::{api, param_bail};
use pbs_api_types::{
Authid, LtoTapeDrive, LtoTapeDriveUpdater, ScsiTapeChanger,
@@ -43,10 +43,10 @@ pub fn create_drive(config: LtoTapeDrive) -> Result<(), Error> {
for drive in existing {
if drive.name == config.name {
- bail!("Entry '{}' already exists", config.name);
+ param_bail!("name", "Entry '{}' already exists", config.name);
}
if drive.path == config.path {
- bail!("Path '{}' already used in drive '{}'", config.path, drive.name);
+ param_bail!("path", "Path '{}' already used in drive '{}'", config.path, drive.name);
}
}
@@ -218,7 +218,7 @@ pub fn update_drive(
data.changer_drivenum = None;
} else {
if data.changer.is_none() {
- bail!("Option 'changer-drivenum' requires option 'changer'.");
+ param_bail!("changer", format_err!("Option 'changer-drivenum' requires option 'changer'."));
}
data.changer_drivenum = Some(changer_drivenum);
}
@@ -254,7 +254,7 @@ pub fn delete_drive(name: String, _param: Value) -> Result<(), Error> {
match config.sections.get(&name) {
Some((section_type, _)) => {
if section_type != "lto" {
- bail!("Entry '{}' exists, but is not a lto tape drive", name);
+ param_bail!("name", "Entry '{}' exists, but is not a lto tape drive", name);
}
config.sections.remove(&name);
},
diff --git a/src/api2/config/media_pool.rs b/src/api2/config/media_pool.rs
index 7c3708c6..be4ff053 100644
--- a/src/api2/config/media_pool.rs
+++ b/src/api2/config/media_pool.rs
@@ -2,7 +2,7 @@ use anyhow::{bail, Error};
use ::serde::{Deserialize, Serialize};
use proxmox_router::{Router, RpcEnvironment, Permission};
-use proxmox_schema::api;
+use proxmox_schema::{api, param_bail};
use pbs_api_types::{
Authid, MediaPoolConfig, MediaPoolConfigUpdater, MEDIA_POOL_NAME_SCHEMA,
@@ -35,7 +35,7 @@ pub fn create_pool(
let (mut section_config, _digest) = pbs_config::media_pool::config()?;
if section_config.sections.get(&config.name).is_some() {
- bail!("Media pool '{}' already exists", config.name);
+ param_bail!("name", "Media pool '{}' already exists", config.name);
}
section_config.set_data(&config.name, "pool", &config)?;
diff --git a/src/api2/config/remote.rs b/src/api2/config/remote.rs
index 1846deaa..89564e8f 100644
--- a/src/api2/config/remote.rs
+++ b/src/api2/config/remote.rs
@@ -7,7 +7,7 @@ use ::serde::{Deserialize, Serialize};
use hex::FromHex;
use proxmox_router::{http_err, ApiMethod, Router, RpcEnvironment, Permission};
-use proxmox_schema::api;
+use proxmox_schema::{api, param_bail};
use pbs_client::{HttpClient, HttpClientOptions};
use pbs_api_types::{
@@ -95,7 +95,7 @@ pub fn create_remote(
let (mut section_config, _digest) = pbs_config::remote::config()?;
if section_config.sections.get(&name).is_some() {
- bail!("remote '{}' already exists.", name);
+ param_bail!("name", "remote '{}' already exists.", name);
}
let remote = Remote { name: name.clone(), config, password };
@@ -257,7 +257,7 @@ pub fn delete_remote(name: String, digest: Option<String>) -> Result<(), Error>
let job_list: Vec<SyncJobConfig> = sync_jobs.convert_to_typed_array("sync")?;
for job in job_list {
if job.remote == name {
- bail!("remote '{}' is used by sync job '{}' (datastore '{}')", name, job.id, job.store);
+ param_bail!("name", "remote '{}' is used by sync job '{}' (datastore '{}')", name, job.id, job.store);
}
}
diff --git a/src/api2/config/sync.rs b/src/api2/config/sync.rs
index 32983556..93584ecb 100644
--- a/src/api2/config/sync.rs
+++ b/src/api2/config/sync.rs
@@ -4,7 +4,7 @@ use ::serde::{Deserialize, Serialize};
use hex::FromHex;
use proxmox_router::{Router, RpcEnvironment, Permission};
-use proxmox_schema::api;
+use proxmox_schema::{api, param_bail};
use pbs_api_types::{
Authid, SyncJobConfig, SyncJobConfigUpdater, JOB_ID_SCHEMA, PROXMOX_CONFIG_DIGEST_SCHEMA,
@@ -133,7 +133,7 @@ pub fn create_sync_job(
let (mut section_config, _digest) = sync::config()?;
if section_config.sections.get(&config.id).is_some() {
- bail!("job '{}' already exists.", config.id);
+ param_bail!("id", "job '{}' already exists.", config.id);
}
section_config.set_data(&config.id, "sync", &config)?;
diff --git a/src/api2/config/tape_backup_job.rs b/src/api2/config/tape_backup_job.rs
index 21ac32f8..4d452039 100644
--- a/src/api2/config/tape_backup_job.rs
+++ b/src/api2/config/tape_backup_job.rs
@@ -4,7 +4,7 @@ use ::serde::{Deserialize, Serialize};
use hex::FromHex;
use proxmox_router::{Router, RpcEnvironment, Permission};
-use proxmox_schema::api;
+use proxmox_schema::{api, param_bail};
use pbs_api_types::{
Authid, TapeBackupJobConfig, TapeBackupJobConfigUpdater,
@@ -77,7 +77,7 @@ pub fn create_tape_backup_job(
let (mut config, _digest) = pbs_config::tape_job::config()?;
if config.sections.get(&job.id).is_some() {
- bail!("job '{}' already exists.", job.id);
+ param_bail!("id", "job '{}' already exists.", job.id);
}
config.set_data(&job.id, "backup", &job)?;
diff --git a/src/api2/config/tape_encryption_keys.rs b/src/api2/config/tape_encryption_keys.rs
index 25cc6cc0..910eb0ab 100644
--- a/src/api2/config/tape_encryption_keys.rs
+++ b/src/api2/config/tape_encryption_keys.rs
@@ -3,7 +3,7 @@ use serde_json::Value;
use hex::FromHex;
use proxmox_router::{ApiMethod, Router, RpcEnvironment, Permission};
-use proxmox_schema::api;
+use proxmox_schema::{api, param_bail};
use pbs_api_types::{
Authid, Fingerprint, KeyInfo, Kdf,
@@ -112,7 +112,7 @@ pub fn change_passphrase(
let kdf = kdf.unwrap_or_default();
if let Kdf::None = kdf {
- bail!("Please specify a key derivation function (none is not allowed here).");
+ param_bail!("kdf", format_err!("Please specify a key derivation function (none is not allowed here)."));
}
let _lock = open_backup_lockfile(TAPE_KEYS_LOCKFILE, None, true)?;
@@ -137,8 +137,8 @@ pub fn change_passphrase(
}
let (key, created, fingerprint) = match (force, &password) {
- (true, Some(_)) => bail!("password is not allowed when using force"),
- (false, None) => bail!("missing parameter: password"),
+ (true, Some(_)) => param_bail!("password", format_err!("password is not allowed when using force")),
+ (false, None) => param_bail!("password", format_err!("missing parameter: password")),
(false, Some(pass)) => key_config.decrypt(&|| Ok(pass.as_bytes().to_vec()))?,
(true, None) => {
let key = load_keys()?.0.get(&fingerprint).ok_or_else(|| {
@@ -195,7 +195,7 @@ pub fn create_key(
let kdf = kdf.unwrap_or_default();
if let Kdf::None = kdf {
- bail!("Please specify a key derivation function (none is not allowed here).");
+ param_bail!("kdf", format_err!("Please specify a key derivation function (none is not allowed here)."));
}
let (key, mut key_config) = KeyConfig::new(password.as_bytes(), kdf)?;
diff --git a/src/api2/config/traffic_control.rs b/src/api2/config/traffic_control.rs
index f7f1cd65..f992157d 100644
--- a/src/api2/config/traffic_control.rs
+++ b/src/api2/config/traffic_control.rs
@@ -4,7 +4,7 @@ use ::serde::{Deserialize, Serialize};
use hex::FromHex;
use proxmox_router::{ApiMethod, Router, RpcEnvironment, Permission};
-use proxmox_schema::api;
+use proxmox_schema::{api, param_bail};
use pbs_api_types::{
TrafficControlRule, TrafficControlRuleUpdater,
@@ -62,7 +62,7 @@ pub fn create_traffic_control(config: TrafficControlRule) -> Result<(), Error> {
let (mut section_config, _digest) = pbs_config::traffic_control::config()?;
if section_config.sections.get(&config.name).is_some() {
- bail!("traffic control rule '{}' already exists.", config.name);
+ param_bail!("name", "traffic control rule '{}' already exists.", config.name);
}
section_config.set_data(&config.name, "rule", &config)?;
diff --git a/src/api2/config/verify.rs b/src/api2/config/verify.rs
index 1431244b..2d7e9485 100644
--- a/src/api2/config/verify.rs
+++ b/src/api2/config/verify.rs
@@ -4,7 +4,7 @@ use ::serde::{Deserialize, Serialize};
use hex::FromHex;
use proxmox_router::{Router, RpcEnvironment, Permission};
-use proxmox_schema::api;
+use proxmox_schema::{api, param_bail};
use pbs_api_types::{
Authid, VerificationJobConfig, VerificationJobConfigUpdater, JOB_ID_SCHEMA,
@@ -85,7 +85,7 @@ pub fn create_verification_job(
let (mut section_config, _digest) = verify::config()?;
if section_config.sections.get(&config.id).is_some() {
- bail!("job '{}' already exists.", config.id);
+ param_bail!("id", "job '{}' already exists.", config.id);
}
section_config.set_data(&config.id, "verification", &config)?;
--
2.30.2
^ permalink raw reply [flat|nested] 3+ messages in thread
* [pbs-devel] [PATCH proxmox-backup 2/2] api/config: use http_bail for 'not found' errors
2022-03-04 13:47 [pbs-devel] [PATCH proxmox-backup 1/2] api/config: use param_bail for parameter errors Dominik Csapak
@ 2022-03-04 13:47 ` Dominik Csapak
2022-03-08 8:12 ` [pbs-devel] applied-series: [PATCH proxmox-backup 1/2] api/config: use param_bail for parameter errors Wolfgang Bumiller
1 sibling, 0 replies; 3+ messages in thread
From: Dominik Csapak @ 2022-03-04 13:47 UTC (permalink / raw)
To: pbs-devel
the api should return a 404 error for entries that do not exist
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
not sure if this is a breaking change, since we did return a '400' before
so i'm sending it for api2/config only, and would send more if we
decide this is the way we want to go
we're already doing this for some api endpoints (e.g. acme)
src/api2/config/access/openid.rs | 6 +++---
src/api2/config/changer.rs | 6 +++---
src/api2/config/datastore.rs | 6 +++---
src/api2/config/drive.rs | 6 +++---
src/api2/config/media_pool.rs | 6 +++---
src/api2/config/remote.rs | 4 ++--
src/api2/config/sync.rs | 4 ++--
src/api2/config/tape_backup_job.rs | 6 +++---
src/api2/config/tape_encryption_keys.rs | 8 ++++----
src/api2/config/traffic_control.rs | 6 +++---
src/api2/config/verify.rs | 6 +++---
11 files changed, 32 insertions(+), 32 deletions(-)
diff --git a/src/api2/config/access/openid.rs b/src/api2/config/access/openid.rs
index 1e5b5519..83112ce7 100644
--- a/src/api2/config/access/openid.rs
+++ b/src/api2/config/access/openid.rs
@@ -1,11 +1,11 @@
/// Configure OpenId realms
-use anyhow::{bail, Error};
+use anyhow::Error;
use serde_json::Value;
use ::serde::{Deserialize, Serialize};
use hex::FromHex;
-use proxmox_router::{Router, RpcEnvironment, Permission};
+use proxmox_router::{http_bail, Router, RpcEnvironment, Permission};
use proxmox_schema::{api, param_bail};
use pbs_api_types::{
@@ -112,7 +112,7 @@ pub fn delete_openid_realm(
}
if domains.sections.remove(&realm).is_none() {
- bail!("realm '{}' does not exist.", realm);
+ http_bail!(NOT_FOUND, "realm '{}' does not exist.", realm);
}
domains::save_config(&domains)?;
diff --git a/src/api2/config/changer.rs b/src/api2/config/changer.rs
index f3513011..4fc654a9 100644
--- a/src/api2/config/changer.rs
+++ b/src/api2/config/changer.rs
@@ -1,9 +1,9 @@
-use anyhow::{bail, Error};
+use anyhow::Error;
use ::serde::{Deserialize, Serialize};
use serde_json::Value;
use hex::FromHex;
-use proxmox_router::{Router, RpcEnvironment, Permission};
+use proxmox_router::{http_bail, Router, RpcEnvironment, Permission};
use proxmox_schema::{api, param_bail};
use pbs_api_types::{
@@ -256,7 +256,7 @@ pub fn delete_changer(name: String, _param: Value) -> Result<(), Error> {
}
config.sections.remove(&name);
},
- None => bail!("Delete changer '{}' failed - no such entry", name),
+ None => http_bail!(NOT_FOUND, "Delete changer '{}' failed - no such entry", name),
}
let drive_list: Vec<LtoTapeDrive> = config.convert_to_typed_array("lto")?;
diff --git a/src/api2/config/datastore.rs b/src/api2/config/datastore.rs
index 0ec84423..992092a9 100644
--- a/src/api2/config/datastore.rs
+++ b/src/api2/config/datastore.rs
@@ -1,11 +1,11 @@
use std::path::PathBuf;
-use anyhow::{bail, Error};
+use anyhow::Error;
use serde_json::Value;
use ::serde::{Deserialize, Serialize};
use hex::FromHex;
-use proxmox_router::{Router, RpcEnvironment, RpcEnvironmentType, Permission};
+use proxmox_router::{http_bail, Router, RpcEnvironment, RpcEnvironmentType, Permission};
use proxmox_schema::{api, param_bail, ApiType};
use proxmox_section_config::SectionConfigData;
use proxmox_sys::WorkerTaskContext;
@@ -359,7 +359,7 @@ pub async fn delete_datastore(
match config.sections.get(&name) {
Some(_) => { config.sections.remove(&name); },
- None => bail!("datastore '{}' does not exist.", name),
+ None => http_bail!(NOT_FOUND, "datastore '{}' does not exist.", name),
}
if !keep_job_configs {
diff --git a/src/api2/config/drive.rs b/src/api2/config/drive.rs
index 68dc8d06..370c5a94 100644
--- a/src/api2/config/drive.rs
+++ b/src/api2/config/drive.rs
@@ -1,9 +1,9 @@
-use anyhow::{bail, format_err, Error};
+use anyhow::{format_err, Error};
use ::serde::{Deserialize, Serialize};
use serde_json::Value;
use hex::FromHex;
-use proxmox_router::{Router, RpcEnvironment, Permission};
+use proxmox_router::{http_bail, Router, RpcEnvironment, Permission};
use proxmox_schema::{api, param_bail};
use pbs_api_types::{
@@ -258,7 +258,7 @@ pub fn delete_drive(name: String, _param: Value) -> Result<(), Error> {
}
config.sections.remove(&name);
},
- None => bail!("Delete drive '{}' failed - no such drive", name),
+ None => http_bail!(NOT_FOUND, "Delete drive '{}' failed - no such drive", name),
}
pbs_config::drive::save_config(&config)?;
diff --git a/src/api2/config/media_pool.rs b/src/api2/config/media_pool.rs
index be4ff053..f350eaea 100644
--- a/src/api2/config/media_pool.rs
+++ b/src/api2/config/media_pool.rs
@@ -1,7 +1,7 @@
-use anyhow::{bail, Error};
+use anyhow::Error;
use ::serde::{Deserialize, Serialize};
-use proxmox_router::{Router, RpcEnvironment, Permission};
+use proxmox_router::{http_bail, Router, RpcEnvironment, Permission};
use proxmox_schema::{api, param_bail};
use pbs_api_types::{
@@ -217,7 +217,7 @@ pub fn delete_pool(name: String) -> Result<(), Error> {
match config.sections.get(&name) {
Some(_) => { config.sections.remove(&name); },
- None => bail!("delete pool '{}' failed - no such pool", name),
+ None => http_bail!(NOT_FOUND, "delete pool '{}' failed - no such pool", name),
}
pbs_config::media_pool::save_config(&config)?;
diff --git a/src/api2/config/remote.rs b/src/api2/config/remote.rs
index 89564e8f..12e35ba4 100644
--- a/src/api2/config/remote.rs
+++ b/src/api2/config/remote.rs
@@ -6,7 +6,7 @@ use serde_json::Value;
use ::serde::{Deserialize, Serialize};
use hex::FromHex;
-use proxmox_router::{http_err, ApiMethod, Router, RpcEnvironment, Permission};
+use proxmox_router::{http_bail, http_err, ApiMethod, Router, RpcEnvironment, Permission};
use proxmox_schema::{api, param_bail};
use pbs_client::{HttpClient, HttpClientOptions};
@@ -272,7 +272,7 @@ pub fn delete_remote(name: String, digest: Option<String>) -> Result<(), Error>
match config.sections.get(&name) {
Some(_) => { config.sections.remove(&name); },
- None => bail!("remote '{}' does not exist.", name),
+ None => http_bail!(NOT_FOUND, "remote '{}' does not exist.", name),
}
pbs_config::remote::save_config(&config)?;
diff --git a/src/api2/config/sync.rs b/src/api2/config/sync.rs
index 93584ecb..ab4acf22 100644
--- a/src/api2/config/sync.rs
+++ b/src/api2/config/sync.rs
@@ -3,7 +3,7 @@ use serde_json::Value;
use ::serde::{Deserialize, Serialize};
use hex::FromHex;
-use proxmox_router::{Router, RpcEnvironment, Permission};
+use proxmox_router::{http_bail, Router, RpcEnvironment, Permission};
use proxmox_schema::{api, param_bail};
use pbs_api_types::{
@@ -367,7 +367,7 @@ pub fn delete_sync_job(
}
config.sections.remove(&id);
},
- Err(_) => { bail!("job '{}' does not exist.", id) },
+ Err(_) => { http_bail!(NOT_FOUND, "job '{}' does not exist.", id) },
};
sync::save_config(&config)?;
diff --git a/src/api2/config/tape_backup_job.rs b/src/api2/config/tape_backup_job.rs
index 4d452039..770488be 100644
--- a/src/api2/config/tape_backup_job.rs
+++ b/src/api2/config/tape_backup_job.rs
@@ -1,9 +1,9 @@
-use anyhow::{bail, Error};
+use anyhow::Error;
use serde_json::Value;
use ::serde::{Deserialize, Serialize};
use hex::FromHex;
-use proxmox_router::{Router, RpcEnvironment, Permission};
+use proxmox_router::{http_bail, Router, RpcEnvironment, Permission};
use proxmox_schema::{api, param_bail};
use pbs_api_types::{
@@ -268,7 +268,7 @@ pub fn delete_tape_backup_job(
Ok(_job) => {
config.sections.remove(&id);
},
- Err(_) => { bail!("job '{}' does not exist.", id) },
+ Err(_) => { http_bail!(NOT_FOUND, "job '{}' does not exist.", id) },
};
pbs_config::tape_job::save_config(&config)?;
diff --git a/src/api2/config/tape_encryption_keys.rs b/src/api2/config/tape_encryption_keys.rs
index 910eb0ab..3e9a60d1 100644
--- a/src/api2/config/tape_encryption_keys.rs
+++ b/src/api2/config/tape_encryption_keys.rs
@@ -2,7 +2,7 @@ use anyhow::{format_err, bail, Error};
use serde_json::Value;
use hex::FromHex;
-use proxmox_router::{ApiMethod, Router, RpcEnvironment, Permission};
+use proxmox_router::{http_bail, ApiMethod, Router, RpcEnvironment, Permission};
use proxmox_schema::{api, param_bail};
use pbs_api_types::{
@@ -126,7 +126,7 @@ pub fn change_passphrase(
let key_config = match config_map.get(&fingerprint) {
Some(key_config) => key_config,
- None => bail!("tape encryption key configuration '{}' does not exist.", fingerprint),
+ None => http_bail!(NOT_FOUND, "tape encryption key configuration '{}' does not exist.", fingerprint),
};
let auth_id: Authid = rpcenv.get_auth_id().unwrap().parse()?;
@@ -234,7 +234,7 @@ pub fn read_key(
let key_config = match config_map.get(&fingerprint) {
Some(key_config) => key_config,
- None => bail!("tape encryption key '{}' does not exist.", fingerprint),
+ None => http_bail!(NOT_FOUND, "tape encryption key '{}' does not exist.", fingerprint),
};
if key_config.kdf.is_none() {
@@ -281,7 +281,7 @@ pub fn delete_key(
match config_map.get(&fingerprint) {
Some(_) => { config_map.remove(&fingerprint); },
- None => bail!("tape encryption key '{}' does not exist.", fingerprint),
+ None => http_bail!(NOT_FOUND, "tape encryption key '{}' does not exist.", fingerprint),
}
save_key_configs(config_map)?;
diff --git a/src/api2/config/traffic_control.rs b/src/api2/config/traffic_control.rs
index f992157d..bd14138d 100644
--- a/src/api2/config/traffic_control.rs
+++ b/src/api2/config/traffic_control.rs
@@ -1,9 +1,9 @@
-use anyhow::{bail, Error};
+use anyhow::Error;
use serde_json::Value;
use ::serde::{Deserialize, Serialize};
use hex::FromHex;
-use proxmox_router::{ApiMethod, Router, RpcEnvironment, Permission};
+use proxmox_router::{http_bail, ApiMethod, Router, RpcEnvironment, Permission};
use proxmox_schema::{api, param_bail};
use pbs_api_types::{
@@ -245,7 +245,7 @@ pub fn delete_traffic_control(name: String, digest: Option<String>) -> Result<()
match config.sections.get(&name) {
Some(_) => { config.sections.remove(&name); },
- None => bail!("traffic control rule '{}' does not exist.", name),
+ None => http_bail!(NOT_FOUND, "traffic control rule '{}' does not exist.", name),
}
pbs_config::traffic_control::save_config(&config)?;
diff --git a/src/api2/config/verify.rs b/src/api2/config/verify.rs
index 2d7e9485..c0a7820f 100644
--- a/src/api2/config/verify.rs
+++ b/src/api2/config/verify.rs
@@ -1,9 +1,9 @@
-use anyhow::{bail, Error};
+use anyhow::Error;
use serde_json::Value;
use ::serde::{Deserialize, Serialize};
use hex::FromHex;
-use proxmox_router::{Router, RpcEnvironment, Permission};
+use proxmox_router::{http_bail, Router, RpcEnvironment, Permission};
use proxmox_schema::{api, param_bail};
use pbs_api_types::{
@@ -287,7 +287,7 @@ pub fn delete_verification_job(
match config.sections.get(&id) {
Some(_) => { config.sections.remove(&id); },
- None => bail!("job '{}' does not exist.", id),
+ None => http_bail!(NOT_FOUND, "job '{}' does not exist.", id),
}
verify::save_config(&config)?;
--
2.30.2
^ permalink raw reply [flat|nested] 3+ messages in thread
* [pbs-devel] applied-series: [PATCH proxmox-backup 1/2] api/config: use param_bail for parameter errors
2022-03-04 13:47 [pbs-devel] [PATCH proxmox-backup 1/2] api/config: use param_bail for parameter errors Dominik Csapak
2022-03-04 13:47 ` [pbs-devel] [PATCH proxmox-backup 2/2] api/config: use http_bail for 'not found' errors Dominik Csapak
@ 2022-03-08 8:12 ` Wolfgang Bumiller
1 sibling, 0 replies; 3+ messages in thread
From: Wolfgang Bumiller @ 2022-03-08 8:12 UTC (permalink / raw)
To: Dominik Csapak; +Cc: pbs-devel
applied both patches, thanks
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-03-08 8:13 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-04 13:47 [pbs-devel] [PATCH proxmox-backup 1/2] api/config: use param_bail for parameter errors Dominik Csapak
2022-03-04 13:47 ` [pbs-devel] [PATCH proxmox-backup 2/2] api/config: use http_bail for 'not found' errors Dominik Csapak
2022-03-08 8:12 ` [pbs-devel] applied-series: [PATCH proxmox-backup 1/2] api/config: use param_bail for parameter errors Wolfgang Bumiller
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