all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: Filip Schauer <f.schauer@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH storage 01/12] add support for .vma.bz2
Date: Wed,  9 Apr 2025 16:24:12 +0200	[thread overview]
Message-ID: <20250409142423.130540-2-f.schauer@proxmox.com> (raw)
In-Reply-To: <20250409142423.130540-1-f.schauer@proxmox.com>

This aligns with the PVE::Storage::BACKUP_EXT_RE_2 regex

Signed-off-by: Filip Schauer <f.schauer@proxmox.com>
---
 src/PVE/Storage.pm             | 11 +++++++++--
 src/test/list_volumes_test.pm  | 10 ++++++++++
 src/test/parse_volname_test.pm |  2 +-
 3 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/src/PVE/Storage.pm b/src/PVE/Storage.pm
index d0a696a..6031261 100755
--- a/src/PVE/Storage.pm
+++ b/src/PVE/Storage.pm
@@ -1720,13 +1720,20 @@ sub extract_vzdump_config_vma {
     if ($comp) {
 	my $cmd = [ [@$decompressor, $archive], ["vma", "config", "-"] ];
 
-	# lzop/zcat exits with 1 when the pipe is closed early by vma, detect this and ignore the exit code later
+	# lzop/zcat/zstd/bzcat exits with 1 when the pipe is closed early by vma,
+	# detect this and ignore the exit code later
 	my $broken_pipe;
 	my $errstring;
 	my $err = sub {
 	    my $output = shift;
-	    if ($output =~ m/lzop: Broken pipe: <stdout>/ || $output =~ m/gzip: stdout: Broken pipe/ || $output =~ m/zstd: error 70 : Write error.*Broken pipe/) {
+	    if (
+		$output =~ m/lzop: Broken pipe: <stdout>/
+		|| $output =~ m/gzip: stdout: Broken pipe/
+		|| $output =~ m/zstd: error 70 : Write error.*Broken pipe/
+		|| $output =~ m/bzcat: Broken pipe/
+	    ) {
 		$broken_pipe = 1;
+		$errstring = "";
 	    } elsif (!defined ($errstring) && $output !~ m/^\s*$/) {
 		$errstring = "Failed to extract config from VMA archive: $output\n";
 	    }
diff --git a/src/test/list_volumes_test.pm b/src/test/list_volumes_test.pm
index 7b6df6a..5adba03 100644
--- a/src/test/list_volumes_test.pm
+++ b/src/test/list_volumes_test.pm
@@ -94,6 +94,7 @@ my @tests = (
 	    "$storage_dir/dump/vzdump-qemu-16110-2020_03_30-21_12_45.vma.lzo",
 	    "$storage_dir/dump/vzdump-qemu-16110-2020_03_30-21_13_55.vma",
 	    "$storage_dir/dump/vzdump-qemu-16110-2020_03_30-21_13_55.vma.zst",
+	    "$storage_dir/dump/vzdump-qemu-16110-2020_03_30-21_15_00.vma.bz2",
 	    "$storage_dir/snippets/userconfig.yaml",
 	    "$storage_dir/snippets/hookscript.pl",
 	],
@@ -164,6 +165,15 @@ my @tests = (
 		'vmid'    => '16110',
 		'volid'   => 'local:backup/vzdump-qemu-16110-2020_03_30-21_13_55.vma.zst',
 	    },
+	    {
+		'content' => 'backup',
+		'ctime'   => 1585602900,
+		'format'  => 'vma.bz2',
+		'size'    => DEFAULT_SIZE,
+		'subtype' => 'qemu',
+		'vmid'    => '16110',
+		'volid'   => 'local:backup/vzdump-qemu-16110-2020_03_30-21_15_00.vma.bz2',
+	    },
 	    {
 		'content' => 'snippets',
 		'ctime'   => DEFAULT_CTIME,
diff --git a/src/test/parse_volname_test.pm b/src/test/parse_volname_test.pm
index 175500d..0ede982 100644
--- a/src/test/parse_volname_test.pm
+++ b/src/test/parse_volname_test.pm
@@ -214,7 +214,7 @@ foreach my $s (@$disk_suffix) {
 
 # create more test cases for backup files matches
 my $bkp_suffix = {
-    qemu   => [ 'vma', 'vma.gz', 'vma.lzo', 'vma.zst' ],
+    qemu   => [ 'vma', 'vma.gz', 'vma.lzo', 'vma.zst', 'vma.bz2' ],
     lxc    => [ 'tar', 'tgz', 'tar.gz', 'tar.lzo', 'tar.zst', 'tar.bz2' ],
     openvz => [ 'tar', 'tgz', 'tar.gz', 'tar.lzo', 'tar.zst' ],
 };
-- 
2.39.5



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


  reply	other threads:[~2025-04-09 14:26 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-09 14:24 [pve-devel] [PATCH guest-common/manager/storage/vma-to-pbs 00/12] align supported compression formats for templates and backups Filip Schauer
2025-04-09 14:24 ` Filip Schauer [this message]
2025-04-09 14:24 ` [pve-devel] [PATCH storage 02/12] add support for xz compressed VM and container backups Filip Schauer
2025-04-09 14:24 ` [pve-devel] [PATCH storage 03/12] align supported compression formats for templates and backups Filip Schauer
2025-04-09 14:24 ` [pve-devel] [PATCH guest-common 04/12] vzdump: add support for bzip2 compression Filip Schauer
2025-04-09 14:24 ` [pve-devel] [PATCH guest-common 05/12] vzdump: add support for xz compression Filip Schauer
2025-04-09 14:24 ` [pve-devel] [PATCH manager 06/12] accept .tar.bz2 ct templates in the storage upload dialog Filip Schauer
2025-04-09 14:24 ` [pve-devel] [PATCH manager 07/12] vzdump: add support for bzip2 compression Filip Schauer
2025-04-09 14:24 ` [pve-devel] [PATCH manager 08/12] vzdump: add support for xz compression Filip Schauer
2025-04-09 14:24 ` [pve-devel] [PATCH manager 09/12] allow download of xz compressed files Filip Schauer
2025-04-09 14:24 ` [pve-devel] [PATCH manager 10/12] accept .tar.lzo ct templates in the storage upload dialog Filip Schauer
2025-04-09 14:24 ` [pve-devel] [PATCH vma-to-pbs 11/12] add support for bzip2 compressed VMA files Filip Schauer
2025-04-09 14:24 ` [pve-devel] [PATCH vma-to-pbs 12/12] add support for xz " Filip Schauer

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=20250409142423.130540-2-f.schauer@proxmox.com \
    --to=f.schauer@proxmox.com \
    --cc=pve-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.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal