[pdm-devel] [PATCH datacenter-manager 02/11] server: api: pbs: add status api call

Dominik Csapak d.csapak at proxmox.com
Fri Sep 26 09:20:22 CEST 2025


Corresponds to /nodes/localhost/status api call on the pbs side.
Since we only have one node per PBS remote, we don't need to have a
'nodes' path here.

Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
 server/src/api/pbs/mod.rs | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/server/src/api/pbs/mod.rs b/server/src/api/pbs/mod.rs
index 4473c6c8..1250c490 100644
--- a/server/src/api/pbs/mod.rs
+++ b/server/src/api/pbs/mod.rs
@@ -39,6 +39,7 @@ pub const MAIN_ROUTER: Router = Router::new()
 
 #[sortable]
 const REMOTE_SUBDIRS: SubdirMap = &sorted!([
+    ("status", &Router::new().get(&API_METHOD_GET_STATUS)),
     ("rrddata", &rrddata::PBS_NODE_RRD_ROUTER),
     ("datastore", &DATASTORE_ROUTER)
 ]);
@@ -233,3 +234,20 @@ pub async fn scan_remote_pbs(
 
     Ok(remote)
 }
+
+#[api(
+    input: {
+        properties: {
+            remote: { schema: REMOTE_ID_SCHEMA },
+        },
+    },
+    access: {
+        permission: &Permission::Privilege(&["resource", "{remote}", "node", "{node}"], PRIV_RESOURCE_AUDIT, false),
+    },
+)]
+/// Get status for the PBS remote
+async fn get_status(remote: String) -> Result<pbs_api_types::NodeStatus, Error> {
+    let (remotes, _) = pdm_config::remotes::config()?;
+    let remote = get_remote(&remotes, &remote)?;
+    Ok(connection::make_pbs_client(remote)?.node_status().await?)
+}
-- 
2.47.3





More information about the pdm-devel mailing list