diff -r 03ca6d811a17 -r 23dd30396607 SI/lvm.pm --- a/SI/lvm.pm Sat Jan 16 23:53:50 2010 +0100 +++ b/SI/lvm.pm Sun Jan 17 12:13:47 2010 +0100 @@ -1,10 +1,11 @@ package SI::lvm; +use if $ENV{DEBUG} ~~ /lvm|all/ => qw(Smart::Comments); + use strict; use warnings; use IO::File; -use if $ENV{DEBUG} ~~ /lvm|all/ => qw(Smart::Comments); use SI::tools; @@ -15,11 +16,11 @@ my $devs = shift; - my @pvs = grep { $devs->{volume}{$_}{type} =~ /^lvm/ } - grep { defined $devs->{volume}{$_} } - keys %{$devs->{volume}}; + use Data::Dumper; + die Dumper \@pvs; + my @pvs = grep { exists $devs->{disk}{$_} } map { s/\s*//; (split /:/)[0] } `pvdisplay -c`; - return @volumegroups = map { (split /:/)[1] } `pvdisplay -c @pvs`; + return @volumegroups = map { (split /:/)[1] } `pvdisplay -c @pvs 2>/dev/null`; } sub volumes(\%) { @@ -27,9 +28,6 @@ # we can't just use `pvs', since this would return *all* # physical devices known to lvm, not just the non-removable - my @pvs = grep { $devs->{volume}{$_}{type} =~ /^lvm/ } - grep { defined $devs->{volume}{$_} } - keys %{$devs->{volume}}; my @vgs = _vgs(%$devs); my @lvs = map { readlink }