public inbox for pdm-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Stefan Hanreich <s.hanreich@proxmox.com>
To: pdm-devel@lists.proxmox.com
Subject: [pdm-devel] [PATCH proxmox-api-types v2 7/7] sdn: add helpers for pending values
Date: Fri, 22 Aug 2025 15:49:22 +0200	[thread overview]
Message-ID: <20250822134942.380480-17-s.hanreich@proxmox.com> (raw)
In-Reply-To: <20250822134942.380480-1-s.hanreich@proxmox.com>

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 <s.hanreich@proxmox.com>
---
 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<u32> {
+        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<u32> {
+        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


  parent reply	other threads:[~2025-08-22 13:55 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-22 13:49 [pdm-devel] [RFC network/proxmox{, -backup, -api-types, -yew-comp, -datacenter-manager} v2 00/32] Add initial SDN / EVPN integration Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH proxmox v2 1/2] schema: use i64 for minimum / maximum / default integer values Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH proxmox v2 2/2] pbs-api-types: fix values for integer schemas Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH proxmox-backup v2 1/1] api: change integer schema parameters to i64 Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH pve-network v2 1/6] sdn: api: return null for rollback / lock endpoints Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH pve-network v2 2/6] controllers: fix maximum value for ASN Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH pve-network v2 3/6] api: add state standard option Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH pve-network v2 4/6] api: controllers: update schema of endpoints Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH pve-network v2 5/6] api: vnets: " Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH pve-network v2 6/6] api: zones: " Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH proxmox-api-types v2 1/7] add QemuMigratePreconditionsNotAllowedNodesBlockingHaResources struct Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH proxmox-api-types v2 2/7] sdn: add list/create zone endpoints Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH proxmox-api-types v2 3/7] sdn: add list/create vnet endpoints Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH proxmox-api-types v2 4/7] sdn: add list/create controller endpoints Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH proxmox-api-types v2 5/7] sdn: add sdn configuration locking endpoints Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH proxmox-api-types v2 6/7] tasks: add helper for querying successfully finished tasks Stefan Hanreich
2025-08-22 13:49 ` Stefan Hanreich [this message]
2025-08-22 13:49 ` [pdm-devel] [PATCH proxmox-yew-comp v2 1/1] sdn: add descriptions for sdn tasks Stefan Hanreich
2025-08-26 13:22   ` Dominik Csapak
2025-08-26 14:06     ` Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH proxmox-datacenter-manager v2 01/15] server: add locked sdn client helpers Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH proxmox-datacenter-manager v2 02/15] api: sdn: add list_zones endpoint Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH proxmox-datacenter-manager v2 03/15] api: sdn: add create_zone endpoint Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH proxmox-datacenter-manager v2 04/15] api: sdn: add list_vnets endpoint Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH proxmox-datacenter-manager v2 05/15] api: sdn: add create_vnet endpoint Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH proxmox-datacenter-manager v2 06/15] api: sdn: add list_controllers endpoint Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH proxmox-datacenter-manager v2 07/15] ui: sdn: add EvpnRouteTarget type Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH proxmox-datacenter-manager v2 08/15] ui: sdn: add vnet icon Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH proxmox-datacenter-manager v2 09/15] ui: sdn: add remote tree component Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH proxmox-datacenter-manager v2 10/15] ui: add view for showing ip vrfs Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH proxmox-datacenter-manager v2 11/15] ui: sdn: add AddVnetWindow component Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH proxmox-datacenter-manager v2 12/15] ui: sdn: add AddZoneWindow component Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH proxmox-datacenter-manager v2 13/15] ui: sdn: add EvpnPanel Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH proxmox-datacenter-manager v2 14/15] ui: sdn: add EvpnPanel to main menu Stefan Hanreich
2025-08-22 13:49 ` [pdm-devel] [PATCH proxmox-datacenter-manager v2 15/15] pve: sdn: add descriptions for sdn tasks Stefan Hanreich
2025-08-26 12:22 ` [pdm-devel] [RFC network/proxmox{, -backup, -api-types, -yew-comp, -datacenter-manager} v2 00/32] Add initial SDN / EVPN integration Gabriel Goller
2025-08-26 14:06   ` Stefan Hanreich
2025-08-26 14:12     ` Dominik Csapak
2025-08-26 14:13       ` Stefan Hanreich
2025-08-26 14:24 ` Dominik Csapak
2025-08-26 14:25   ` Stefan Hanreich
2025-08-27 11:35 ` [pdm-devel] superseded: " Stefan Hanreich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250822134942.380480-17-s.hanreich@proxmox.com \
    --to=s.hanreich@proxmox.com \
    --cc=pdm-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal