public inbox for pdm-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [PATCH datacenter-manager v5 00/10] subscription key pool registry
@ 2026-05-23 22:56 Thomas Lamprecht
  2026-05-23 22:56 ` [PATCH datacenter-manager v5 01/10] api types: subscription level: render full names Thomas Lamprecht
  0 siblings, 1 reply; 4+ messages in thread
From: Thomas Lamprecht @ 2026-05-23 22:56 UTC (permalink / raw)
  To: pdm-devel

v5 of the Subscription Registry. Addresses the review feedback Dominik
raised on v4; this round is mostly polishing and most of in UI one.

For the v3 -> v4 changelog and the design discussion see the v4 cover:
  https://lore.proxmox.com/pdm-devel/20260522085128.2678090-1-t.lamprecht@proxmox.com

Notable v4 -> v5 (see per-patch notes for details):

* Loading feedback: Auto-Assign opens a "computing" dialog at once and
  the registry panel masks while refreshing, so a slow remote no longer
  looks like a no-op (Dominik).
* add-keys dedups duplicate input keys (server and UI) and reports the
  dropped count instead of erroring (Dominik).
* apply-pending continues past a failed entry instead of aborting the
  whole run, and reports the failures (Dominik).
* Node Status panel gets a real toolbar: per-node actions on the left,
  bulk / queue actions on the right; Apply/Discard Pending and
  Auto-Assign move off the old standalone top toolbar, each panel gets
  its own refresh (Dominik).
* Auto-Assign and Adopt All preview grids made non-interactive
  (Dominik).
* Revert is no longer offered for an already-applied binding even when
  Expired/Invalid - freeing it is Clear Key.
* Smaller nits: #[builder] macro, direct CSS imports, an AssignTarget
  struct, column widths, dialog padding.

Lukas's Tested-by from v4 is dropped on the patches that changed
materially since (0005, 0006, 0008, 0009, 0010); 0001-0003 and 0007 keep
their v4 trailers.

Each commit cleanly formats (cargo fmt --check), builds, and passes
cargo test --workspace on its own.

For the record, no blockers for the MVP, the open follow-ups still not
in this series:
* Multi-select on the Auto-Assign proposal (all ticked) so the operator
  can deselect a few nodes before applying, e.g. 100 nodes but skip 3.
* Cross-Integration with the relatively new Auto-Installer feature, as
  the installer now also supports accepting a subscription since PVE 9.2
  ISO.
* Shop-side full reissue, so PDM can drive the actual key rotation
  rather than just freeing the pool binding via Clear Key.
* Shop-bundle import path; the on-disk shadow-file plumbing already
  accommodates the signed SubscriptionInfo blob.
And some left out that might be fine, but I'm not so sure about:
* Per-row Auto-Assign overrides for pinning a specific key to a node.
* Atomic clear-and-assign as one queued change (today swapping a key on
  a node is Clear / Apply / Assign / Apply; the canonical case is an
  Expired live subscription that the operator wants to replace).
* Status column filter on the node-status tree.

Thomas Lamprecht (10):
  api types: subscription level: render full names
  pdm-client: add wait_for_local_task helper
  subscription: pool: add data model and config layer
  subscription: api: add key pool and node status endpoints
  ui: registry: add view with key pool and node status
  cli: client: add subscription key pool management subcommands
  docs: add subscription registry chapter
  subscription: add Clear Key action and per-node revert
  subscription: add Adopt Key action for foreign live subscriptions
  subscription: add Check Subscription action

 Cargo.toml                                    |    4 +-
 cli/client/src/subscriptions.rs               |  406 ++-
 docs/index.rst                                |    1 +
 docs/subscription-registry.rst                |   84 +
 lib/pdm-api-types/Cargo.toml                  |    1 +
 lib/pdm-api-types/src/subscription.rs         |  504 +++-
 lib/pdm-api-types/tests/test_import.rs        |  367 +++
 lib/pdm-client/Cargo.toml                     |    3 +
 lib/pdm-client/src/lib.rs                     |  332 ++-
 lib/pdm-config/src/lib.rs                     |    1 +
 lib/pdm-config/src/setup.rs                   |    7 +
 lib/pdm-config/src/subscriptions.rs           |  118 +
 server/src/api/mod.rs                         |    2 +
 server/src/api/resources.rs                   |   34 +-
 server/src/api/subscriptions/mod.rs           | 2378 +++++++++++++++++
 server/src/context.rs                         |    7 +
 server/src/pbs_client.rs                      |   31 +
 ui/src/configuration/mod.rs                   |    3 +
 ui/src/configuration/subscription_assign.rs   |  328 +++
 ui/src/configuration/subscription_keys.rs     |  588 ++++
 ui/src/configuration/subscription_registry.rs | 1485 ++++++++++
 ui/src/dashboard/subscriptions_list.rs        |   18 +-
 ui/src/main_menu.rs                           |   10 +
 ui/src/widget/pve_node_selector.rs            |   91 +-
 ui/src/widget/remote_selector.rs              |   28 +-
 25 files changed, 6764 insertions(+), 67 deletions(-)
 create mode 100644 docs/subscription-registry.rst
 create mode 100644 lib/pdm-api-types/tests/test_import.rs
 create mode 100644 lib/pdm-config/src/subscriptions.rs
 create mode 100644 server/src/api/subscriptions/mod.rs
 create mode 100644 ui/src/configuration/subscription_assign.rs
 create mode 100644 ui/src/configuration/subscription_keys.rs
 create mode 100644 ui/src/configuration/subscription_registry.rs

-- 
2.47.3





^ permalink raw reply	[flat|nested] 4+ messages in thread
* [PATCH datacenter-manager v5 00/10] subscription key pool registry
@ 2026-05-23 22:57 Thomas Lamprecht
  0 siblings, 0 replies; 4+ messages in thread
From: Thomas Lamprecht @ 2026-05-23 22:57 UTC (permalink / raw)
  To: pdm-devel

v5 of the Subscription Registry. Addresses the review feedback Dominik
raised on v4; this round is mostly polishing and most of in UI one.

For the v3 -> v4 changelog and the design discussion see the v4 cover:
  https://lore.proxmox.com/pdm-devel/20260522085128.2678090-1-t.lamprecht@proxmox.com

Notable v4 -> v5 (see per-patch notes for details):

* Loading feedback: Auto-Assign opens a "computing" dialog at once and
  the registry panel masks while refreshing, so a slow remote no longer
  looks like a no-op (Dominik).
* add-keys dedups duplicate input keys (server and UI) and reports the
  dropped count instead of erroring (Dominik).
* apply-pending continues past a failed entry instead of aborting the
  whole run, and reports the failures (Dominik).
* Node Status panel gets a real toolbar: per-node actions on the left,
  bulk / queue actions on the right; Apply/Discard Pending and
  Auto-Assign move off the old standalone top toolbar, each panel gets
  its own refresh (Dominik).
* Auto-Assign and Adopt All preview grids made non-interactive
  (Dominik).
* Revert is no longer offered for an already-applied binding even when
  Expired/Invalid - freeing it is Clear Key.
* Smaller nits: #[builder] macro, direct CSS imports, an AssignTarget
  struct, column widths, dialog padding.

Lukas's Tested-by from v4 is dropped on the patches that changed
materially since (0005, 0006, 0008, 0009, 0010); 0001-0003 and 0007 keep
their v4 trailers.

Each commit cleanly formats (cargo fmt --check), builds, and passes
cargo test --workspace on its own.

For the record, no blockers for the MVP, the open follow-ups still not
in this series:
* Multi-select on the Auto-Assign proposal (all ticked) so the operator
  can deselect a few nodes before applying, e.g. 100 nodes but skip 3.
* Cross-Integration with the relatively new Auto-Installer feature, as
  the installer now also supports accepting a subscription since PVE 9.2
  ISO.
* Shop-side full reissue, so PDM can drive the actual key rotation
  rather than just freeing the pool binding via Clear Key.
* Shop-bundle import path; the on-disk shadow-file plumbing already
  accommodates the signed SubscriptionInfo blob.
And some left out that might be fine, but I'm not so sure about:
* Per-row Auto-Assign overrides for pinning a specific key to a node.
* Atomic clear-and-assign as one queued change (today swapping a key on
  a node is Clear / Apply / Assign / Apply; the canonical case is an
  Expired live subscription that the operator wants to replace).
* Status column filter on the node-status tree.

Thomas Lamprecht (10):
  api types: subscription level: render full names
  pdm-client: add wait_for_local_task helper
  subscription: pool: add data model and config layer
  subscription: api: add key pool and node status endpoints
  ui: registry: add view with key pool and node status
  cli: client: add subscription key pool management subcommands
  docs: add subscription registry chapter
  subscription: add Clear Key action and per-node revert
  subscription: add Adopt Key action for foreign live subscriptions
  subscription: add Check Subscription action

 Cargo.toml                                    |    4 +-
 cli/client/src/subscriptions.rs               |  406 ++-
 docs/index.rst                                |    1 +
 docs/subscription-registry.rst                |   84 +
 lib/pdm-api-types/Cargo.toml                  |    1 +
 lib/pdm-api-types/src/subscription.rs         |  504 +++-
 lib/pdm-api-types/tests/test_import.rs        |  367 +++
 lib/pdm-client/Cargo.toml                     |    3 +
 lib/pdm-client/src/lib.rs                     |  332 ++-
 lib/pdm-config/src/lib.rs                     |    1 +
 lib/pdm-config/src/setup.rs                   |    7 +
 lib/pdm-config/src/subscriptions.rs           |  118 +
 server/src/api/mod.rs                         |    2 +
 server/src/api/resources.rs                   |   34 +-
 server/src/api/subscriptions/mod.rs           | 2378 +++++++++++++++++
 server/src/context.rs                         |    7 +
 server/src/pbs_client.rs                      |   31 +
 ui/src/configuration/mod.rs                   |    3 +
 ui/src/configuration/subscription_assign.rs   |  328 +++
 ui/src/configuration/subscription_keys.rs     |  588 ++++
 ui/src/configuration/subscription_registry.rs | 1485 ++++++++++
 ui/src/dashboard/subscriptions_list.rs        |   18 +-
 ui/src/main_menu.rs                           |   10 +
 ui/src/widget/pve_node_selector.rs            |   91 +-
 ui/src/widget/remote_selector.rs              |   28 +-
 25 files changed, 6764 insertions(+), 67 deletions(-)
 create mode 100644 docs/subscription-registry.rst
 create mode 100644 lib/pdm-api-types/tests/test_import.rs
 create mode 100644 lib/pdm-config/src/subscriptions.rs
 create mode 100644 server/src/api/subscriptions/mod.rs
 create mode 100644 ui/src/configuration/subscription_assign.rs
 create mode 100644 ui/src/configuration/subscription_keys.rs
 create mode 100644 ui/src/configuration/subscription_registry.rs

-- 
2.47.3





^ permalink raw reply	[flat|nested] 4+ messages in thread
* [PATCH datacenter-manager v5 00/10] subscription key pool registry
@ 2026-05-23 22:58 Thomas Lamprecht
  0 siblings, 0 replies; 4+ messages in thread
From: Thomas Lamprecht @ 2026-05-23 22:58 UTC (permalink / raw)
  To: pdm-devel

v5 of the Subscription Registry. Addresses the review feedback Dominik
raised on v4; this round is mostly polishing and most of in UI one.

For the v3 -> v4 changelog and the design discussion see the v4 cover:
  https://lore.proxmox.com/pdm-devel/20260522085128.2678090-1-t.lamprecht@proxmox.com

Notable v4 -> v5 (see per-patch notes for details):

* Loading feedback: Auto-Assign opens a "computing" dialog at once and
  the registry panel masks while refreshing, so a slow remote no longer
  looks like a no-op (Dominik).
* add-keys dedups duplicate input keys (server and UI) and reports the
  dropped count instead of erroring (Dominik).
* apply-pending continues past a failed entry instead of aborting the
  whole run, and reports the failures (Dominik).
* Node Status panel gets a real toolbar: per-node actions on the left,
  bulk / queue actions on the right; Apply/Discard Pending and
  Auto-Assign move off the old standalone top toolbar, each panel gets
  its own refresh (Dominik).
* Auto-Assign and Adopt All preview grids made non-interactive
  (Dominik).
* Revert is no longer offered for an already-applied binding even when
  Expired/Invalid - freeing it is Clear Key.
* Smaller nits: #[builder] macro, direct CSS imports, an AssignTarget
  struct, column widths, dialog padding.

Lukas's Tested-by from v4 is dropped on the patches that changed
materially since (0005, 0006, 0008, 0009, 0010); 0001-0003 and 0007 keep
their v4 trailers.

Each commit cleanly formats (cargo fmt --check), builds, and passes
cargo test --workspace on its own.

For the record, no blockers for the MVP, the open follow-ups still not
in this series:
* Multi-select on the Auto-Assign proposal (all ticked) so the operator
  can deselect a few nodes before applying, e.g. 100 nodes but skip 3.
* Cross-Integration with the relatively new Auto-Installer feature, as
  the installer now also supports accepting a subscription since PVE 9.2
  ISO.
* Shop-side full reissue, so PDM can drive the actual key rotation
  rather than just freeing the pool binding via Clear Key.
* Shop-bundle import path; the on-disk shadow-file plumbing already
  accommodates the signed SubscriptionInfo blob.
And some left out that might be fine, but I'm not so sure about:
* Per-row Auto-Assign overrides for pinning a specific key to a node.
* Atomic clear-and-assign as one queued change (today swapping a key on
  a node is Clear / Apply / Assign / Apply; the canonical case is an
  Expired live subscription that the operator wants to replace).
* Status column filter on the node-status tree.

Thomas Lamprecht (10):
  api types: subscription level: render full names
  pdm-client: add wait_for_local_task helper
  subscription: pool: add data model and config layer
  subscription: api: add key pool and node status endpoints
  ui: registry: add view with key pool and node status
  cli: client: add subscription key pool management subcommands
  docs: add subscription registry chapter
  subscription: add Clear Key action and per-node revert
  subscription: add Adopt Key action for foreign live subscriptions
  subscription: add Check Subscription action

 Cargo.toml                                    |    4 +-
 cli/client/src/subscriptions.rs               |  406 ++-
 docs/index.rst                                |    1 +
 docs/subscription-registry.rst                |   84 +
 lib/pdm-api-types/Cargo.toml                  |    1 +
 lib/pdm-api-types/src/subscription.rs         |  504 +++-
 lib/pdm-api-types/tests/test_import.rs        |  367 +++
 lib/pdm-client/Cargo.toml                     |    3 +
 lib/pdm-client/src/lib.rs                     |  332 ++-
 lib/pdm-config/src/lib.rs                     |    1 +
 lib/pdm-config/src/setup.rs                   |    7 +
 lib/pdm-config/src/subscriptions.rs           |  118 +
 server/src/api/mod.rs                         |    2 +
 server/src/api/resources.rs                   |   34 +-
 server/src/api/subscriptions/mod.rs           | 2378 +++++++++++++++++
 server/src/context.rs                         |    7 +
 server/src/pbs_client.rs                      |   31 +
 ui/src/configuration/mod.rs                   |    3 +
 ui/src/configuration/subscription_assign.rs   |  328 +++
 ui/src/configuration/subscription_keys.rs     |  588 ++++
 ui/src/configuration/subscription_registry.rs | 1485 ++++++++++
 ui/src/dashboard/subscriptions_list.rs        |   18 +-
 ui/src/main_menu.rs                           |   10 +
 ui/src/widget/pve_node_selector.rs            |   91 +-
 ui/src/widget/remote_selector.rs              |   28 +-
 25 files changed, 6764 insertions(+), 67 deletions(-)
 create mode 100644 docs/subscription-registry.rst
 create mode 100644 lib/pdm-api-types/tests/test_import.rs
 create mode 100644 lib/pdm-config/src/subscriptions.rs
 create mode 100644 server/src/api/subscriptions/mod.rs
 create mode 100644 ui/src/configuration/subscription_assign.rs
 create mode 100644 ui/src/configuration/subscription_keys.rs
 create mode 100644 ui/src/configuration/subscription_registry.rs

-- 
2.47.3





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-05-23 22:58 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-23 22:56 [PATCH datacenter-manager v5 00/10] subscription key pool registry Thomas Lamprecht
2026-05-23 22:56 ` [PATCH datacenter-manager v5 01/10] api types: subscription level: render full names Thomas Lamprecht
  -- strict thread matches above, loose matches on Subject: below --
2026-05-23 22:57 [PATCH datacenter-manager v5 00/10] subscription key pool registry Thomas Lamprecht
2026-05-23 22:58 Thomas Lamprecht

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal