From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id B6AFA1FF179 for ; Wed, 15 Oct 2025 14:47:11 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id BFE381B1B1; Wed, 15 Oct 2025 14:47:24 +0200 (CEST) From: Lukas Wagner To: pdm-devel@lists.proxmox.com Date: Wed, 15 Oct 2025 14:47:06 +0200 Message-ID: <20251015124711.312943-8-l.wagner@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251015124711.312943-1-l.wagner@proxmox.com> References: <20251015124711.312943-1-l.wagner@proxmox.com> MIME-Version: 1.0 X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1760532437530 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.027 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pdm-devel] [PATCH proxmox-datacenter-manager 07/12] pbs-client: add bindings for APT-related API calls X-BeenThere: pdm-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Datacenter Manager development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Datacenter Manager development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pdm-devel-bounces@lists.proxmox.com Sender: "pdm-devel" This commit adds bindings for the following API methods: GET /node//apt/update POST /node//apt/update GET /node//apt/changelog Signed-off-by: Lukas Wagner --- server/src/pbs_client.rs | 51 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/server/src/pbs_client.rs b/server/src/pbs_client.rs index d8278c8a..f106c82b 100644 --- a/server/src/pbs_client.rs +++ b/server/src/pbs_client.rs @@ -114,6 +114,17 @@ pub struct DatstoreListNamespaces { pub max_depth: Option, } +#[api] +/// Parameters for updating the APT database +#[derive(serde::Deserialize, serde::Serialize)] +#[serde(rename_all = "kebab-case")] +pub struct AptUpdateParams { + /// Send notification in case of new updates. + pub notify: Option, + /// Don't show progress information in the output. + pub quiet: Option, +} + impl PbsClient { /// API version details, including some parts of the global datacenter config. pub async fn version(&self) -> Result { @@ -268,6 +279,46 @@ impl PbsClient { .expect_json()? .data) } + + /// Return a list of available system updates. + pub async fn list_available_updates(&self) -> Result, Error> { + Ok(self + .0 + .get("/api2/extjs/nodes/localhost/apt/update") + .await? + .expect_json()? + .data) + } + + /// Update the APT database. + pub async fn update_apt_database( + &self, + params: AptUpdateParams, + ) -> Result { + Ok(self + .0 + .post("/api2/extjs/nodes/localhost/apt/update", ¶ms) + .await? + .expect_json()? + .data) + } + + /// Get changelog for a single package. + /// + /// `package`: Package name to get the changelog of. + /// `version`: Package version to get changelog of. Omit to use candidate version. + pub async fn get_package_changelog( + &self, + package: String, + version: Option, + ) -> Result { + let path = ApiPathBuilder::new("/api2/extjs/nodes/localhost/apt/changelog") + .arg("name", &package) + .maybe_arg("version", &version) + .build(); + + Ok(self.0.get(&path).await?.expect_json()?.data) + } } #[derive(Deserialize)] -- 2.47.3 _______________________________________________ pdm-devel mailing list pdm-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel