From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 851CB1FF189 for ; Thu, 4 Sep 2025 10:19:02 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id CAD2C1EF08; Thu, 4 Sep 2025 10:19:13 +0200 (CEST) From: Stefan Hanreich To: pdm-devel@lists.proxmox.com Date: Thu, 4 Sep 2025 10:18:40 +0200 Message-ID: <20250904081900.12655-16-s.hanreich@proxmox.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250904081900.12655-1-s.hanreich@proxmox.com> References: <20250904081900.12655-1-s.hanreich@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.186 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 KAM_LAZY_DOMAIN_SECURITY 1 Sending domain does not have any anti-forgery methods RDNS_NONE 0.793 Delivered to internal network by a host with no rDNS SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_NONE 0.001 SPF: sender does not publish an SPF Record Subject: [pdm-devel] [PATCH proxmox-api-types v4 6/6] sdn: add helpers for pending values X-BeenThere: pdm-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Datacenter Manager development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Datacenter Manager development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pdm-devel-bounces@lists.proxmox.com Sender: "pdm-devel" The SDN API returns pending values in the pending field of the entity. Add helpers that return the pending value if it exists, or the actual value if there is no pending value for that field. Signed-off-by: Stefan Hanreich --- pve-api-types/src/lib.rs | 1 + pve-api-types/src/sdn.rs | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 pve-api-types/src/sdn.rs diff --git a/pve-api-types/src/lib.rs b/pve-api-types/src/lib.rs index 709192d..b42a0c7 100644 --- a/pve-api-types/src/lib.rs +++ b/pve-api-types/src/lib.rs @@ -7,4 +7,5 @@ pub use types::*; #[cfg(feature = "client-util")] pub mod client; +mod sdn; mod tags; diff --git a/pve-api-types/src/sdn.rs b/pve-api-types/src/sdn.rs new file mode 100644 index 0000000..000da6f --- /dev/null +++ b/pve-api-types/src/sdn.rs @@ -0,0 +1,33 @@ +use crate::{SdnController, SdnVnet, SdnZone}; + +impl SdnVnet { + /// returns the tag from the pending property if it has a value, otherwise it returns self.tag + pub fn tag_pending(&self) -> Option { + self.pending + .as_ref() + .and_then(|pending| pending.tag) + .or(self.tag) + } + + /// returns the zone from the pending property if it has a value, otherwise it returns + /// self.zone + pub fn zone_pending(&self) -> String { + self.pending + .as_ref() + .and_then(|pending| pending.zone.clone()) + .or_else(|| self.zone.clone()) + .expect("zone must be set in either pending or root") + } +} + +impl SdnZone {} + +impl SdnController { + /// returns the ASN from the pending property if it has a value, otherwise it returns self.asn + pub fn asn_pending(&self) -> Option { + self.pending + .as_ref() + .and_then(|pending| pending.asn) + .or(self.asn) + } +} -- 2.47.2 _______________________________________________ pdm-devel mailing list pdm-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel