diff --git a/src/api2/config/remotes.rs b/src/api2/config/remotes.rs index 38e448ab..d0f185f5 100644 --- a/src/api2/config/remotes.rs +++ b/src/api2/config/remotes.rs @@ -3,6 +3,7 @@ use serde_json::Value; use proxmox::api::{api, ApiMethod, Router, RpcEnvironment}; +use crate::api2::types::*; use crate::config::remotes; #[api( @@ -34,7 +35,7 @@ pub fn list_remotes( input: { properties: { name: { - schema: remotes::REMOTE_ID_SCHEMA, + schema: REMOTE_ID_SCHEMA, }, comment: { optional: true, @@ -77,7 +78,7 @@ pub fn create_remote(name: String, param: Value) -> Result<(), Error> { input: { properties: { name: { - schema: remotes::REMOTE_ID_SCHEMA, + schema: REMOTE_ID_SCHEMA, }, }, }, diff --git a/src/api2/types.rs b/src/api2/types.rs index e89e951f..3a3365e7 100644 --- a/src/api2/types.rs +++ b/src/api2/types.rs @@ -117,6 +117,12 @@ pub const DATASTORE_SCHEMA: Schema = StringSchema::new("Datastore name.") .max_length(32) .schema(); +pub const REMOTE_ID_SCHEMA: Schema = StringSchema::new("Remote ID.") + .format(&PROXMOX_SAFE_ID_FORMAT) + .min_length(3) + .max_length(32) + .schema(); + // Complex type definitions diff --git a/src/bin/proxmox-backup-manager.rs b/src/bin/proxmox-backup-manager.rs index 6eeb30d5..d68d2df7 100644 --- a/src/bin/proxmox-backup-manager.rs +++ b/src/bin/proxmox-backup-manager.rs @@ -382,7 +382,7 @@ fn cert_mgmt_cli() -> CommandLineInterface { schema: DATASTORE_SCHEMA, }, remote: { - schema: crate::config::remotes::REMOTE_ID_SCHEMA, + schema: REMOTE_ID_SCHEMA, }, "remote-store": { schema: DATASTORE_SCHEMA, diff --git a/src/config/remotes.rs b/src/config/remotes.rs index b1180993..30ff257a 100644 --- a/src/config/remotes.rs +++ b/src/config/remotes.rs @@ -7,6 +7,7 @@ use proxmox::api::{api, schema::*}; use proxmox::tools::{fs::replace_file, fs::CreateOptions}; +use crate::api2::types::*; use crate::section_config::{SectionConfig, SectionConfigData, SectionConfigPlugin}; lazy_static! { @@ -15,10 +16,6 @@ lazy_static! { // fixme: define better schemas -pub const REMOTE_ID_SCHEMA: Schema = StringSchema::new("Remote ID.") - .min_length(3) - .schema(); - pub const COMMENT_SCHEMA: Schema = StringSchema::new("Comment").schema(); pub const REMOTE_HOST_SCHEMA: Schema = StringSchema::new("Host IP address or DNS name.").schema(); pub const REMOTE_USERID_SCHEMA: Schema = StringSchema::new("User ID").schema();