From: Dominik Csapak <d.csapak@proxmox.com>
To: pdm-devel@lists.proxmox.com
Subject: [pdm-devel] [PATCH datacenter-manager 2/2] ui: subscription: use 'force-load' parameter
Date: Wed, 3 Dec 2025 15:34:32 +0100 [thread overview]
Message-ID: <20251203143439.3595966-2-d.csapak@proxmox.com> (raw)
In-Reply-To: <20251203143439.3595966-1-d.csapak@proxmox.com>
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@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
_______________________________________________
pdm-devel mailing list
pdm-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel
next prev parent reply other threads:[~2025-12-03 14:34 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-03 14:34 [pdm-devel] [PATCH datacenter-manager 1/2] server: api: subscription: improve cache and update behavior Dominik Csapak
2025-12-03 14:34 ` Dominik Csapak [this message]
2025-12-03 20:47 ` Thomas Lamprecht
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=20251203143439.3595966-2-d.csapak@proxmox.com \
--to=d.csapak@proxmox.com \
--cc=pdm-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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.