From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id DE314B3D91 for ; Wed, 29 Nov 2023 15:51:27 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id C9AC99CE7 for ; Wed, 29 Nov 2023 15:51:27 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Wed, 29 Nov 2023 15:51:26 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 7E8B240F51 for ; Wed, 29 Nov 2023 15:51:26 +0100 (CET) From: Stefan Sterz To: pbs-devel@lists.proxmox.com Date: Wed, 29 Nov 2023 15:51:14 +0100 Message-Id: <20231129145116.202049-2-s.sterz@proxmox.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231129145116.202049-1-s.sterz@proxmox.com> References: <20231129145116.202049-1-s.sterz@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.084 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record T_SCC_BODY_TEXT_LINE -0.01 - Subject: [pbs-devel] [PATCH proxmox-offline-mirror v2 1/3] type: move `ProductType` enum to `proxmox-subscription` X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Nov 2023 14:51:27 -0000 Signed-off-by: Stefan Sterz --- 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 { - 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