[pdm-devel] [PATCH datacenter-manager v3 17/19] pdm-api-types: extend resources by properties string generator method

Christian Ebner c.ebner at proxmox.com
Tue Oct 21 13:11:27 CEST 2025


Generates a list of comma separated values of properties to be
matched by the search functionality.

This will allow to define several properties on a resource which one
can match against. The current usecase is to match PBS datastores
based on properties such as if it is a removable datastore, if the
datastore has high usage or if the datastore is backed by S3.

Signed-off-by: Christian Ebner <c.ebner at proxmox.com>
---
Changes since version 2:
- not present in previous version

 lib/pdm-api-types/src/resource.rs | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/lib/pdm-api-types/src/resource.rs b/lib/pdm-api-types/src/resource.rs
index 7f74bf5..390e697 100644
--- a/lib/pdm-api-types/src/resource.rs
+++ b/lib/pdm-api-types/src/resource.rs
@@ -107,6 +107,22 @@ impl Resource {
             }
         }
     }
+
+    pub fn properties(&self) -> String {
+        let mut properties = Vec::new();
+        if let Resource::PbsDatastore(r) = self {
+            if let Some(backend_type) = &r.backend_type {
+                properties.push(backend_type.to_string());
+            }
+            if r.backing_device.is_some() {
+                properties.push("removable".to_string());
+            }
+            if r.usage > PBS_DATASTORE_HIGH_USAGE_THRESHOLD {
+                properties.push("high-usage".to_string());
+            }
+        }
+        properties.join(",")
+    }
 }
 
 #[api]
-- 
2.47.3





More information about the pdm-devel mailing list