src/api2/types.rs: add schema/format for file names
This commit is contained in:
parent
e3dbd41b20
commit
4e93f8c164
|
@ -159,7 +159,7 @@ Download the dynamic chunk index from the previous backup.
|
||||||
Simply returns an empty list if this is the first backup.
|
Simply returns an empty list if this is the first backup.
|
||||||
"###
|
"###
|
||||||
)
|
)
|
||||||
.required("archive-name", StringSchema::new("Backup archive name."))
|
.required("archive-name", crate::api2::types::BACKUP_ARCHIVE_NAME_SCHEMA.clone())
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -167,7 +167,7 @@ pub fn api_method_create_dynamic_index() -> ApiMethod {
|
||||||
ApiMethod::new(
|
ApiMethod::new(
|
||||||
create_dynamic_index,
|
create_dynamic_index,
|
||||||
ObjectSchema::new("Create dynamic chunk index file.")
|
ObjectSchema::new("Create dynamic chunk index file.")
|
||||||
.required("archive-name", StringSchema::new("Backup archive name."))
|
.required("archive-name", crate::api2::types::BACKUP_ARCHIVE_NAME_SCHEMA.clone())
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,17 @@ use crate::tools::{self, common_regex};
|
||||||
|
|
||||||
lazy_static!{
|
lazy_static!{
|
||||||
|
|
||||||
|
// File names: may not contain slashes, may not start with "."
|
||||||
|
pub static ref FILENAME_FORMAT: Arc<ApiStringFormat> = Arc::new(ApiStringFormat::VerifyFn(|name| {
|
||||||
|
if name.starts_with('.') {
|
||||||
|
bail!("file names may not start with '.'");
|
||||||
|
}
|
||||||
|
if name.contains('/') {
|
||||||
|
bail!("file names may not contain slashes");
|
||||||
|
}
|
||||||
|
Ok(())
|
||||||
|
})).into();
|
||||||
|
|
||||||
pub static ref IP_FORMAT: Arc<ApiStringFormat> = ApiStringFormat::Pattern(&common_regex::IP_REGEX).into();
|
pub static ref IP_FORMAT: Arc<ApiStringFormat> = ApiStringFormat::Pattern(&common_regex::IP_REGEX).into();
|
||||||
|
|
||||||
pub static ref PVE_CONFIG_DIGEST_FORMAT: Arc<ApiStringFormat> =
|
pub static ref PVE_CONFIG_DIGEST_FORMAT: Arc<ApiStringFormat> =
|
||||||
|
@ -23,7 +34,7 @@ lazy_static!{
|
||||||
if node == "localhost" || node == tools::nodename() {
|
if node == "localhost" || node == tools::nodename() {
|
||||||
Ok(())
|
Ok(())
|
||||||
} else {
|
} else {
|
||||||
Err(format_err!("no such node '{}'", node))
|
bail!("no such node '{}'", node);
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
)
|
)
|
||||||
|
@ -45,5 +56,8 @@ lazy_static!{
|
||||||
StringSchema::new("Third name server IP address.")
|
StringSchema::new("Third name server IP address.")
|
||||||
.format(IP_FORMAT.clone()).into();
|
.format(IP_FORMAT.clone()).into();
|
||||||
|
|
||||||
|
pub static ref BACKUP_ARCHIVE_NAME_SCHEMA: Arc<Schema> =
|
||||||
|
StringSchema::new("Backup archive name.")
|
||||||
|
.format(FILENAME_FORMAT.clone()).into();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue