Hi!
Attached is a patch which fixes the wipefs problem.
It adds a /dev prefix to wipefs and lvremove commands
and reorders lvchange -a n to be executed after wiping
and removing the logical volumes.
Regards
Christian
--- Commands.pm.orig 2014-06-03 10:55:53.000000000 +0200
+++ Commands.pm 2014-07-02 14:31:10.000000000 +0200
@@ -647,7 +647,7 @@
# remove all volumes that do not exist anymore or need not be preserved
foreach my $lv (keys %{ $FAI::current_lvm_config{$vg}{volumes} }) {
my $pre_deps_cl = "";
- $pre_deps_cl = ",self_cleared_" .
+ $pre_deps_cl = "self_cleared_" .
join(",self_cleared_", @{ $FAI::current_dev_children{"/dev/$vg/$lv"} })
if (defined($FAI::current_dev_children{"/dev/$vg/$lv"}) &&
scalar(@{ $FAI::current_dev_children{"/dev/$vg/$lv"} }));
@@ -655,16 +655,16 @@
if (defined ( $FAI::configs{"VG_$vg"}{volumes}{$lv})) {
if ($FAI::configs{"VG_$vg"}{volumes}{$lv}{size}{preserve} == 1 ||
$FAI::configs{"VG_$vg"}{volumes}{$lv}{size}{resize} == 1) {
- &FAI::push_command("true", "vgchange_a_n_VG_$vg$pre_deps_cl",
+ &FAI::push_command("true", "vgchange_a_n_VG_$vg,$pre_deps_cl",
"exist_/dev/$vg/$lv,self_cleared_/dev/$vg/$lv");
next;
}
}
- &FAI::push_command( "wipefs -a $vg/$lv",
- "vgchange_a_n_VG_$vg$pre_deps_cl",
+ &FAI::push_command( "wipefs -a /dev/$vg/$lv",
+ "$pre_deps_cl",
"wipefs_$vg/$lv");
- &FAI::push_command( "lvremove -f $vg/$lv",
+ &FAI::push_command( "lvremove -f /dev/$vg/$lv",
"wipefs_$vg/$lv",
"lv_rm_$vg/$lv,self_cleared_/dev/$vg/$lv");
$vg_setup_pre .= ",lv_rm_$vg/$lv";
@@ -682,14 +682,14 @@
my $vg_destroy_pre = "vgchange_a_n_VG_$vg";
foreach my $lv (keys %{ $FAI::current_lvm_config{$vg}{volumes} }) {
my $pre_deps_cl = "";
- $pre_deps_cl = ",self_cleared_" .
+ $pre_deps_cl = "self_cleared_" .
join(",self_cleared_", @{ $FAI::current_dev_children{"/dev/$vg/$lv"} })
if (defined($FAI::current_dev_children{"/dev/$vg/$lv"}) &&
scalar(@{ $FAI::current_dev_children{"/dev/$vg/$lv"} }));
- &FAI::push_command( "wipefs -a $vg/$lv",
- "vgchange_a_n_VG_$vg$pre_deps_cl",
+ &FAI::push_command( "wipefs -a /dev/$vg/$lv",
+ "$pre_deps_cl",
"wipefs_$vg/$lv");
- &FAI::push_command( "lvremove -f $vg/$lv",
+ &FAI::push_command( "lvremove -f /dev/$vg/$lv",
"wipefs_$vg/$lv",
"lv_rm_$vg/$lv,self_cleared_/dev/$vg/$lv");
$vg_destroy_pre .= ",lv_rm_$vg/$lv";
@@ -727,14 +727,12 @@
my $vg = $1;
my $vg_pre = "vgchange_a_n_VG_$vg";
my $pre_deps_vgc = "";
- foreach my $c (@{ $FAI::current_dev_children{$d} }) {
- $pre_deps_vgc = ",self_cleared_" .
- join(",self_cleared_", @{ $FAI::current_dev_children{$c} })
- if (defined($FAI::current_dev_children{$c}) &&
- scalar(@{ $FAI::current_dev_children{$c} }));
- }
+ $pre_deps_vgc = ",self_cleared_" .
+ join(",self_cleared_", @{ $FAI::current_dev_children{$d} })
+ if (defined($FAI::current_dev_children{$d}) &&
+ scalar(@{ $FAI::current_dev_children{$d} }));
$pre_deps_vgc =~ s/^,//;
- &FAI::push_command("vgchange -a n $1", "$pre_deps_vgc", $vg_pre);
+ &FAI::push_command("vgchange -a n $vg", "$pre_deps_vgc", $vg_pre);
$vg_pre .= ",pv_sigs_removed_$vg" if (&FAI::cleanup_vg($vg));
my $pre_deps_cl = "";
$pre_deps_cl = ",self_cleared_" .