[pdm-devel] [PATCH datacenter-manager 5/7] pdm-client: add pve storage status/rrddata methods
Dominik Csapak
d.csapak at proxmox.com
Mon Sep 8 16:04:16 CEST 2025
Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
lib/pdm-client/src/lib.rs | 30 +++++++++++++++++++++++++++++-
1 file changed, 29 insertions(+), 1 deletion(-)
diff --git a/lib/pdm-client/src/lib.rs b/lib/pdm-client/src/lib.rs
index da1ad43..845738f 100644
--- a/lib/pdm-client/src/lib.rs
+++ b/lib/pdm-client/src/lib.rs
@@ -6,7 +6,8 @@ use std::time::Duration;
use pdm_api_types::remotes::TlsProbeOutcome;
use pdm_api_types::resource::{PveResource, RemoteResources, TopEntities};
use pdm_api_types::rrddata::{
- LxcDataPoint, NodeDataPoint, PbsDatastoreDataPoint, PbsNodeDataPoint, QemuDataPoint,
+ LxcDataPoint, NodeDataPoint, PbsDatastoreDataPoint, PbsNodeDataPoint, PveStorageDataPoint,
+ QemuDataPoint,
};
use pdm_api_types::sdn::{ListVnet, ListZone};
use pdm_api_types::BasicRealmInfo;
@@ -63,6 +64,8 @@ pub mod types {
CreateVnetParams, CreateZoneParams, ListController, ListVnet, ListZone, SDN_ID_SCHEMA,
};
pub use pve_api_types::{ListControllersType, ListZonesType, SdnObjectState};
+
+ pub use pve_api_types::StorageStatus as PveStorageStatus;
}
pub struct PdmClient<T: HttpApiClient>(pub T);
@@ -903,6 +906,31 @@ impl<T: HttpApiClient> PdmClient<T> {
Ok(self.0.get(&path).await?.expect_json()?.data)
}
+ pub async fn pve_storage_status(
+ &self,
+ remote: &str,
+ node: &str,
+ storage: &str,
+ ) -> Result<PveStorageStatus, Error> {
+ let path =
+ format!("/api2/extjs/pve/remotes/{remote}/nodes/{node}/storage/{storage}/status");
+ Ok(self.0.get(&path).await?.expect_json()?.data)
+ }
+
+ pub async fn pve_storage_rrddata(
+ &self,
+ remote: &str,
+ node: &str,
+ storage: &str,
+ mode: RrdMode,
+ timeframe: RrdTimeframe,
+ ) -> Result<Vec<PveStorageDataPoint>, Error> {
+ let path = format!(
+ "/api2/extjs/pve/remotes/{remote}/nodes/{node}/storage/{storage}/rrddata?cf={mode}&timeframe={timeframe}"
+ );
+ Ok(self.0.get(&path).await?.expect_json()?.data)
+ }
+
pub async fn get_top_entities(&self) -> Result<TopEntities, Error> {
let path = "/api2/extjs/resources/top-entities";
Ok(self.0.get(path).await?.expect_json()?.data)
--
2.47.2
More information about the pdm-devel
mailing list