summaryrefslogtreecommitdiffstats
path: root/perl-install/lvm.pm
diff options
context:
space:
mode:
authorMystery Man <unknown@mandriva.org>2002-08-29 08:27:03 +0000
committerMystery Man <unknown@mandriva.org>2002-08-29 08:27:03 +0000
commite3000d1c3652d63caebb334ab96251875e875b5c (patch)
treef1011fca62406be25bdce4ba865d3c0cf9d933e1 /perl-install/lvm.pm
parent71180d5532cd2fe1853cc32d8826a04644e2ec08 (diff)
downloaddrakx-backup-do-not-use-e3000d1c3652d63caebb334ab96251875e875b5c.tar
drakx-backup-do-not-use-e3000d1c3652d63caebb334ab96251875e875b5c.tar.gz
drakx-backup-do-not-use-e3000d1c3652d63caebb334ab96251875e875b5c.tar.bz2
drakx-backup-do-not-use-e3000d1c3652d63caebb334ab96251875e875b5c.tar.xz
drakx-backup-do-not-use-e3000d1c3652d63caebb334ab96251875e875b5c.zip
This commit was manufactured by cvs2svn to create tag 'V1_1_9_25mdk'.V1_1_9_25mdk
Diffstat (limited to 'perl-install/lvm.pm')
-rw-r--r--perl-install/lvm.pm134
1 files changed, 0 insertions, 134 deletions
diff --git a/perl-install/lvm.pm b/perl-install/lvm.pm
deleted file mode 100644
index 01e8e55a6..000000000
--- a/perl-install/lvm.pm
+++ /dev/null
@@ -1,134 +0,0 @@
-package lvm; # $Id$
-
-use diagnostics;
-use strict;
-
-#-######################################################################################
-#- misc imports
-#-######################################################################################
-use common;
-use modules;
-use fsedit;
-use devices;
-use run_program;
-
-#- for partition_table_xxx emulation
-sub hasExtended { 0 }
-sub adjustStart {}
-sub adjustEnd {}
-sub write {}
-sub cylinder_size {
- my ($hd) = @_;
- $hd->{PE_size};
-}
-
-init();
-
-sub init {
- eval { modules::load('lvm-mod') };
- run_program::run('vgscan') if !-e '/etc/lvmtab';
- run_program::run('vgchange', '-a', 'y');
-}
-
-sub run {
- if (my $r = run_program::run(@_)) {
- $r;
- } else {
- $? >> 8 == 98 or return;
-
- #- sometimes, it needs running vgscan again, doing so:
- run_program::run('vgscan');
- run_program::run(@_);
- }
-}
-sub run_or_die {
- my ($prog, @para) = @_;
- run($prog, @para) or die "$prog failed\n";
-}
-
-sub check {
- my ($in) = @_;
-
- my $f = '/sbin/pvcreate';
- -e $f or $in->do_pkgs->install('lvm');
- -e $f or $in->ask_warn('', "Mandatory package lvm is missing"), return;
- init();
- 1;
-}
-
-sub get_vg {
- my ($part) = @_;
- my $dev = expand_symlinks(devices::make($part->{device}));
- (split(':', run_program::get_stdout('pvdisplay', '-c', $dev)))[1];
-}
-
-sub update_size {
- my ($lvm) = @_;
- my @l = split(':', run_program::get_stdout('vgdisplay', '-c', '-D', $lvm->{VG_name}));
- $lvm->{totalsectors} = ($lvm->{PE_size} = $l[12]) * $l[13];
-}
-
-sub get_lvs {
- my ($lvm) = @_;
- my @l = run_program::get_stdout('vgdisplay', '-v', '-D', $lvm->{VG_name});
- $lvm->{primary}{normal} =
- [
- map {
- my $type = -e "/dev/$_" && fsedit::typeOfPart("/dev/$_");
- my $info = run_program::get_stdout('lvdisplay', '-D', '-c', "/dev/$_");
-
- { device => $_,
- type => $type || 0x83,
- size => (split(':', $info))[6] }
- } map { if_(m|^LV Name\s+/dev/(\S+)|, $1) } @l
- ];
-}
-
-sub vg_add {
- my ($part) = @_;
- my $dev = expand_symlinks(devices::make($part->{device}));
- run_or_die('pvcreate', '-y', '-ff', $dev);
- my $prog = run('vgdisplay', $part->{lvm}) ? 'vgextend' : 'vgcreate';
- run_or_die($prog, $part->{lvm}, $dev);
-}
-
-sub vg_destroy {
- my ($lvm) = @_;
-
- is_empty_array_ref($lvm->{primary}{normal}) or die _("Remove the logical volumes first\n");
- run('vgchange', '-a', 'n', $lvm->{VG_name});
- run_or_die('vgremove', $lvm->{VG_name});
- foreach (@{$lvm->{disks}}) {
- delete $_->{lvm};
- $_->{isFormatted} = 0;
- $_->{notFormatted} = 1;
- }
-}
-
-sub lv_delete {
- my ($lvm, $lv) = @_;
-
- run_or_die('lvremove', '-f', "/dev/$lv->{device}");
-
- my $list = $lvm->{primary}{normal};
- @$list = grep { $_ != $lv } @$list;
-}
-
-sub lv_create {
- my ($lvm, $lv) = @_;
- my $list = $lvm->{primary}{normal} ||= [];
- my $nb = 1 + max(map { basename($_->{device}) } @$list);
- $lv->{device} = "$lvm->{VG_name}/$nb";
- run_or_die('lvcreate', '--size', int($lv->{size} / 2) . 'k', '-n', $nb, $lvm->{VG_name});
- $lv->{notFormatted} = 1;
- $lv->{isFormatted} = 0;
- push @$list, $lv;
-}
-
-sub lv_resize {
- my ($lv, $oldsize) = @_;
- run_or_die($oldsize > $lv->{size} ? ('lvreduce', '-f') : 'lvextend',
- '--size', int($lv->{size} / 2) . 'k', "/dev/$lv->{device}");
-}
-
-1;