[pdm-devel] [PATCH datacenter-manager 2/2] ui: subscription: use 'force-load' parameter

Dominik Csapak d.csapak at proxmox.com
Wed Dec 3 15:34:32 CET 2025


on the first login, use 'force-load': true to let the backend refresh
all remotes whose information is older than 24 hours or never had any
info.

The remaining checks (e.g. refresh for updates, views, etc.) use the
(now) default caching behavior.

Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
 ui/src/lib.rs             | 10 +++++++---
 ui/src/main.rs            |  2 +-
 ui/src/remotes/updates.rs |  2 +-
 3 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/ui/src/lib.rs b/ui/src/lib.rs
index 1aac7571..f9d4cbfd 100644
--- a/ui/src/lib.rs
+++ b/ui/src/lib.rs
@@ -9,7 +9,7 @@ use pwt::props::ContainerBuilder;
 use pwt::tr;
 use pwt::widget::{AlertDialog, Container};
 use serde::{Deserialize, Serialize};
-use serde_json::Value;
+use serde_json::{json, Value};
 
 use proxmox_yew_comp::http_get;
 
@@ -249,8 +249,12 @@ pub(crate) fn locale_compare(first: String, second: &str, numeric: bool) -> std:
 /// NOTE: This should be only used for PDM itself, or for when it's checked for a PDM specific
 /// feature, i.e., one that's not just relayed 1:1 to a specific remote node, as for that one should
 /// use the remote-specific check.
-pub async fn check_pdm_subscription() -> bool {
-    let data: Result<Value, _> = http_get("/nodes/localhost/subscription", None).await;
+pub async fn check_pdm_subscription(force: bool) -> bool {
+    let data: Result<Value, _> = http_get(
+        "/nodes/localhost/subscription",
+        Some(json!({"force-load": force})),
+    )
+    .await;
     let mut is_active = proxmox_yew_comp::subscription_is_active(Some(&data));
     if !is_active {
         if let Ok(Ok(info)) = data.map(serde_json::from_value::<PdmSubscriptionInfo>) {
diff --git a/ui/src/main.rs b/ui/src/main.rs
index 5f859dbc..a7a474b7 100644
--- a/ui/src/main.rs
+++ b/ui/src/main.rs
@@ -79,7 +79,7 @@ impl DatacenterManagerApp {
                     ctx.link().send_message(Msg::ConfirmSubscription);
                 } else {
                     self.async_pool.send_future(ctx.link().clone(), async move {
-                        let is_active = check_pdm_subscription().await;
+                        let is_active = check_pdm_subscription(true).await;
 
                         if !is_active {
                             Msg::ShowSubscriptionAlert
diff --git a/ui/src/remotes/updates.rs b/ui/src/remotes/updates.rs
index 12eaec87..d1d60910 100644
--- a/ui/src/remotes/updates.rs
+++ b/ui/src/remotes/updates.rs
@@ -394,7 +394,7 @@ impl LoadableComponent for UpdateTreeComponent {
 
                 link.clone().spawn(async move {
                     // Use the PDM subscription check for the global refresh all.
-                    let is_active = check_pdm_subscription().await;
+                    let is_active = check_pdm_subscription(false).await;
                     if !is_active {
                         link.change_view(Some(ViewState::ShowSubscriptionAlert));
                     } else {
-- 
2.47.3





More information about the pdm-devel mailing list