diff --git a/pbs-api-types/src/datastore.rs b/pbs-api-types/src/datastore.rs index 40ae3d7a..f78c7f26 100644 --- a/pbs-api-types/src/datastore.rs +++ b/pbs-api-types/src/datastore.rs @@ -25,7 +25,7 @@ const_regex! { pub BACKUP_DATE_REGEX = concat!(r"^", BACKUP_TIME_RE!() ,r"$"); pub GROUP_PATH_REGEX = concat!( - r"^(", BACKUP_NS_PATH_RE!(), r")?", + r"^(", BACKUP_NS_PATH_RE!(), r"/)?", r"(", BACKUP_TYPE_RE!(), ")/", r"(", BACKUP_ID_RE!(), r")$", ); diff --git a/pbs-api-types/src/lib.rs b/pbs-api-types/src/lib.rs index 4f40a27f..17eeb52b 100644 --- a/pbs-api-types/src/lib.rs +++ b/pbs-api-types/src/lib.rs @@ -47,16 +47,20 @@ macro_rules! BACKUP_NS_PATH_RE { macro_rules! SNAPSHOT_PATH_REGEX_STR { () => ( concat!( - r"(", BACKUP_NS_PATH_RE!(), ")?", + r"(?:(", BACKUP_NS_PATH_RE!(), ")/)?", r"(", BACKUP_TYPE_RE!(), ")/(", BACKUP_ID_RE!(), ")/(", BACKUP_TIME_RE!(), r")", ) ); } +#[rustfmt::skip] #[macro_export] macro_rules! GROUP_OR_SNAPSHOT_PATH_REGEX_STR { () => { - concat!(SNAPSHOT_PATH_REGEX_STR!(), "?") + concat!( + r"(?:(", BACKUP_NS_PATH_RE!(), ")/)?", + r"(", BACKUP_TYPE_RE!(), ")/(", BACKUP_ID_RE!(), ")(?:/(", BACKUP_TIME_RE!(), r"))?", + ) }; }