public inbox for pdm-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Christian Ebner <c.ebner@proxmox.com>
To: pdm-devel@lists.proxmox.com
Subject: [pdm-devel] [PATCH datacenter-manager 4/6] pdm client: add method to scan remote PBS instances
Date: Mon, 22 Sep 2025 13:09:56 +0200	[thread overview]
Message-ID: <20250922110958.369653-5-c.ebner@proxmox.com> (raw)
In-Reply-To: <20250922110958.369653-1-c.ebner@proxmox.com>

Adds the PDM client method to perform API calls to the servers
scan remote endpoint for PBS, analogous to the PVE implementation.

Since this is mostly the same for both remote types, common code is
factored into a generic private helper method.

Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
---
 lib/pdm-client/src/lib.rs | 49 ++++++++++++++++++++++++++++-----------
 1 file changed, 35 insertions(+), 14 deletions(-)

diff --git a/lib/pdm-client/src/lib.rs b/lib/pdm-client/src/lib.rs
index e8a4ee5..f81de67 100644
--- a/lib/pdm-client/src/lib.rs
+++ b/lib/pdm-client/src/lib.rs
@@ -987,20 +987,8 @@ impl<T: HttpApiClient> PdmClient<T> {
         authid: &str,
         token: &str,
     ) -> Result<Remote, Error> {
-        let mut params = json!({
-            "hostname": hostname,
-            "authid": authid,
-            "token": token,
-        });
-        if let Some(fp) = fingerprint {
-            params["fingerprint"] = fp.into();
-        }
-        Ok(self
-            .0
-            .post("/api2/extjs/pve/scan", &params)
-            .await?
-            .expect_json()?
-            .data)
+        self.scan_remote(hostname, fingerprint, authid, token, RemoteType::Pve)
+            .await
     }
 
     pub async fn pve_sdn_list_controllers(
@@ -1083,6 +1071,39 @@ impl<T: HttpApiClient> PdmClient<T> {
         }
         Ok(self.0.post(&path, &params).await?.expect_json()?.data)
     }
+
+    /// Uses /pbs/scan to scan the remote cluster for node/fingerprint information
+    pub async fn pbs_scan_remote(
+        &self,
+        hostname: &str,
+        fingerprint: Option<&str>,
+        authid: &str,
+        token: &str,
+    ) -> Result<Remote, Error> {
+        self.scan_remote(hostname, fingerprint, authid, token, RemoteType::Pbs)
+            .await
+    }
+
+    /// Uses /{remote-type}/scan to scan the remote for node/fingerprint information
+    pub async fn scan_remote(
+        &self,
+        hostname: &str,
+        fingerprint: Option<&str>,
+        authid: &str,
+        token: &str,
+        remote_type: RemoteType,
+    ) -> Result<Remote, Error> {
+        let path = format!("/api2/extjs/{remote_type}/scan");
+        let mut params = json!({
+            "hostname": hostname,
+            "authid": authid,
+            "token": token,
+        });
+        if let Some(fp) = fingerprint {
+            params["fingerprint"] = fp.into();
+        }
+        Ok(self.0.post(&path, &params).await?.expect_json()?.data)
+    }
 }
 
 /// Builder for migration parameters.
-- 
2.47.3



_______________________________________________
pdm-devel mailing list
pdm-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel


  parent reply	other threads:[~2025-09-22 11:10 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-22 11:09 [pdm-devel] [PATCH datacenter-manager 0/6] ui/api: implement and expose adding PBS remotes via the ui wizard Christian Ebner
2025-09-22 11:09 ` [pdm-devel] [PATCH datacenter-manager 1/6] server: api: add TLS probe endpoint for PBS Christian Ebner
2025-09-22 11:09 ` [pdm-devel] [PATCH datacenter-manager 2/6] pdm-client: add method to probe TLS connection for PBS remotes Christian Ebner
2025-09-22 11:09 ` [pdm-devel] [PATCH datacenter-manager 3/6] server: api: implement endpoint to scan remote PBS instances Christian Ebner
2025-09-22 11:09 ` Christian Ebner [this message]
2025-09-22 11:09 ` [pdm-devel] [PATCH datacenter-manager 5/6] ui: remote: check connection for PBS remotes in remote add wizard Christian Ebner
2025-09-22 11:09 ` [pdm-devel] [PATCH datacenter-manager 6/6] ui: reorganize remote add button as dropdown menu to allow adding PBS Christian Ebner
2025-09-22 12:50 ` [pdm-devel] [PATCH datacenter-manager 0/6] ui/api: implement and expose adding PBS remotes via the ui wizard Lukas Wagner
2025-09-22 12:56   ` Christian Ebner
2025-09-22 17:59 ` [pdm-devel] applied-series: " Thomas Lamprecht

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250922110958.369653-5-c.ebner@proxmox.com \
    --to=c.ebner@proxmox.com \
    --cc=pdm-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal