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 )