Linux-LVM2
view release on metacpan or search on metacpan
lib/Linux/LVM2.pm view on Meta::CPAN
return 1;
}
}
return;
}
sub is_vg {
my $self = shift;
my $vg_name = shift;
if ( $self->vgs()->{$vg_name} ) {
return 1;
}
else {
return;
}
}
sub lv_from_path {
my $self = shift;
my $path = shift;
# find out which device $path is located
my ( $device, $fs_type, $fs_options, $mount_point ) = $self->fs()->get_mounted_device($path);
my $LV = $self->lv_from_dev($device);
if ($LV) {
$LV->fs_type($fs_type);
$LV->fs_options($fs_options);
$LV->mount_point($mount_point);
return $LV;
}
else {
carp "Did not find lv from given path $path\n" if $self->verbose();
}
return;
}
sub lv_from_dev {
my $self = shift;
my $dev = shift;
if ( $dev =~ m#/mapper/# ) {
warn "Trying to translate dev-mapper name to lvm name $dev\n" if $self->verbose();
$dev = Linux::LVM2::Utils::translate_lvm_name($dev);
warn "Translated to $dev\n" if $self->verbose();
}
$dev =~ s#^/dev/##;
$dev =~ s#/$##;
my ( $vg, $lv ) = split /\//, $dev;
if ( $vg && $lv && $self->is_lv( $vg, $lv ) ) {
return $self->vgs()->{$vg}->lvs()->{$lv};
}
# no lv found
return;
}
sub update {
my $self = shift;
$self->_find_vgs( $self->vgs() );
return 1;
}
no Moose;
__PACKAGE__->meta->make_immutable;
1;
__END__
=pod
=encoding utf-8
=head1 NAME
Linux::LVM2 - a Linux LVM2 wrapper.
=head1 SYNOPSIS
use Linux::LVM2;
my $LVM = Linux::LVM2::->new();
=head1 DESCRIPTION
This class wraps the Linux LVM2 subsystem into handy perl classes.
=head1 ATTRIBUTES
=head2 vgs
Contains all VGs present at the last update.
=head2 verbose
When true, be more verbose.
=head2 logger
An instance of Log::Tree.
=head2 sys
An instance of Sys::Run.
=head2 fs
An instance of Sys::FS.
=head1 METHODS
=head2 _find_vgs
Detect all available VGs w/ containing PVs and contained LVs.
=head2 is_lv
Returns true if the given vg/lv is a known LV.
( run in 1.808 second using v1.01-cache-2.11-cpan-39bf76dae61 )