public inbox for pbs-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Hannes Laimer <h.laimer@proxmox.com>
To: pbs-devel@lists.proxmox.com
Subject: [PATCH proxmox-backup v6 0/8] fixes #6195: add support for moving groups and namespaces
Date: Tue, 31 Mar 2026 14:34:01 +0200	[thread overview]
Message-ID: <20260331123409.198353-1-h.laimer@proxmox.com> (raw)

Add support for moving backup groups and entire namespace subtrees to
a different location within the same datastore.

Groups are moved with exclusive per-group and per-snapshot locking.
For S3, objects are copied to the target prefix before deleting the
source. Namespace moves process groups individually, deferring and
retrying lock conflicts once, so partially failed moves can be
completed with move_group.


v6, thanks @Fabian and @Dominik!:
 - drop ns locks, lock everything directly, like we do for delete. only
   difference, we dont do partial group moves, reason being that we
   cant move single snapshots, so cleanup would not really be possible
 - ui: disable purne for empty groups
 - ui: dont render verification status for empty groups

v5, thanks @Chris!:
 - lock dir instead of `.ns-lock` file
 - explicitly drop ns lock guards in specific order
 - improve cleanup of partially failed s3 moves, we now create the local
   empty dir+owner file before we start copying s3 objects, if any of
   the s3 ops fail, the dir stays behind and can be deleted through the
   UI(which also triggers a prefix cleanup on the s3 storage)
 - update parameters for `DataStore::lookup_datastore()`
 - ui: re-ordered actions, `move` now next to `verify`
 - ui: add move to right-click context menu
 - ui: show empty groups in the UI
 - add cli commands for both ns and group moves
 - add 2s ns lock timeout for worker tasks

*note*: given the UI change to show empty groups it could make sense to
not auto-delete a group if the last snapshot is deleted. For this series
though that is not relevant since we just need empty groups to be
deletable through the UI for partially failed s3 moves

Hannes Laimer (8):
  ui: show empty groups
  datastore: add move_group
  datastore: add move_namespace
  api: add PUT endpoint for move_group
  api: add PUT endpoint for move_namespace
  ui: add move group action
  ui: add move namespace action
  cli: add move-namespace and move-group commands

 pbs-datastore/src/backup_info.rs            | 153 ++++++++-
 pbs-datastore/src/datastore.rs              | 335 +++++++++++++++++++-
 src/api2/admin/datastore.rs                 |  78 ++++-
 src/api2/admin/namespace.rs                 |  78 ++++-
 src/bin/proxmox_backup_manager/datastore.rs |  84 ++++-
 www/Makefile                                |   2 +
 www/datastore/Content.js                    | 161 ++++++++--
 www/form/NamespaceSelector.js               |  11 +
 www/window/GroupMove.js                     |  56 ++++
 www/window/NamespaceMove.js                 |  79 +++++
 10 files changed, 1003 insertions(+), 34 deletions(-)
 create mode 100644 www/window/GroupMove.js
 create mode 100644 www/window/NamespaceMove.js

-- 
2.47.3





             reply	other threads:[~2026-03-31 12:33 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-31 12:34 Hannes Laimer [this message]
2026-03-31 12:34 ` [PATCH proxmox-backup v6 1/8] ui: show empty groups Hannes Laimer
2026-03-31 12:34 ` [PATCH proxmox-backup v6 2/8] datastore: add move_group Hannes Laimer
2026-03-31 12:34 ` [PATCH proxmox-backup v6 3/8] datastore: add move_namespace Hannes Laimer
2026-03-31 12:34 ` [PATCH proxmox-backup v6 4/8] api: add PUT endpoint for move_group Hannes Laimer
2026-03-31 12:34 ` [PATCH proxmox-backup v6 5/8] api: add PUT endpoint for move_namespace Hannes Laimer
2026-03-31 12:34 ` [PATCH proxmox-backup v6 6/8] ui: add move group action Hannes Laimer
2026-03-31 12:34 ` [PATCH proxmox-backup v6 7/8] ui: add move namespace action Hannes Laimer
2026-04-02  9:28   ` Arthur Bied-Charreton
2026-03-31 12:34 ` [PATCH proxmox-backup v6 8/8] cli: add move-namespace and move-group commands Hannes Laimer
2026-04-02  9:22   ` Arthur Bied-Charreton
2026-04-02  9:34 ` [PATCH proxmox-backup v6 0/8] fixes #6195: add support for moving groups and namespaces Arthur Bied-Charreton

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=20260331123409.198353-1-h.laimer@proxmox.com \
    --to=h.laimer@proxmox.com \
    --cc=pbs-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 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