AIX-LVM
view release on metacpan or search on metacpan
lib/AIX/LVM.pm view on Meta::CPAN
"EACH LP COPY ON A SEPARATE PV ?:",
"Serialize IO ?:"
);
my @lsvg_prop = (
"VOLUME GROUP:",
"VG IDENTIFIER:",
"VG PERMISSION:",
"VG STATE:",
"PP SIZE:",
"TOTAL PPs:",
"MAX LVs:",
"FREE PPs:",
"USED PPs:",
"OPEN LVs:",
"QUORUM:",
"TOTAL PVs:",
"STALE PVs:",
"STALE PPs:",
"ACTIVE PVs:",
"AUTO ON:",
"MAX PPs per VG:",
"MAX PPs per PV:",
"MAX PVs:",
"LTG size (Dynamic):",
"AUTO SYNC:",
"HOT SPARE:",
"BB POLICY:",
"PV RESTRICTION:",
"VG DESCRIPTORS:",
"LVs:"
);
my @lspv_prop = (
"PHYSICAL VOLUME:",
"VOLUME GROUP:",
"PV IDENTIFIER:",
"VG IDENTIFIER",
"PV STATE:",
"STALE PARTITIONS:",
"ALLOCATABLE:",
"PP SIZE:",
"LOGICAL VOLUMES:",
"TOTAL PPs:",
"VG DESCRIPTORS:",
"FREE PPs:",
"HOT SPARE:",
"USED PPs:",
"MAX REQUEST:",
"FREE DISTRIBUTION:",
"USED DISTRIBUTION:",
"MIRROR POOL:"
);
sub new
{
my $class = shift;
my $self = {};
bless $self, $class;
return $self->init(@_);
}
sub init
{
my $self = shift;
my ($result, %lslv, %lspv, %lsvg, @lslv, @lsvg, @lspv);
my ($lsvg, $lsvg_error) = $self->_exec_open3("lsvg -o");
croak "Error found during execution of lsvg -o: $lsvg_error\n" if $lsvg_error;
@lsvg = $self->_splitter($lsvg, qr'\n+');
foreach my $lvg (@lsvg) {
$self->{$lvg}= $self->_get_lv_pv_props($lvg); #Hierarchy is lsvg -> lslv and lspv
}
return $self;
}
sub get_logical_volume_group
{
my $self = shift;
return sort keys %{$self};
}
sub get_logical_volumes
{
my $self = shift;
return map {keys %{$self->{$_}->{lvol}}}keys %{$self};
}
sub get_physical_volumes
{
my $self = shift;
return map {keys %{$self->{$_}->{pvol}}}keys %{$self};
}
sub get_volume_group_properties
{
my $self = shift;
my $vg = shift;
croak "Pass values for Volume Group\n" unless $vg;
exists $self->{$vg}->{prop}? %{$self->{$vg}->{prop}}:undef;
}
sub get_logical_volume_properties
{
my $self = shift;
my ($vg, $lv) = (shift, shift);
croak "Pass values for Volume Group\n" unless $vg;
croak "Pass values for Logical Volume Group\n" unless $lv;
exists $self->{$vg}->{lvol}->{$lv}->{prop}? %{$self->{$vg}->{lvol}->{$lv}->{prop}} : undef;
}
sub get_physical_volume_properties
{
( run in 2.131 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )