public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: "Michael Köppl" <m.koeppl@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [PATCH test-tools 3/4] instance: source certificate and task types directly
Date: Thu, 10 Sep 2026 18:20:29 +0200	[thread overview]
Message-ID: <20260910162030.1776719-4-m.koeppl@proxmox.com> (raw)
In-Reply-To: <20260910162030.1776719-1-m.koeppl@proxmox.com>

Both types pdm-api-types provided here were a detour. CertificateInfo is
its re-export of proxmox_acme_api::CertificateInfo, so take it from
there. TaskStateType is simple enough to warrant a direct declaration
here.

This leaves proxmox-test-instance free of pdm crates.

Signed-off-by: Michael Köppl <m.koeppl@proxmox.com>
---
 proxmox-test-instance/Cargo.toml            |  2 +-
 proxmox-test-instance/src/api/pve_client.rs | 26 +++++++++++++++++++--
 2 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/proxmox-test-instance/Cargo.toml b/proxmox-test-instance/Cargo.toml
index 5a7c333..9cbfc9b 100644
--- a/proxmox-test-instance/Cargo.toml
+++ b/proxmox-test-instance/Cargo.toml
@@ -9,7 +9,6 @@ repository.workspace = true
 
 [dependencies]
 proxmox-test-common = { workspace = true }
-pdm-api-types = { workspace = true }
 
 anyhow.workspace = true
 dirs-next.workspace = true
@@ -28,6 +27,7 @@ termcolor.workspace = true
 tokio = { workspace = true, features = [ "rt" ]}
 toml.workspace = true
 
+proxmox-acme-api.workspace = true
 proxmox-async.workspace = true
 proxmox-auth-api = { workspace = true, features = [ "api-types" ] }
 proxmox-client = { workspace = true, features = ["hyper-client"] }
diff --git a/proxmox-test-instance/src/api/pve_client.rs b/proxmox-test-instance/src/api/pve_client.rs
index f719895..4e4c1f4 100644
--- a/proxmox-test-instance/src/api/pve_client.rs
+++ b/proxmox-test-instance/src/api/pve_client.rs
@@ -2,7 +2,7 @@ use std::net::Ipv4Addr;
 use std::{collections::HashSet, sync::Arc, time::Duration};
 
 use anyhow::{Context, Error, bail};
-use pdm_api_types::{CertificateInfo, TaskStateType};
+use proxmox_acme_api::CertificateInfo;
 use proxmox_client::{AuthenticationKind, Client, HttpApiClient, HttpApiResponse, TlsOptions};
 use proxmox_http::HttpOptions;
 use proxmox_login::Login;
@@ -33,6 +33,28 @@ const SHUTDOWN_TIMEOUT_SECS: u64 = 300;
 /// This does not cancel the server-side task; large or slow operations can outlive this deadline.
 const TASK_TIMEOUT: Duration = Duration::from_secs(60 * 60);
 
+/// The state a finished PVE task ended up in, as derived from its exit status.
+enum TaskStateType {
+    Ok,
+    Warning,
+    Error,
+    Unknown,
+}
+
+impl TaskStateType {
+    fn new_from_str(status: &str) -> Self {
+        if status == "unknown" || status.is_empty() {
+            TaskStateType::Unknown
+        } else if status == "OK" {
+            TaskStateType::Ok
+        } else if status.starts_with("WARNINGS: ") {
+            TaskStateType::Warning
+        } else {
+            TaskStateType::Error
+        }
+    }
+}
+
 #[derive(Debug)]
 struct TaskFailure {
     upid: String,
@@ -1049,7 +1071,7 @@ where
 
             let exitstatus = value["exitstatus"].as_str().unwrap_or("unknown");
             return match TaskStateType::new_from_str(exitstatus) {
-                TaskStateType::OK | TaskStateType::Warning => Ok(()),
+                TaskStateType::Ok | TaskStateType::Warning => Ok(()),
                 TaskStateType::Error | TaskStateType::Unknown => {
                     bail!(TaskFailure {
                         upid: upid.to_string(),
-- 
2.47.3





  parent reply	other threads:[~2026-09-10 16:20 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-10 16:20 [PATCH test-tools 0/4] remove PDM submodule Michael Köppl
2026-09-10 16:20 ` [PATCH test-tools 1/4] scheduler: drop the unused pdm-api-types dependency Michael Köppl
2026-09-10 16:20 ` [PATCH test-tools 2/4] instance: register PDM remotes without pdm-client Michael Köppl
2026-09-10 16:20 ` Michael Köppl [this message]
2026-09-10 16:20 ` [PATCH test-tools 4/4] buildsys: drop the proxmox-datacenter-manager submodule Michael Köppl

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=20260910162030.1776719-4-m.koeppl@proxmox.com \
    --to=m.koeppl@proxmox.com \
    --cc=pve-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