[pbs-devel] [PATCH proxmox-offline-mirror v2 1/3] type: move `ProductType` enum to `proxmox-subscription`
Stefan Sterz
s.sterz at proxmox.com
Wed Nov 29 15:51:14 CET 2023
Signed-off-by: Stefan Sterz <s.sterz at proxmox.com>
---
src/bin/proxmox-offline-mirror-helper.rs | 4 +-
src/bin/proxmox-offline-mirror.rs | 3 +-
src/bin/proxmox_offline_mirror_cmds/medium.rs | 4 +-
.../subscription.rs | 4 +-
src/config.rs | 4 +-
src/subscription.rs | 4 +-
src/types.rs | 44 +------------------
7 files changed, 13 insertions(+), 54 deletions(-)
diff --git a/src/bin/proxmox-offline-mirror-helper.rs b/src/bin/proxmox-offline-mirror-helper.rs
index e62206c..f1b4bd7 100644
--- a/src/bin/proxmox-offline-mirror-helper.rs
+++ b/src/bin/proxmox-offline-mirror-helper.rs
@@ -4,8 +4,8 @@ use std::{collections::HashMap, path::Path};
use anyhow::{bail, format_err, Error};
-use proxmox_offline_mirror::types::{ProductType, Snapshot};
-use proxmox_subscription::SubscriptionInfo;
+use proxmox_offline_mirror::types::Snapshot;
+use proxmox_subscription::{ProductType, SubscriptionInfo};
use proxmox_sys::command::run_command;
use proxmox_sys::fs::{replace_file, CreateOptions};
use proxmox_sys::{fs::file_get_contents, linux::tty};
diff --git a/src/bin/proxmox-offline-mirror.rs b/src/bin/proxmox-offline-mirror.rs
index d029d3d..a6d6c49 100644
--- a/src/bin/proxmox-offline-mirror.rs
+++ b/src/bin/proxmox-offline-mirror.rs
@@ -10,6 +10,7 @@ use serde_json::Value;
use proxmox_router::cli::{run_cli_command, CliCommand, CliCommandMap, CliEnvironment};
use proxmox_schema::api;
use proxmox_section_config::SectionConfigData;
+use proxmox_subscription::ProductType;
use proxmox_sys::linux::tty;
use proxmox_offline_mirror::helpers::tty::{
@@ -18,7 +19,7 @@ use proxmox_offline_mirror::helpers::tty::{
use proxmox_offline_mirror::{
config::{save_config, MediaConfig, MirrorConfig, SkipConfig},
mirror,
- types::{ProductType, MEDIA_ID_SCHEMA, MIRROR_ID_SCHEMA},
+ types::{MEDIA_ID_SCHEMA, MIRROR_ID_SCHEMA},
};
mod proxmox_offline_mirror_cmds;
diff --git a/src/bin/proxmox_offline_mirror_cmds/medium.rs b/src/bin/proxmox_offline_mirror_cmds/medium.rs
index 574f748..3f05d43 100644
--- a/src/bin/proxmox_offline_mirror_cmds/medium.rs
+++ b/src/bin/proxmox_offline_mirror_cmds/medium.rs
@@ -6,7 +6,7 @@ use serde_json::Value;
use proxmox_router::cli::{CliCommand, CliCommandMap, CommandLineInterface, OUTPUT_FORMAT};
use proxmox_schema::api;
use proxmox_section_config::SectionConfigData;
-use proxmox_subscription::SubscriptionInfo;
+use proxmox_subscription::{ProductType, SubscriptionInfo};
use proxmox_time::epoch_to_rfc3339_utc;
use proxmox_offline_mirror::{
@@ -14,7 +14,7 @@ use proxmox_offline_mirror::{
generate_repo_file_line,
medium::{self},
mirror,
- types::{ProductType, Snapshot, MEDIA_ID_SCHEMA},
+ types::{Snapshot, MEDIA_ID_SCHEMA},
};
use super::get_config_path;
diff --git a/src/bin/proxmox_offline_mirror_cmds/subscription.rs b/src/bin/proxmox_offline_mirror_cmds/subscription.rs
index e58b049..c5b8f3d 100644
--- a/src/bin/proxmox_offline_mirror_cmds/subscription.rs
+++ b/src/bin/proxmox_offline_mirror_cmds/subscription.rs
@@ -7,9 +7,9 @@ use std::convert::TryFrom;
use proxmox_offline_mirror::{
config::{SubscriptionKey, SubscriptionKeyUpdater},
subscription::{extract_mirror_key, refresh_mirror_key, refresh_offline_keys},
- types::{ProductType, PROXMOX_SUBSCRIPTION_KEY_SCHEMA},
+ types::PROXMOX_SUBSCRIPTION_KEY_SCHEMA,
};
-use proxmox_subscription::{files::DEFAULT_SIGNING_KEY, SubscriptionStatus};
+use proxmox_subscription::{files::DEFAULT_SIGNING_KEY, ProductType, SubscriptionStatus};
use proxmox_sys::fs::file_get_contents;
use proxmox_time::epoch_to_rfc3339_utc;
diff --git a/src/config.rs b/src/config.rs
index d0bc14e..9c75717 100644
--- a/src/config.rs
+++ b/src/config.rs
@@ -7,11 +7,11 @@ use serde::{Deserialize, Serialize};
use proxmox_schema::{api, ApiStringFormat, ApiType, Schema, Updater};
use proxmox_section_config::{SectionConfig, SectionConfigData, SectionConfigPlugin};
+use proxmox_subscription::ProductType;
use proxmox_sys::fs::{replace_file, CreateOptions};
use crate::types::{
- ProductType, MEDIA_ID_SCHEMA, MIRROR_ID_SCHEMA, PROXMOX_SERVER_ID_SCHEMA,
- PROXMOX_SUBSCRIPTION_KEY_SCHEMA,
+ MEDIA_ID_SCHEMA, MIRROR_ID_SCHEMA, PROXMOX_SERVER_ID_SCHEMA, PROXMOX_SUBSCRIPTION_KEY_SCHEMA,
};
/// Skip Configuration
diff --git a/src/subscription.rs b/src/subscription.rs
index 91b7bdb..3f0c776 100644
--- a/src/subscription.rs
+++ b/src/subscription.rs
@@ -5,10 +5,10 @@ use proxmox_http::{HttpClient, HttpOptions, ProxyConfig};
use proxmox_subscription::SubscriptionStatus;
use proxmox_subscription::{
sign::{SignRequest, SignedResponse},
- SubscriptionInfo,
+ ProductType, SubscriptionInfo,
};
-use crate::{config::SubscriptionKey, types::ProductType};
+use crate::config::SubscriptionKey;
// TODO: Update with final, public URL
const PRODUCT_URL: &str = "-";
diff --git a/src/types.rs b/src/types.rs
index 3098a8d..7544d5e 100644
--- a/src/types.rs
+++ b/src/types.rs
@@ -1,10 +1,9 @@
use std::{fmt::Display, path::PathBuf, str::FromStr};
use anyhow::Error;
-use proxmox_schema::{api, const_regex, ApiStringFormat, Schema, StringSchema, Updater};
+use proxmox_schema::{api, const_regex, ApiStringFormat, Schema, StringSchema};
use proxmox_serde::{forward_deserialize_to_from_str, forward_serialize_to_display};
use proxmox_time::{epoch_i64, epoch_to_rfc3339_utc, parse_rfc3339};
-use serde::{Deserialize, Serialize};
#[rustfmt::skip]
#[macro_export]
@@ -100,47 +99,6 @@ impl FromStr for Snapshot {
}
}
-#[api()]
-#[derive(Debug, Clone, Serialize, Deserialize, Updater, PartialEq, Eq)]
-#[serde(rename_all = "lowercase")]
-/// Product type
-pub enum ProductType {
- /// Proxmox Virtual Environment
- Pve,
- /// Proxmox Backup Server
- Pbs,
- /// Proxmox Mail Gateway
- Pmg,
- /// Proxmox Offline Mirror
- Pom,
-}
-
-impl Display for ProductType {
- fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
- let txt = match self {
- ProductType::Pve => "pve",
- ProductType::Pbs => "pbs",
- ProductType::Pmg => "pmg",
- ProductType::Pom => "pom",
- };
- f.write_str(txt)
- }
-}
-
-impl FromStr for ProductType {
- type Err = Error;
-
- fn from_str(s: &str) -> Result<Self, Self::Err> {
- match s {
- "pve" => Ok(ProductType::Pve),
- "pmg" => Ok(ProductType::Pmg),
- "pbs" => Ok(ProductType::Pbs),
- "pom" => Ok(ProductType::Pom),
- _ => unimplemented!(),
- }
- }
-}
-
/// Entries of Diff
#[derive(Default)]
pub struct DiffMember {
--
2.39.2
More information about the pbs-devel
mailing list