and deprecate the original helper, emitting a warning if it's used. Also document the moved subroutine.
Signed-off-by: Max Carrara <m.carr...@proxmox.com> --- 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<thin pools> (I<logical volumes> with +C<lv_type> B<C<t>>). May optionally be limited to a single I<volume group> 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<C<lvm_list_volumes>|/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