public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Fabian Ebner <f.ebner@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH storage 1/2] list volumes: also return backup type for backups
Date: Thu, 16 Dec 2021 13:12:23 +0100	[thread overview]
Message-ID: <20211216121233.162288-2-f.ebner@proxmox.com> (raw)
In-Reply-To: <20211216121233.162288-1-f.ebner@proxmox.com>

Otherwise, there is no storage-agnostic way to filter by backup group.

Call it subtype, to not confuse it with content type, and to be able
to re-use it for other content types than backup, if the need ever
arises.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
---
 PVE/Storage/PBSPlugin.pm  |  1 +
 PVE/Storage/Plugin.pm     |  1 +
 test/list_volumes_test.pm | 10 ++++++++++
 3 files changed, 12 insertions(+)

diff --git a/PVE/Storage/PBSPlugin.pm b/PVE/Storage/PBSPlugin.pm
index e186663..4b3f349 100644
--- a/PVE/Storage/PBSPlugin.pm
+++ b/PVE/Storage/PBSPlugin.pm
@@ -688,6 +688,7 @@ sub list_volumes {
 	    content => 'backup',
 	    vmid => int($bid),
 	    ctime => $epoch,
+	    subtype => $btype eq 'vm' ? 'qemu' : 'lxc', # convert to PVE backup type
 	};
 
 	$info->{verification} = $item->{verification} if defined($item->{verification});
diff --git a/PVE/Storage/Plugin.pm b/PVE/Storage/Plugin.pm
index 12f1b4b..0a6c619 100644
--- a/PVE/Storage/Plugin.pm
+++ b/PVE/Storage/Plugin.pm
@@ -1160,6 +1160,7 @@ my $get_subdir_files = sub {
 	    my $archive_info = eval { PVE::Storage::archive_info($fn) } // {};
 
 	    $info->{ctime} = $archive_info->{ctime} if defined($archive_info->{ctime});
+	    $info->{subtype} = $archive_info->{type} // 'unknown';
 
 	    if (defined($vmid) || $fn =~ m!\-([1-9][0-9]{2,8})\-[^/]+\.${format}$!) {
 		$info->{vmid} = $vmid // $1;
diff --git a/test/list_volumes_test.pm b/test/list_volumes_test.pm
index ac75c04..d155cb9 100644
--- a/test/list_volumes_test.pm
+++ b/test/list_volumes_test.pm
@@ -133,6 +133,7 @@ my @tests = (
 		'ctime'   => 1585602700,
 		'format'  => 'vma.gz',
 		'size'    => DEFAULT_SIZE,
+		'subtype' => 'qemu',
 		'vmid'    => '16110',
 		'volid'   => 'local:backup/vzdump-qemu-16110-2020_03_30-21_11_40.vma.gz',
 	    },
@@ -141,6 +142,7 @@ my @tests = (
 		'ctime'   => 1585602765,
 		'format'  => 'vma.lzo',
 		'size'    => DEFAULT_SIZE,
+		'subtype' => 'qemu',
 		'vmid'    => '16110',
 		'volid'   => 'local:backup/vzdump-qemu-16110-2020_03_30-21_12_45.vma.lzo',
 	    },
@@ -149,6 +151,7 @@ my @tests = (
 		'ctime'   => 1585602835,
 		'format'  => 'vma',
 		'size'    => DEFAULT_SIZE,
+		'subtype' => 'qemu',
 		'vmid'    => '16110',
 		'volid'   => 'local:backup/vzdump-qemu-16110-2020_03_30-21_13_55.vma',
 	    },
@@ -157,6 +160,7 @@ my @tests = (
 		'ctime'   => 1585602835,
 		'format'  => 'vma.zst',
 		'size'    => DEFAULT_SIZE,
+		'subtype' => 'qemu',
 		'vmid'    => '16110',
 		'volid'   => 'local:backup/vzdump-qemu-16110-2020_03_30-21_13_55.vma.zst',
 	    },
@@ -202,6 +206,7 @@ my @tests = (
 		'ctime'   => 1585604370,
 		'format'  => 'tar.lzo',
 		'size'    => DEFAULT_SIZE,
+		'subtype' => 'lxc',
 		'vmid'    => '16112',
 		'volid'   => 'local:backup/vzdump-lxc-16112-2020_03_30-21_39_30.tar.lzo',
 	    },
@@ -210,6 +215,7 @@ my @tests = (
 		'ctime'   => 1585604970,
 		'format'  => 'tar.gz',
 		'size'    => DEFAULT_SIZE,
+		'subtype' => 'lxc',
 		'vmid'    => '16112',
 		'volid'   => 'local:backup/vzdump-lxc-16112-2020_03_30-21_49_30.tar.gz',
 	    },
@@ -218,6 +224,7 @@ my @tests = (
 		'ctime'   => 1585604970,
 		'format'  => 'tar.zst',
 		'size'    => DEFAULT_SIZE,
+		'subtype' => 'lxc',
 		'vmid'    => '16112',
 		'volid'   => 'local:backup/vzdump-lxc-16112-2020_03_30-21_49_30.tar.zst',
 	    },
@@ -226,6 +233,7 @@ my @tests = (
 		'ctime'   => 1585605570,
 		'format'  => 'tgz',
 		'size'    => DEFAULT_SIZE,
+		'subtype' => 'lxc',
 		'vmid'    => '16112',
 		'volid'   => 'local:backup/vzdump-lxc-16112-2020_03_30-21_59_30.tgz',
 	    },
@@ -368,6 +376,7 @@ my @tests = (
 		'ctime'   => 1580759863,
 		'format'  => 'tar.gz',
 		'size'    => DEFAULT_SIZE,
+		'subtype' => 'lxc',
 		'vmid'    => '19253',
 		'volid'   => 'local:backup/vzdump-lxc-19253-2020_02_03-19_57_43.tar.gz',
 	    },
@@ -376,6 +385,7 @@ my @tests = (
 		'ctime'   => 1548098959,
 		'format'  => 'tar',
 		'size'    => DEFAULT_SIZE,
+		'subtype' => 'lxc',
 		'vmid'    => '19254',
 		'volid'   => 'local:backup/vzdump-lxc-19254-2019_01_21-19_29_19.tar',
 	    },
-- 
2.30.2





  reply	other threads:[~2021-12-16 12:13 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-16 12:12 [pve-devel] [PATCH-SERIES storage/manager/guest-common/docs] improvements for protected backups Fabian Ebner
2021-12-16 12:12 ` Fabian Ebner [this message]
2022-03-16 16:42   ` [pve-devel] applied: [PATCH storage 1/2] list volumes: also return backup type for backups Thomas Lamprecht
2021-12-16 12:12 ` [pve-devel] [PATCH storage 2/2] plugins: allow limiting the number of protected backups per guest Fabian Ebner
2022-03-16 16:42   ` Thomas Lamprecht
2022-03-17  8:03     ` Fabian Ebner
2022-03-17  8:11       ` Thomas Lamprecht
2021-12-16 12:12 ` [pve-devel] [PATCH manager 1/6] vzdump: backup file list: drop unused parameter Fabian Ebner
2021-12-16 12:12 ` [pve-devel] [PATCH manager 2/6] vzdump: backup limit: only count unprotected backups Fabian Ebner
2021-12-16 12:12 ` [pve-devel] [RFC manager 3/6] ui: storage edit: retention: add max-protected-backups setting Fabian Ebner
2021-12-16 12:12 ` [pve-devel] [RFC manager 4/6] ui: storage creation: retention: dynamically adapt max-protected-backups Fabian Ebner
2021-12-16 12:12 ` [pve-devel] [PATCH docs 1/2] storage: switch to prune-backups in examples Fabian Ebner
2021-12-16 12:12 ` [pve-devel] [PATCH docs 2/2] vzdump/storage: mention protected backups limit and give an example Fabian Ebner
2021-12-16 12:12 ` [pve-devel] [PATCH guest-common 1/1] vzdump: schema: add 'notes' and 'protected' properties Fabian Ebner
2022-03-16 11:04   ` Fabian Ebner
2022-03-16 18:25     ` Thomas Lamprecht
2022-03-17  7:57       ` Fabian Ebner
2022-03-17  8:07         ` Thomas Lamprecht
2022-03-17  8:18           ` Fabian Ebner
2022-03-17  8:20             ` Thomas Lamprecht
2021-12-16 12:12 ` [pve-devel] [PATCH manager 5/6] vzdump: support setting protected status and notes Fabian Ebner
2021-12-16 12:12 ` [pve-devel] [PATCH manager 6/6] ui: backup: allow setting protected and notes for manual backup Fabian Ebner
2021-12-20 10:31 ` [pve-devel] [PATCH-SERIES storage/manager/guest-common/docs] improvements for protected backups Dominik Csapak
2021-12-21 15:11   ` Thomas Lamprecht
2021-12-22  7:02     ` Dominik Csapak
2022-01-03  9:12       ` Fabian Ebner
2022-03-10  7:46 ` Fabian Ebner

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=20211216121233.162288-2-f.ebner@proxmox.com \
    --to=f.ebner@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 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