SI/lvm.pm
changeset 12 a1aee1136609
parent 10 23dd30396607
child 13 2e3ad71484ea
equal deleted inserted replaced
11:42c603eb6301 12:a1aee1136609
    14 sub _vgs(\%) {
    14 sub _vgs(\%) {
    15     return @volumegroups if @volumegroups;
    15     return @volumegroups if @volumegroups;
    16 
    16 
    17     my $devs = shift;
    17     my $devs = shift;
    18 
    18 
    19     use Data::Dumper;
    19     # find the physical volumes we already recognised as „non-removable“
    20     die Dumper \@pvs;
    20     my @pvs = grep { $_ ~~ $devs->{disk} } map { s/\s*//; (split /:/)[0] } `pvdisplay -c`;
    21     my @pvs = grep { exists $devs->{disk}{$_} } map { s/\s*//; (split /:/)[0] } `pvdisplay -c`;
       
    22 
       
    23     return @volumegroups = map { (split /:/)[1] } `pvdisplay -c @pvs 2>/dev/null`;
    21     return @volumegroups = map { (split /:/)[1] } `pvdisplay -c @pvs 2>/dev/null`;
    24 }
    22 }
    25 
    23 
    26 sub volumes(\%) {
    24 sub volumes(\%) {
    27     my ($devs) = @_;
    25     my ($devs) = @_;
    32     my @vgs = _vgs(%$devs);
    30     my @vgs = _vgs(%$devs);
    33     my @lvs = map { readlink } 
    31     my @lvs = map { readlink } 
    34 	      map { s/^\s*//; (split /:/)[0] } 
    32 	      map { s/^\s*//; (split /:/)[0] } 
    35 	      grep { (split /:/)[1] ~~ @vgs } `lvdisplay -c`;
    33 	      grep { (split /:/)[1] ~~ @vgs } `lvdisplay -c`;
    36 
    34 
    37     @{$devs->{volume}}{@lvs} = ();
    35     foreach (keys %{$devs->{volume}}) {
    38 
    36 	warn "---> $_\n";
       
    37 	$devs->{volume}{$_} = {
       
    38 	    vol_type => ($_ ~~ @lvs) ? "lv" : "",
       
    39 	}
       
    40     }
       
    41 ### $devs
       
    42     #@{$devs->{volume}}{@lvs} = map { { vol_type => "lv"  } } @lvs;
    39 
    43 
    40 }
    44 }
    41 
    45 
    42 sub vgcfgbackup($\%) {
    46 sub vgcfgbackup($\%) {
    43     my ($file, $devs) = @_;
    47     my ($file, $devs) = @_;