[pdm-devel] [PATCH yew-comp/datacenter-manager] ui: implement remote task list

Dominik Csapak d.csapak at proxmox.com
Mon Jan 20 10:29:50 CET 2025


This series implements a remote task list and includes the remote
running tasks into the globabl running tasks list (if started through
the pdm or caught via caching).

for that i had to adapt the proxmox-yew-comp widget a bit so that
they're more customizable, as well as implement our usual task filters
in the task cache.

the first 2 yew-comp patches could be applied even if the rest of the
series is not, but the remaining patches depend on those for line
numbers etc.

a few things yet to implement
* proper task rendering for the task viewer title
* remote/node filter for remote task list.

I noticed that the task caching could be improved a bit, e.g. we discard
the cache when it's older than some 'max-age' but old (finished!) tasks
will never get updated, they could at most be purged from the cache.

IMHO it does not make sense to control the cache this way with a
'max-age' variable, maybe @Lukas can look over that again and see
if we can cache the tasks better here?
(note that we can't have much above ~1000 tasks in PVE since that
is the number where we purge older ones there. I think we could keep
older tasks for remotes and also just purge them if the number is above
some threshold, maybe a bit higher than what PVE has).

proxmox-yew-comp:

Dominik Csapak (7):
  tasks: make date filter functional
  tasks: load more tasks on end of list
  utils: factor out task description into own function
  running tasks: make TaskListItem renderer configurable
  running tasks: make buttons configurable
  tasks: make columns configurable
  tasks: make the 'show task' action configurable

 src/running_tasks.rs        |  54 ++++++---
 src/running_tasks_button.rs |  15 ++-
 src/tasks.rs                | 221 ++++++++++++++++++++++++++----------
 src/utils.rs                |  24 ++--
 4 files changed, 232 insertions(+), 82 deletions(-)

datacenter-manager:

Dominik Csapak (9):
  server: factor out task filters into `TaskFilters` type
  server: task cache: skip remotes with errors on fetch
  server: task cache: add filter options
  server: task cache: reverse task order
  pdm-client: export PveUpid
  ui: refactor RemoteConfigPanel into own module
  ui: remotes: add tasks to global remote panel
  ui: register pve tasks
  ui: also show running remote tasks in 'running tasks' list

 lib/pdm-api-types/src/lib.rs   |  81 ++++++-
 lib/pdm-client/src/lib.rs      |   2 +
 server/src/api/nodes/tasks.rs  |  80 ++-----
 server/src/api/remote_tasks.rs |  10 +-
 server/src/task_cache.rs       |  77 +++++-
 ui/src/lib.rs                  |   3 +
 ui/src/main.rs                 |  25 +-
 ui/src/main_menu.rs            |   7 +-
 ui/src/remotes/config.rs       | 392 +++++++++++++++++++++++++++++++
 ui/src/remotes/mod.rs          | 413 +++------------------------------
 ui/src/remotes/tasks.rs        | 153 ++++++++++++
 ui/src/tasks.rs                | 101 ++++++++
 ui/src/top_nav_bar.rs          |  54 ++++-
 13 files changed, 932 insertions(+), 466 deletions(-)
 create mode 100644 ui/src/remotes/config.rs
 create mode 100644 ui/src/remotes/tasks.rs
 create mode 100644 ui/src/tasks.rs

-- 
2.39.5





More information about the pdm-devel mailing list