From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 4F1F61FF2C8 for ; Wed, 17 Jul 2024 11:42:02 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 055D4384EC; Wed, 17 Jul 2024 11:42:10 +0200 (CEST) From: Max Carrara To: pve-devel@lists.proxmox.com Date: Wed, 17 Jul 2024 11:40:10 +0200 Message-Id: <20240717094034.124857-13-m.carrara@proxmox.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240717094034.124857-1-m.carrara@proxmox.com> References: <20240717094034.124857-1-m.carrara@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.029 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 SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pve-devel] [RFC pve-storage 12/36] plugin: lvmthin: move helper that lists thinpools to common LVM module X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" and deprecate the original helper, emitting a warning if it's used. Also document the moved subroutine. Signed-off-by: Max Carrara --- src/PVE/Storage/Common/LVM.pm | 49 ++++++++++++++++++++++++++++++++ src/PVE/Storage/LvmThinPlugin.pm | 30 +++++++------------ 2 files changed, 60 insertions(+), 19 deletions(-) diff --git a/src/PVE/Storage/Common/LVM.pm b/src/PVE/Storage/Common/LVM.pm index e0e3263..d4fa95f 100644 --- a/src/PVE/Storage/Common/LVM.pm +++ b/src/PVE/Storage/Common/LVM.pm @@ -16,6 +16,7 @@ our @EXPORT_OK = qw( lvm_destroy_volume_group lvm_vgs lvm_list_volumes + lvm_list_thinpools lvm_lvcreate lvm_lvrename ); @@ -380,6 +381,54 @@ sub lvm_list_volumes : prototype(;$) { return $lvs; } +=pod + +=head3 lvm_list_thinpools + + $thinpools = lvm_list_thinpools() + $thinpools = lvm_list_thinpools($vgname) + +Returns a list of hashes containing all I (I with +C B>). May optionally be limited to a single I by +providing its name C<$vgname>. + +The returned list has the following structure: + + [ + { + lv => 'lv-name-00', + vg => 'vg-name-00', + }, + { + lv => 'lv-name-01', + vg => 'vg-name-00', + }, + ... + ] + +See also: L|/lvm_list_volumes> + +=cut + +sub lvm_list_thinpools : prototype(;$) { + my ($vg) = @_; + + my $lvs = lvm_list_volumes($vg); + my $thinpools = []; + + foreach my $vg (keys %$lvs) { + foreach my $lvname (keys %{$lvs->{$vg}}) { + next if $lvs->{$vg}->{$lvname}->{lv_type} ne 't'; + my $lv = $lvs->{$vg}->{$lvname}; + $lv->{lv} = $lvname; + $lv->{vg} = $vg; + push @$thinpools, $lv; + } + } + + return $thinpools; +} + =head3 lvm_lvcreate lvm_lvcreate($vgname, $name, $size, $tags) diff --git a/src/PVE/Storage/LvmThinPlugin.pm b/src/PVE/Storage/LvmThinPlugin.pm index 480cc78..1fcafdd 100644 --- a/src/PVE/Storage/LvmThinPlugin.pm +++ b/src/PVE/Storage/LvmThinPlugin.pm @@ -6,6 +6,7 @@ use warnings; use IO::File; use PVE::Tools qw(run_command trim); +use PVE::Storage::Common qw(get_deprecation_warning); use PVE::Storage::Common::LVM qw(lvm_vgs lvm_list_volumes); use PVE::Storage::Plugin; use PVE::Storage::LVMPlugin; @@ -25,6 +26,16 @@ use PVE::JSONSchema qw(get_standard_option); use base qw(PVE::Storage::LVMPlugin); +sub list_thinpools { + warn get_deprecation_warning( + "PVE::Storage::Common::LVM::lvm_list_thinpools" + ); + + my ($vgname) = @_; + + return PVE::Storage::Common::LVM::lvm_list_thinpools($vgname); +} + sub type { return 'lvmthin'; } @@ -174,25 +185,6 @@ sub list_images { return $res; } -sub list_thinpools { - my ($vg) = @_; - - my $lvs = lvm_list_volumes($vg); - my $thinpools = []; - - foreach my $vg (keys %$lvs) { - foreach my $lvname (keys %{$lvs->{$vg}}) { - next if $lvs->{$vg}->{$lvname}->{lv_type} ne 't'; - my $lv = $lvs->{$vg}->{$lvname}; - $lv->{lv} = $lvname; - $lv->{vg} = $vg; - push @$thinpools, $lv; - } - } - - return $thinpools; -} - sub status { my ($class, $storeid, $scfg, $cache) = @_; -- 2.39.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel