[pdm-devel] [PATCH datacenter-manager v2 06/11] pdm-api-types: extend resource status by list of failed remotes
Christian Ebner
c.ebner at proxmox.com
Fri Oct 17 16:11:32 CEST 2025
Currently only the count of failed remotes is returned via the
status. Include the list of failed remotes including the name,
remote type and error message.
This will be used to extend the dashboard panel.
Signed-off-by: Christian Ebner <c.ebner at proxmox.com>
---
changes since version 1:
- no changes
lib/pdm-api-types/src/remotes.rs | 3 ++-
lib/pdm-api-types/src/resource.rs | 28 ++++++++++++++++++++++++++--
2 files changed, 28 insertions(+), 3 deletions(-)
diff --git a/lib/pdm-api-types/src/remotes.rs b/lib/pdm-api-types/src/remotes.rs
index 6318943..dd6afa6 100644
--- a/lib/pdm-api-types/src/remotes.rs
+++ b/lib/pdm-api-types/src/remotes.rs
@@ -39,10 +39,11 @@ pub struct NodeUrl {
#[api]
/// The type of a remote entry.
-#[derive(Clone, Copy, Debug, Eq, PartialEq, Deserialize, Serialize, Ord, PartialOrd)]
+#[derive(Clone, Copy, Default, Debug, Eq, PartialEq, Deserialize, Serialize, Ord, PartialOrd)]
#[serde(rename_all = "lowercase")]
pub enum RemoteType {
/// A Proxmox VE node.
+ #[default]
Pve,
/// A Proxmox Backup Server node.
Pbs,
diff --git a/lib/pdm-api-types/src/resource.rs b/lib/pdm-api-types/src/resource.rs
index b219250..400f2af 100644
--- a/lib/pdm-api-types/src/resource.rs
+++ b/lib/pdm-api-types/src/resource.rs
@@ -5,7 +5,7 @@ use serde::{Deserialize, Serialize};
use proxmox_schema::{api, ApiStringFormat, ApiType, EnumEntry, OneOfSchema, Schema, StringSchema};
-use super::remotes::REMOTE_ID_SCHEMA;
+use super::remotes::{RemoteType, REMOTE_ID_SCHEMA};
#[api(
"id-property": "id",
@@ -550,7 +550,16 @@ pub struct SdnZoneCount {
pub unknown: u64,
}
-#[api]
+#[api(
+ properties: {
+ "failed_remotes_list": {
+ type: Array,
+ items: {
+ type: FailedRemote,
+ },
+ }
+ }
+)]
#[derive(Default, Serialize, Deserialize, Clone, PartialEq)]
/// Describes the status of seen resources
pub struct ResourcesStatus {
@@ -572,6 +581,21 @@ pub struct ResourcesStatus {
pub pbs_nodes: NodeStatusCount,
/// Status of PBS Datastores
pub pbs_datastores: StorageStatusCount,
+ /// List of the failed remotes including type and error
+ #[serde(default, skip_serializing_if = "Vec::is_empty")]
+ pub failed_remotes_list: Vec<FailedRemote>,
+}
+
+#[api]
+#[derive(Default, Serialize, Deserialize, Clone, PartialEq)]
+/// Error information for a failed remote
+pub struct FailedRemote {
+ /// Name of the failed remote
+ pub name: String,
+ /// Error that occurred when querying remote resources
+ pub error: String,
+ /// Type of the failed remote
+ pub remote_type: RemoteType,
}
#[api(
--
2.47.3
More information about the pdm-devel
mailing list