From cc652721306dba4943a8a433e6d024f2f390275f Mon Sep 17 00:00:00 2001 From: Wolfgang Bumiller Date: Wed, 20 Apr 2022 11:45:53 +0200 Subject: [PATCH] api-types: use BackupType for GroupFilter::BackupType instead of a string Signed-off-by: Wolfgang Bumiller --- pbs-api-types/src/datastore.rs | 2 +- pbs-api-types/src/jobs.rs | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/pbs-api-types/src/datastore.rs b/pbs-api-types/src/datastore.rs index de4d51a1..7b988b93 100644 --- a/pbs-api-types/src/datastore.rs +++ b/pbs-api-types/src/datastore.rs @@ -499,7 +499,7 @@ impl BackupGroup { Err(_) => false, // shouldn't happen if value is schema-checked } } - GroupFilter::BackupType(backup_type) => self.ty.as_str() == backup_type, + GroupFilter::BackupType(ty) => self.ty == *ty, GroupFilter::Regex(regex) => regex.is_match(&self.to_string()), } } diff --git a/pbs-api-types/src/jobs.rs b/pbs-api-types/src/jobs.rs index e859e755..6da6a1b2 100644 --- a/pbs-api-types/src/jobs.rs +++ b/pbs-api-types/src/jobs.rs @@ -7,7 +7,7 @@ use serde::{Deserialize, Serialize}; use proxmox_schema::*; use crate::{ - Authid, RateLimitConfig, Userid, BACKUP_GROUP_SCHEMA, BACKUP_TYPE_SCHEMA, DATASTORE_SCHEMA, + Authid, BackupType, RateLimitConfig, Userid, BACKUP_GROUP_SCHEMA, DATASTORE_SCHEMA, DRIVE_NAME_SCHEMA, MEDIA_POOL_NAME_SCHEMA, PROXMOX_SAFE_ID_FORMAT, REMOTE_ID_SCHEMA, SINGLE_LINE_COMMENT_SCHEMA, }; @@ -342,8 +342,7 @@ pub struct TapeBackupJobStatus { /// Filter for matching `BackupGroup`s, for use with `BackupGroup::filter`. pub enum GroupFilter { /// BackupGroup type - either `vm`, `ct`, or `host`. - // FIXME: Should be `BackupType` - BackupType(String), + BackupType(BackupType), /// Full identifier of BackupGroup, including type Group(String), /// A regular expression matched against the full identifier of the BackupGroup @@ -356,7 +355,7 @@ impl std::str::FromStr for GroupFilter { fn from_str(s: &str) -> Result { match s.split_once(":") { Some(("group", value)) => BACKUP_GROUP_SCHEMA.parse_simple_value(value).map(|_| GroupFilter::Group(value.to_string())), - Some(("type", value)) => BACKUP_TYPE_SCHEMA.parse_simple_value(value).map(|_| GroupFilter::BackupType(value.to_string())), + Some(("type", value)) => Ok(GroupFilter::BackupType(value.parse()?)), Some(("regex", value)) => Ok(GroupFilter::Regex(Regex::new(value)?)), Some((ty, _value)) => Err(format_err!("expected 'group', 'type' or 'regex' prefix, got '{}'", ty)), None => Err(format_err!("input doesn't match expected format '|regex:REGEX>'")),