equal
deleted
inserted
replaced
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) = @_; |