[pdm-devel] [PATCH datacenter-manager 2/3] ui: make NodeStatusPanel available as a widget

Shannon Sterz s.sterz at proxmox.com
Fri Nov 7 09:37:32 CET 2025


On Fri Nov 7, 2025 at 8:31 AM CET, Lukas Wagner wrote:
> On Thu Nov 6, 2025 at 10:10 PM CET, Thomas Lamprecht wrote:
>> 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.
>>
>
> +1
>
> I quickly tried this patch series out yesterday before going home, my
> findings/thoughts were
>
> - As you mentioned, the fact that this widget is about the PDM host
>   itself is not super clear (no mention of it in the title, and all the
>   other widgets are about remotes)
>
> - The widget appears a bit too dense/crowded, at least compared to the
>   other widgets that we already have. I think this mostly due to the
>   three buttons, as well as the long kernel version string, on my PDM
>   dev host this is
>
> 	  Linux 6.14.8-2-pve #1 SMP PREEMPT_DYNAMIC PMX 6.14.8-2 (2025-07-22T10:04Z)
>
>   which appears to be quite a bit longer than what we show in PVE/PBS:
>
> 	  Linux 6.14.11-4-pve (2025-10-10T08:04Z)

just a small note, this is how seem to display this information
throughout pdm at least, so i'd keep that for now.

> - Having the potentially disruptive Reboot/Shutdown buttons so prominent
>   in the dashboard can be a bit 'dangerous', I think - especially since
>   it's not 100% clear at the moment that this is the PDM host itself.
>
>
> I fully agree with you proposal, I think putting this into a new tab in
> the Administration panel definitely makes a lot of sense.
>
>> 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.

alright i'll make the fingerprint opt-in and revert to the tab
based approach from v1 then.




More information about the pdm-devel mailing list