[pdm-devel] [PATCH datacenter-manager 3/4] api: pve: make to `get_storage_rrd_data` return PveStorageDataPoint

Shannon Sterz s.sterz at proxmox.com
Fri Nov 28 16:38:54 CET 2025


this worked so far by accident as `NodeDataPoint` has the field that
are also specified in `PveStorageDataPoint`, but marks all additional
fields as optional. fix this by using the proper return type.
pdm-client already uses the correct return type anyway.

Signed-off-by: Shannon Sterz <s.sterz at proxmox.com>
---
 server/src/api/pve/rrddata.rs | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/server/src/api/pve/rrddata.rs b/server/src/api/pve/rrddata.rs
index 226b675..08db107 100644
--- a/server/src/api/pve/rrddata.rs
+++ b/server/src/api/pve/rrddata.rs
@@ -289,8 +289,15 @@ async fn get_node_rrd_data(
     access: {
         permission: &Permission::Privilege(&["resource", "{remote}", "storage", "{storage}"], PRIV_RESOURCE_AUDIT, false),
     },
+    returns: {
+        type: Array,
+        description:"A list of RRD data points on a PVE remote's storage.",
+        items: {
+            type: PveStorageDataPoint,
+        }
+    }
 )]
-/// Read node stats
+/// Read storage stats
 async fn get_storage_rrd_data(
     remote: String,
     node: String,
@@ -298,7 +305,7 @@ async fn get_storage_rrd_data(
     timeframe: RrdTimeframe,
     cf: RrdMode,
     _param: Value,
-) -> Result<Vec<NodeDataPoint>, Error> {
+) -> Result<Vec<PveStorageDataPoint>, Error> {
     let base = format!("pve/{remote}/storage/{node}/{storage}");
     rrd_common::get_rrd_datapoints(remote, base, timeframe, cf).await
 }
-- 
2.47.3





More information about the pdm-devel mailing list