[pdm-devel] [PATCH datacenter-manager 2/3] ui: make NodeStatusPanel available as a widget
Thomas Lamprecht
t.lamprecht at proxmox.com
Thu Nov 6 22:10:01 CET 2025
Am 06.11.25 um 13:43 schrieb Shannon Sterz:
> Signed-off-by: Shannon Sterz <s.sterz at proxmox.com>
> ---
> ui/src/administration/mod.rs | 4 +++-
> ui/src/dashboard/types.rs | 1 +
> ui/src/dashboard/view.rs | 15 ++++++++++++++-
> 3 files changed, 18 insertions(+), 2 deletions(-)
>
> diff --git a/ui/src/administration/mod.rs b/ui/src/administration/mod.rs
> index a9f7ac6..72a4ffa 100644
> --- a/ui/src/administration/mod.rs
> +++ b/ui/src/administration/mod.rs
> @@ -16,7 +16,9 @@ use pwt_macros::builder;
> //mod services;
> //pub use services::Services;
>
> -use proxmox_yew_comp::{AptPackageManager, AptRepositories, ExistingProduct, Syslog, Tasks};
> +use proxmox_yew_comp::{
> + AptPackageManager, AptRepositories, ExistingProduct, NodeStatusPanel, Syslog, Tasks,
> +};
>
> #[derive(Clone, PartialEq, Properties)]
> #[builder]
> diff --git a/ui/src/dashboard/types.rs b/ui/src/dashboard/types.rs
> index c79c38a..ce4bbb7 100644
> --- a/ui/src/dashboard/types.rs
> +++ b/ui/src/dashboard/types.rs
> @@ -61,6 +61,7 @@ pub enum WidgetType {
> TaskSummary {
> grouping: TaskSummaryGrouping,
> },
> + NodeStatus,
> }
>
> #[derive(Serialize, Deserialize, PartialEq, Clone, Copy)]
> diff --git a/ui/src/dashboard/view.rs b/ui/src/dashboard/view.rs
> index c781d99..b5cd722 100644
> --- a/ui/src/dashboard/view.rs
> +++ b/ui/src/dashboard/view.rs
> @@ -3,6 +3,7 @@ use std::rc::Rc;
> use anyhow::Error;
> use futures::join;
> use js_sys::Date;
> +use proxmox_yew_comp::NodeStatusPanel;
> use serde_json::json;
> use yew::virtual_dom::{VComp, VNode};
>
> @@ -123,6 +124,11 @@ fn render_widget(
> let (hours, since) = get_task_options(refresh_config.task_last_hours);
> create_task_summary_panel(statistics, remotes, hours, since)
> }
> + WidgetType::NodeStatus => {
> + return NodeStatusPanel::new()
> + .status_base_url("/nodes/localhost/status")
> + .into()
> + }
> };
>
While it might be OK to have as widget for remote node status in the dashboard, I
would not add the one from PDM here, that's IMO confusing, especially if it's
nowhere stated that it is in fact the one from PDM itself, given that all other
widgets show the status of remote resources.
I.e., the PBS dashboard is for the PBS instance itself, the PDM one is mainly for
the remote resources, they need to be handled a bit differently when deciding what
to add where, or at least ensure that it's clear that some info is from PDM itself.
But rather lets add a new tab to the Administration panel, there we can then also
add metrics graphs (memory, cpu, ...) for the local PDM itself in the future.
Could be still nice to implement a PDM specific overview for the dashboard, but
that should be probably something new with the specifics of PDM in mind, and can
be done separately.
Reboot/shutdown could then go in the toolbar there.
It also might be more useful to not show the "Show Fingerprint" button by default.
Adding that in this card was a bit of a stop-gap for PBS on it's own that I
implemented only because knowing the fingerprint is quite often a must-have for
being able to add a PBS as storage to a PVE cluster. As we do not can add a PDM
somewhere (in our projects) at all for now, there is really not such a need there.
FWIW, for PBS we have reduced the need for having this in the node status directly
too, as there we now got the "connection info" button/window available on the
Datastore summary page, which also includes the full datastore repository string,
and is thus more convenient than the dashboard one.
That's also why I'd not show this button by default at all, at least in the newer
Yew UI.
More information about the pdm-devel
mailing list