lib/SI/lvm.pm
changeset 36 bdc967bf50d2
parent 28 7d7ca3f05f25
child 37 a61b92c60367
equal deleted inserted replaced
35:1c7e99693439 36:bdc967bf50d2
     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: