From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [IPv6:2a0f:8001:1:32::40]) by lore.proxmox.com (Postfix) with ESMTPS id 542CB1FF0B7 for ; Fri, 02 Oct 2026 11:36:48 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 1C94F2172E; Fri, 02 Oct 2026 11:36:38 +0200 (CEST) From: Lukas Wagner To: pdm-devel@lists.proxmox.com Subject: [PATCH datacenter-manager v6 20/21] pdm-config: subscriptions: drop unused accessor functions Date: Fri, 2 Oct 2026 11:36:15 +0200 Message-ID: <20261002093616.206933-21-l.wagner@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20261002093616.206933-1-l.wagner@proxmox.com> References: <20261002093616.206933-1-l.wagner@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1790933784395 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.378 Adjusted score from AWL reputation of From: address DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment (newer systems) RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: GT6QYQYCDDUVOGPCMHVDGV36SLPS7G6E X-Message-ID-Hash: GT6QYQYCDDUVOGPCMHVDGV36SLPS7G6E X-MailFrom: l.wagner@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox Datacenter Manager development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Now that the subscription API handlers reach the config through PdmApplication instead, the free functions built on top of the global INSTANCE static are unused. Drop them along with the init() call that used to populate it. Signed-off-by: Lukas Wagner --- lib/pdm-config/src/subscriptions.rs | 44 +---------------------------- server/src/context/mod.rs | 1 - 2 files changed, 1 insertion(+), 44 deletions(-) diff --git a/lib/pdm-config/src/subscriptions.rs b/lib/pdm-config/src/subscriptions.rs index 5be88a13..16a739de 100644 --- a/lib/pdm-config/src/subscriptions.rs +++ b/lib/pdm-config/src/subscriptions.rs @@ -1,14 +1,9 @@ -//! Read/write subscription key pool configuration. -//! -//! Call [`init`] to inject a concrete `SubscriptionKeyConfig` instance before using the -//! module-level functions. +//! Read/write/lock implementation for subscription key pool configuration. //! //! The shadow-config functions stash signed `SubscriptionInfo` blobs alongside the plain key //! entries, which is intended as future proofing for a more automated (shop) import without having //! to adapt the data layer. -use std::sync::OnceLock; - use anyhow::Error; use proxmox_config_digest::ConfigDigest; @@ -25,37 +20,6 @@ pub const SUBSCRIPTIONS_CFG_FILENAME: &str = configdir!("/subscriptions/keys.cfg const SUBSCRIPTIONS_SHADOW_FILENAME: &str = configdir!("/subscriptions/keys.shadow"); pub const SUBSCRIPTIONS_CFG_LOCKFILE: &str = configdir!("/subscriptions/.keys.lock"); -static INSTANCE: OnceLock> = OnceLock::new(); - -fn instance() -> &'static (dyn SubscriptionKeyConfig + Send + Sync) { - INSTANCE - .get() - .expect("subscription key config not initialized") - .as_ref() -} - -pub fn lock_config() -> Result { - instance().lock() -} - -pub fn config() -> Result<(SectionConfigData, ConfigDigest), Error> { - instance().read() -} - -pub fn shadow_config() -> Result, Error> { - instance().read_shadow() -} - -pub fn save_config( - config: &SectionConfigData, -) -> Result { - instance().write(config) -} - -pub fn save_shadow(shadow: &SectionConfigData) -> Result<(), Error> { - instance().write_shadow(shadow) -} - pub trait SubscriptionKeyConfig { fn read(&self) -> Result<(SectionConfigData, ConfigDigest), Error>; fn read_shadow(&self) -> Result, Error>; @@ -110,9 +74,3 @@ impl SubscriptionKeyConfig for DefaultSubscriptionKeyConfig { replace_secret_config(SUBSCRIPTIONS_SHADOW_FILENAME, raw.as_bytes()) } } - -pub fn init(instance: Box) { - if INSTANCE.set(instance).is_err() { - panic!("subscription key config instance already set"); - } -} diff --git a/server/src/context/mod.rs b/server/src/context/mod.rs index 6d1d9b1f..be7de07d 100644 --- a/server/src/context/mod.rs +++ b/server/src/context/mod.rs @@ -34,7 +34,6 @@ pub fn init() -> Result { // anyway, and the implementation is stateless, so having this second // instance is not an issue *currently*. pdm_config::remotes::init(factory.make_remote_config()?); - pdm_config::subscriptions::init(factory.make_subscription_key_config()?); Ok(app) } -- 2.47.3