SI/lvm.pm
branch2010-01-17
changeset 10 23dd30396607
parent 7 03ca6d811a17
child 12 a1aee1136609
--- 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 }