From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <pve-devel-bounces@lists.proxmox.com>
Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68])
	by lore.proxmox.com (Postfix) with ESMTPS id F188D1FF168
	for <inbox@lore.proxmox.com>; Tue, 26 Nov 2024 16:29:32 +0100 (CET)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 71FC25E14;
	Tue, 26 Nov 2024 16:29:33 +0100 (CET)
Message-ID: <ec3121b5-7fc9-47b1-968e-2fa6acabec51@proxmox.com>
Date: Tue, 26 Nov 2024 16:29:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: pve-devel@lists.proxmox.com
References: <20240918144953.130780-1-f.schauer@proxmox.com>
From: Filip Schauer <f.schauer@proxmox.com>
In-Reply-To: <20240918144953.130780-1-f.schauer@proxmox.com>
X-SPAM-LEVEL: Spam detection results:  0
 AWL -0.177 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DMARC_MISSING             0.1 Missing DMARC policy
 KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment
 POISEN_SPAM_PILL          0.1 Meta: its spam
 POISEN_SPAM_PILL_1        0.1 random spam to be learned in bayes
 POISEN_SPAM_PILL_3        0.1 random spam to be learned in bayes
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
 URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more
 information. [storage.pm, content.pm, pbsplugin.pm, proxmox.com, pvesm.pm,
 plugin.pm]
Subject: Re: [pve-devel] [PATCH v4 storage 0/6] support moving volumes
 between storages
X-BeenThere: pve-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/>
List-Post: <mailto:pve-devel@lists.proxmox.com>
List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe>
Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: pve-devel-bounces@lists.proxmox.com
Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com>

Superseded by:
https://lists.proxmox.com/pipermail/pve-devel/2024-November/066993.html

On 18/09/2024 16:49, Filip Schauer wrote:
> Add the ability to move a backup, ISO, container template or snippet
> between storages and nodes via an API method. Moving a VMA backup to a
> Proxmox Backup Server requires the proxmox-vma-to-pbs package to be
> installed. Currently only VMA backups can be moved to a Proxmox Backup
> Server and moving backups from a Proxmox Backup Server is not yet
> supported.
>
> The method can be called from the PVE shell with `pvesm move-volume`:
>
> ```
> pvesm move-volume <source volume> <target storage> [--target-node <node>] [--delete]
> ```
>
> For example to move a VMA backup to a Proxmox Backup Server:
>
> ```
> pvesm move-volume \
>      local:backup/vzdump-qemu-100-2024_06_25-13_08_56.vma.zst pbs
> ```
>
> Or move a container template to another node and delete the source:
>
> ```
> pvesm move-volume \
>      local:vztmpl/devuan-4.0-standard_4.0_amd64.tar.gz local \
>      --target-node pvenode2 --delete
> ```
>
> Or use curl to call the API method:
>
> ```
> curl https://$APINODE:8006/api2/json/nodes/$SOURCENODE/storage/$SOURCESTORAGE/content/$SOURCEVOLUME \
>      --insecure --cookie "$(<cookie)" -H "$(<csrftoken)" -X POST \
>      --data-raw "target-storage=$TARGETSTORAGE&target-node=$TARGETNODE"
> ```
>
> proxmox-vma-to-pbs needs to be bumped to 0.1.0 before applying
> "support moving VMA backups to PBS"
>
> Changes since v3:
> * Split changes into multiple commits
> * Remove superfluous parentheses from post-ifs
> * Move vma_to_pbs branch from move_volume into its own helper inside
>    PBSPlugin
> * Use $! instead of $@ to retrieve unlink error in move_volume
> * Also support content type 'rootdir'
> * Rework permission checks on the move API method
> * Fix permissions description on move API method
> * Add error for unimplemented content types
>
> Changes since v2:
> * Specify permissions for move method
> * Add success message to move method
> * Limit the move method to non-vdisk volumes
> * Check that source and target are not the same in the move method
> * Remove the unnecessary movevolume method from pvesm and make the
>    move-volume command call the move API method directly
> * Fail when trying to move a protected volume with the delete option
>    enabled, instead of ignoring the protection
> * Change "not yet supported" to "not supported" in messages indicating
>    unimplemented features
> * Process auxiliary files first when moving a volume locally on a node
> * Move a volume instead of copying it when trying to move a volume
>    locally on a node with the delete option enabled.
> * Use the more general `path` function instead of `filesystem_path` to
>    get the path of a volume
> * Loosen the required privileges to move an ISO or a container template,
>    or when the delete option is not set.
> * Move the volume_move sub from PVE::Storage to
>    PVE::API2::Storage::Content since it is only used there.
> * Explicitly check that storages are path-based in volume_move,
>    except when moving a vma to a Proxmox Backup Server
>
> Changes since v1:
> * Rename pvesm command to move-volume
> * Add a delete option to control whether the source volume should be
>    kept
> * Move the API method to the POST endpoint of
>    /nodes/{node}/storage/{storage}/content/{volume}, replacing the
>    experimental copy method that has not been used since its introduction
>    in October 2011 883eeea6.
> * Implement migrating volumes between nodes
>
> Filip Schauer (6):
>    plugin: allow volume import of iso, snippets and vztmpl
>    api: content: implement moving a volume between storages
>    api: content: support moving backups between path based storages
>    storage: introduce decompress_archive_into_pipe helper
>    support moving VMA backups to PBS
>    pvesm: add a move-volume command
>
>   debian/control                  |   1 +
>   src/PVE/API2/Storage/Content.pm | 190 ++++++++++++++++++++++++++------
>   src/PVE/CLI/pvesm.pm            |   2 +
>   src/PVE/Storage.pm              |  74 ++++++++-----
>   src/PVE/Storage/PBSPlugin.pm    |  65 +++++++++++
>   src/PVE/Storage/Plugin.pm       | 107 +++++++++++++-----
>   6 files changed, 354 insertions(+), 85 deletions(-)
>


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel