diff --git a/pve-rs/src/bindings/sdn/fabrics.rs
b/pve-rs/src/bindings/sdn/fabrics.rs
index 099c1a7ab515..f5abb1b72099 100644
--- a/pve-rs/src/bindings/sdn/fabrics.rs
+++ b/pve-rs/src/bindings/sdn/fabrics.rs
@@ -46,6 +46,34 @@ pub mod pve_rs_sdn_fabrics {
perlmod::declare_magic!(Box<PerlFabricConfig> : &PerlFabricConfig as
"PVE::RS::SDN::Fabrics::Config");
+ /// Represents a interface as returned by the `GET /nodes/{node}/network`
endpoint in PVE.
an*
Done.
+ ///
+ /// This is used for returning fabrics in the endpoint, so they can be
used from various places
+ /// in the PVE UI (e.g. migration network settings).
+ #[derive(Serialize, Deserialize)]
It seems we currently only serialize this, so could drop the
`Deserialize` here since it's a private helper type anyway right now.
Agree.
+ struct PveInterface {
+ iface: String,
+ #[serde(rename = "type")]
+ ty: String,
+ active: bool,
+ #[serde(skip_serializing_if = "Option::is_none")]
+ cidr: Option<Ipv4Cidr>,
+ #[serde(skip_serializing_if = "Option::is_none")]
+ cidr6: Option<Ipv6Cidr>,
+ }
+
+ impl From<ConfigFabric> for PveInterface {
+ fn from(fabric: ConfigFabric) -> Self {
+ Self {
+ iface: fabric.id().to_string(),
+ ty: "fabric".to_string(),
+ active: true,
+ cidr: fabric.ip_prefix(),
+ cidr6: fabric.ip6_prefix(),
+ }
+ }
+ }
+
[snip]
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel