@@ -770,12 +770,11 @@ sub Add2LVM { my $lvm = $in->ask_from_listf_('', N("Choose an existing LVM to add to"), sub { ref $_[0] ? $_[0]{VG_name} : $_[0] }, [ @$lvms, N_("new") ]) or return; + require lvm; if (!ref $lvm) { # create new lvm my $name = $in->ask_from_entry('', N("LVM name?")) or return; - $name =~ s/\W/_/g; - $name = substr($name, 0, 63); # max length must be < NAME_LEN / 2 where NAME_LEN is 128 - $lvm = bless { disks => [], VG_name => $name }, 'lvm'; + $lvm = new lvm($name); push @$lvms, $lvm; } raid::make($all_hds->{raids}, $part) if isRAID($part); @@ -783,7 +782,6 @@ sub Add2LVM { push @{$lvm->{disks}}, $part; delete $part->{mntpoint}; - require lvm; lvm::check($in) if $::isStandalone; lvm::vg_add($part); lvm::update_size($lvm); @@ -149,7 +149,7 @@ sub lvms { my $name = lvm::get_vg($_) or next; my ($lvm) = grep { $_->{VG_name} eq $name } @lvms; if (!$lvm) { - $lvm = bless { disks => [], VG_name => $name }, 'lvm'; + $lvm = new lvm($name); lvm::update_size($lvm); lvm::get_lvs($lvm); push @lvms, $lvm; @@ -629,7 +629,7 @@ sub auto_allocate_vgs { require lvm; foreach my $vg (@vgs) { - my $lvm = bless { disks => [], VG_name => $vg->{VG_name} }, 'lvm'; + my $lvm = new lvm($vg->{VG_name}); push @{$all_hds->{lvms}}, $lvm; my @pvs_ = grep { !$vg->{parts} || $vg->{parts} =~ /\Q$_->{mntpoint}/ } @pvs; @@ -13,6 +13,12 @@ use devices; use run_program; #- for partition_table_xxx emulation +sub new { + my ($class, $name) = @_; + $name =~ s/\W/_/g; + $name = substr($name, 0, 63); # max length must be < NAME_LEN / 2 where NAME_LEN is 128 + bless { disks => [], VG_name => $name }, $class; +} sub hasExtended { 0 } sub adjustStart {} sub adjustEnd {} |