equal
deleted
inserted
replaced
5 use strict; |
5 use strict; |
6 use warnings; |
6 use warnings; |
7 use IO::File; |
7 use IO::File; |
8 use Cwd qw(abs_path); |
8 use Cwd qw(abs_path); |
9 use File::Basename; |
9 use File::Basename; |
|
10 use feature "switch"; |
10 |
11 |
11 use SI::tools; |
12 use SI::tools; |
12 |
13 |
13 my @volumegroups = (); |
14 my @volumegroups = (); |
14 |
15 |
65 verbose("saving vg *\n"); |
66 verbose("saving vg *\n"); |
66 $file = sprintf $file, "*"; |
67 $file = sprintf $file, "*"; |
67 run("vgcfgbackup -f '$file' >/dev/null"); |
68 run("vgcfgbackup -f '$file' >/dev/null"); |
68 } |
69 } |
69 |
70 |
|
71 sub pvcreate(\%) { |
|
72 my $devs = shift; |
|
73 foreach my $volume ( keys %{$devs->{volume}} ) { |
|
74 my $v = $devs->{volume}{$volume}; |
|
75 next if $v->{origin} ne "ptable" |
|
76 or not defined $v->{type} |
|
77 or $v->{type} !~ /^lvm/i; |
|
78 run("pvcreate -y -ff -u $v->{uuid} $volume"); |
|
79 } |
|
80 } |
|
81 |
|
82 sub vgcfgrestore($\%) { |
|
83 my @cfgs = glob($_[0]); |
|
84 my $devs = shift; |
|
85 |
|
86 foreach (@cfgs) { |
|
87 my $vg = basename($_); |
|
88 next if $vg eq "vg.*"; |
|
89 print $vg, "\n"; |
|
90 } |
|
91 } |
|
92 |
|
93 sub mkfs(\%) { |
|
94 my $devs = shift; |
|
95 foreach my $volume ( keys %{$devs->{volume}} ) { |
|
96 my $v = $devs->{volume}{$volume}; |
|
97 next if $v->{origin} ne "lvm" |
|
98 or not defined $v->{type}; |
|
99 |
|
100 my $label = default("" => $v->{label}); |
|
101 my $uuid = default("" => $v->{uuid}); |
|
102 |
|
103 given($v->{type}) { |
|
104 when(/ext/) { |
|
105 run("mkfs -t $v->{type} -L '$label' -U '$uuid' $volume"); |
|
106 }; |
|
107 when(/swap/) { |
|
108 run("mkswap -L '$label' -U '$uuid' $volume"); |
|
109 }; |
|
110 } |
|
111 } |
|
112 } |
|
113 |
70 1; |
114 1; |
71 |
115 |
72 # vim:sts=4 sw=4 aw ai si: |
116 # vim:sts=4 sw=4 aw ai si: |