r24193 - in /trunk/liblinux-lvm-perl: Changes LVM.pm MANIFEST META.yml README debian/changelog examples/get_lv_info.pl examples/get_pv_info.pl

jeremiah-guest at users.alioth.debian.org jeremiah-guest at users.alioth.debian.org
Tue Aug 12 12:35:12 UTC 2008


Author: jeremiah-guest
Date: Tue Aug 12 12:35:09 2008
New Revision: 24193

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=24193
Log:
(NOT RELEASED YET) New upstream release

Added:
    trunk/liblinux-lvm-perl/META.yml
      - copied unchanged from r24192, branches/upstream/liblinux-lvm-perl/current/META.yml
Modified:
    trunk/liblinux-lvm-perl/Changes
    trunk/liblinux-lvm-perl/LVM.pm
    trunk/liblinux-lvm-perl/MANIFEST
    trunk/liblinux-lvm-perl/README
    trunk/liblinux-lvm-perl/debian/changelog
    trunk/liblinux-lvm-perl/examples/get_lv_info.pl
    trunk/liblinux-lvm-perl/examples/get_pv_info.pl

Modified: trunk/liblinux-lvm-perl/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/liblinux-lvm-perl/Changes?rev=24193&op=diff
==============================================================================
--- trunk/liblinux-lvm-perl/Changes (original)
+++ trunk/liblinux-lvm-perl/Changes Tue Aug 12 12:35:09 2008
@@ -14,7 +14,11 @@
 	- Added some basic error checking.
 
 0.13  Mon Apr 10 07:45:00 2003
-	- Reworked some of the regule expressions.
+	- Reworked some of the regular expressions.
 	- Improved the source documentation.
 	- Added some examples of how to use the module.
 
+0.14  Wed Jul  2 02:54:14 CDT 2008
+        - Fixed some logic errors to get it working a little better
+        - Full rewrite underway
+

Modified: trunk/liblinux-lvm-perl/LVM.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/liblinux-lvm-perl/LVM.pm?rev=24193&op=diff
==============================================================================
--- trunk/liblinux-lvm-perl/LVM.pm (original)
+++ trunk/liblinux-lvm-perl/LVM.pm Tue Aug 12 12:35:09 2008
@@ -36,7 +36,7 @@
                   get_lv_info
 );
 
-our $VERSION = '0.13';
+our $VERSION = '0.14';
 
 
 # Preloaded methods go here.
@@ -151,177 +151,196 @@
     my $lvn;
     my $pvn;
 
-    if( ! -e "/sbin/vgdisplay" ) { die("LVM utilities not installed in /sbin"); }
-    my @vginfo = `/sbin/vgdisplay -v`;
+    if( ! -e "/usr/sbin/vgdisplay" ) { die("LVM utilities not installed in /sbin"); }
+    my @vginfo = `/usr/sbin/vgdisplay -v`;
 
     VGINF: foreach(@vginfo) {
+        chomp;
+        s/^\s+//g;
+        s/\s+$//g;
+        next VGINF if m/^$/;
 
         # Parse the volume group name.
-        if( m/^VG Name\s+(\S+)/ ) { 
+        if( m/VG Name\s+(\S+)/ ) { 
             $vgn = $1; $vghash{$vgn}->{vgname} = $1; 
             next VGINF; }
 
         # Parse the volume group access.
-        elsif( m/^VG Access\s+(\S+)/ ) { 
+        elsif( m/VG Access\s+(\S+)/ ) { 
             $vghash{$vgn}->{access} = $1; 
             next VGINF; }
 
         # Parse the volume group status.
-        elsif( m/^VG Status\s+(.+)/ ) { 
+        elsif( m/VG Status\s+(.+)/ ) { 
             $vghash{$vgn}->{status} = $1; 
             next VGINF; }
 
         # Parse the volume group number.
-        elsif( m/^VG #\s+(\S+)/ ) { 
+        elsif( m/VG #\s+(\S+)/ ) { 
             $vghash{$vgn}->{vg_number} = $1; 
             next VGINF; }
 
         # Parse the maximum logical volume size and size unit for the volume group.
-        elsif( m/^MAX LV Size\s+(\S+) (\S+)/ ) {
+        elsif( m/MAX LV Size\s+(\S+) (\S+)/ ) {
             $vghash{$vgn}->{max_lv_size} = $1;
             $vghash{$vgn}->{max_lv_size_unit} = $2; 
             next VGINF; }
 
         # Parse the maximum number of logical volumes for the volume group.
-        elsif( m/^MAX LV\s+(\S+)/ ) { 
+        elsif( m/MAX LV\s+(\S+)/ ) { 
             $vghash{$vgn}->{max_lv} = $1; 
             next VGINF; }
 
         # Parse the current number of logical volumes for the volume group.
-        elsif( m/^Cur LV\s+(\S+)/ ) { 
+        elsif( m/Cur LV\s+(\S+)/ ) { 
             $vghash{$vgn}->{cur_lv} = $1; 
             next VGINF; }
 
         # Parse the number of open logical volumes for the volume group.
-        elsif( m/^Open LV\s+(\S+)/ )   { 
+        elsif( m/Open LV\s+(\S+)/ )   { 
             $vghash{$vgn}->{open_lv} = $1; 
             next VGINF; }
 
         # Parse the number of physical volumes accessible to the volume group.
-        elsif( m/^Max PV\s+(\S+)/ ) { 
+        elsif( m/Max PV\s+(\S+)/ ) { 
             $vghash{$vgn}->{max_pv} = $1; 
             next VGINF; }
 
         # Parse the current number of physical volumes in the volume group.
-        elsif( m/^Cur PV\s+(\S+)/ ) { 
+        elsif( m/Cur PV\s+(\S+)/ ) { 
             $vghash{$vgn}->{cur_pv} = $1; 
             next VGINF; }
 
         # Parse the number of active physical volumes in the volume group.
-        elsif( m/^Act PV\s+(\S+)/ ) { 
+        elsif( m/Act PV\s+(\S+)/ ) { 
             $vghash{$vgn}->{act_pv} = $1; 
             next VGINF; }
 
         # Parse the size of the volume group.
-        elsif( m/^VG Size\s+(\S+) (\S+)/ ) {
+        elsif( m/VG Size\s+(\S+) (\S+)/ ) {
             $vghash{$vgn}->{vg_size} = $1;
             $vghash{$vgn}->{vg_size_unit} = $2; 
             next VGINF; }
 
         # Parse the physical extent size and unit for one extent of volume group.
-        elsif( m/^PE Size\s+(\S+) (\S+)/ ) {
+        elsif( m/PE Size\s+(\S+) (\S+)/ ) {
             $vghash{$vgn}->{pe_size} = $1;
             $vghash{$vgn}->{pe_size_unit} = $2; 
             next VGINF; }
 
         # Parse the total number and number of free physical extents from the physical disk.
-        elsif( m/^Total PE \/ Free PE\s+(\S+) \/ (\S+)/m ) {
+        elsif( m/Total PE \/ Free PE\s+(\S+) \/ (\S+)/m ) {
             $vghash{$vgn}->{pvols}->{$pvn}->{total_pe} = $1;
             $vghash{$vgn}->{pvols}->{$pvn}->{free_pe} = $2;
             next VGINF; }
 
         # Parse the total number of physical extents from the volume group.
-        elsif( m/^Total PE\s+(\S+)/ ) { 
+        elsif( m/Total PE\s+(\S+)/ ) { 
             $vghash{$vgn}->{total_pe} = $1; 
             next VGINF; }
 
         # Parse the number of allocated physical extents from the volume group.
-        elsif( m/^Alloc PE \/ Size\s+(\S+) \/ (\S+) (\S+)/ ) {
+        elsif( m/Alloc PE \/ Size\s+(\S+) \/ (\S+) (\S+)/ ) {
             $vghash{$vgn}->{alloc_pe} = $1;
             $vghash{$vgn}->{alloc_pe_size} = $2;
             $vghash{$vgn}->{alloc_pe_size_unit} = $3; 
             next VGINF; }
 
         # Parse the volume group name.
-        elsif( m/^Free  PE \/ Size\s+(\S+) \/ (\S+) (\S+)/ ) {
+        elsif( m/Free  PE \/ Size\s+(\S+) \/ (\S+) (\S+)/ ) {
             $vghash{$vgn}->{free_pe} = $1;
             $vghash{$vgn}->{free_pe_size} = $2;
             $vghash{$vgn}->{free_pe_size_unit} = $3; 
             next VGINF; }
 
         # Parse the volume group uuid.
-        elsif( m/^VG UUID\s+(\S+)/ ) { 
+        elsif( m/VG UUID\s+(\S+)/ ) { 
             $vghash{$vgn}->{uuid} = $1; 
             next VGINF; }
 
         # Parse the logical volume name.
-        elsif( m/^LV Name\s+(\S+)/ ) { 
+        elsif( m/LV Name\s+(\S+)/ ) { 
             $lvn = $1; 
             $vghash{$vgn}->{lvols}->{$lvn}->{name} = $1; 
             next VGINF; }
 
+        # Parse the logical volume UUID.
+        elsif( m/LV UUID\s+(\S+)/ ) { 
+            $vghash{$vgn}->{lvols}->{$lvn}->{uuid} = $1; 
+            next VGINF; }
+
+        # Parse the logical volume UUID.
+        elsif( m/Segments\s+(\S+)/ ) { 
+            $vghash{$vgn}->{lvols}->{$lvn}->{segments} = $1; 
+            next VGINF; }
+
         # Parse the logical volume size and unit.
-        elsif( m/^LV Size\s+(\S+) (\S+)/ ) {
+        elsif( m/LV Size\s+(\S+) (\S+)/ ) {
             $vghash{$vgn}->{lvols}->{$lvn}->{lv_size} = $1;
             $vghash{$vgn}->{lvols}->{$lvn}->{lv_size_unit} = $2; 
             next VGINF; }
 
         # Parse the logical volume write access.
-        elsif( m/^LV Write Access\s+(\S+)/ ) { 
+        elsif( m/LV Write Access\s+(\S+)/ ) { 
             $vghash{$vgn}->{lvols}->{$lvn}->{write_access} = $1; 
             next VGINF; }
 
         # Parse the logical volume status.
-        elsif( m/^LV Status\s+(.+)/ ) { 
+        elsif( m/LV Status\s+(.+)/ ) { 
             $vghash{$vgn}->{lvols}->{$lvn}->{status} = $1; 
             next VGINF; }
 
         # Parse the number of logical extents in the logical volume.
-        elsif( m/^Current LE\s+(\S+)/ ) { 
+        elsif( m/Current LE\s+(\S+)/ ) { 
             $vghash{$vgn}->{lvols}->{$lvn}->{cur_le} = $1; 
             next VGINF; }
 
         # Parse the number of allocated logical extents in the logical volume.
-        elsif( m/^Allocated LE\s+(\S+)/ ) { 
+        elsif( m/Allocated LE\s+(\S+)/ ) { 
             $vghash{$vgn}->{lvols}->{$lvn}->{alloc_le} = $1; 
             next VGINF; }
 
         # Parse the allocation type for the logical volume.
-        elsif( m/^Allocation\s+(.+)/ ) { 
+        elsif( m/Allocation\s+(.+)/ ) { 
             $vghash{$vgn}->{lvols}->{$lvn}->{allocation} = $1; 
             next VGINF; }
 
         # Parse the volume number.
-        elsif( m/^LV #\s+(\S+)/ ) { 
+        elsif( m/LV #\s+(\S+)/ ) { 
             $vghash{$vgn}->{lvols}->{$lvn}->{lv_number} = $1; 
             next VGINF; }
 
         # Parse the number of times the logical volume is open.
-        elsif( m/^# open\s+(\S+)/ ) { 
+        elsif( m/# open\s+(\S+)/ ) { 
             $vghash{$vgn}->{lvols}->{$lvn}->{open_lv} = $1; 
             next VGINF; }
 
         # Parse the block device of the logical volume.
-        elsif( m/^Block device\s+(\S+)/ ) { 
+        elsif( m/Block device\s+(\S+)/ ) { 
             $vghash{$vgn}->{lvols}->{$lvn}->{device} = $1; 
             next VGINF; }
 
         # Parse the value for the read ahead sectors of the logical volume.
-        elsif( m/^Read ahead sectors\s+(\S+)/ ) { 
+        elsif( m/Read ahead sectors\s+(\S+)/ ) { 
             $vghash{$vgn}->{lvols}->{$lvn}->{read_ahead} = $1; 
             next VGINF; }
 
         # Parse the physical disk name.
-        elsif( m/^PV Name \(\#\)\s+(\S+) \((\S)\)/ ) {
-            $pvn = $2;
+        elsif( m/PV Name\s+(\S+)/ ) {
+            $pvn = $1;
             $vghash{$vgn}->{pvols}->{$pvn}->{device} = $1;
-            $vghash{$vgn}->{pvols}->{$pvn}->{pv_number} = $2;
             next VGINF; }
 
         # Parse the status of the physical disk.
-        elsif( m/^PV Status\s+(.+)/ ) { 
+        elsif( m/PV Status\s+(.+)/ ) { 
             $vghash{$vgn}->{pvols}->{$pvn}->{status} = $1; 
             next VGINF; }
+
+        # Parse the status of the physical disk.
+        elsif( m/PV UUID\s+(.+)/ ) { 
+            $vghash{$vgn}->{pvols}->{$pvn}->{uuid} = $1; 
+            next VGINF; }
+
     }
     return %vghash;
 } # End of the get_vg_information routine.
@@ -342,71 +361,69 @@
     my %pvhash;
 
     if( ! -e "$pvname" ) { die("Physical Disk: $pvname does not exist."); }
-    if( ! -e "/sbin/pvdisplay" ) { die("LVM utilities not installed in /sbin"); }
-    my @pvinfo = `/sbin/pvdisplay $pvname`;
+    if( ! -e "/usr/sbin/pvdisplay" ) { die("LVM utilities not installed in /sbin"); }
+    my @pvinfo = `/usr/sbin/pvdisplay $pvname`;
 
     PVINF: foreach(@pvinfo) {
         # Get the name of the physical volume.
-        if( m/^PV Name\s+(\S+)/ ) {
+        if( m/PV Name\s+(\S+)/ ) {
             $pvhash{pv_name} = $1;
             next PVINF; }
 
         # Get the name of the volume group the physical volume belongs to.
-        if( m/^VG Name\s+(\S+)/ ) {
+        if( m/VG Name\s+(\S+)/ ) {
             $pvhash{vg_name} = $1;
             next PVINF; }
 
         # Get the size information of the physical volume.
-        if( m/^PV Size\s+(\S+) (\S+) \[(\S+) secs\] \/ (.+)/ ) {
+        if( m/PV Size\s+(\S+) (\S+)/ ) {
             $pvhash{size} = $1;
             $pvhash{size_unit} = $2;
-            $pvhash{sectors} = $3;
-            $pvhash{size_info} = $4;
             next PVINF; }
 
         # Get the physical volume number.
-        if( m/^PV\#\s+(\S+)/ ) {
+        if( m/PV\#\s+(\S+)/ ) {
             $pvhash{pv_number} = $1;
             next PVINF; }
 
         # Get the status of the physical volume.
-        if( m/^PV Status\s+(.+)/ ) {
+        if( m/PV Status\s+(.+)/ ) {
             $pvhash{status} = $1;
             next PVINF; }
 
         # Get the allocation status of the physical volume.
-        if( m/^Allocatable\s+(.+)/ ) {
+        if( m/Allocatable\s+(.+)/ ) {
             $pvhash{allocatable} = $1;
             next PVINF; }
 
         # Get the number of logical volumes on the physical volume.
-        if( m/^Cur LV\s+(\S+)/ ) {
+        if( m/Cur LV\s+(\S+)/ ) {
             $pvhash{num_lvols} = $1;
             next PVINF; }
 
         # Get the physical extent size and unit of the physical volume.
-        if( m/^PE Size \((\S+)\)\s+(\S+)/ ) {
+        if( m/PE Size \((\S+)\)\s+(\S+)/ ) {
             $pvhash{pe_size} = $2;
             $pvhash{pe_size_unit} = $1;
             next PVINF; }
 
         # Get the total numver of physical extents on the physical volume.
-        if( m/^Total PE\s+(\S+)/ ) {
+        if( m/Total PE\s+(\S+)/ ) {
             $pvhash{total_pe} = $1;
             next PVINF; }
 
         # Get the number of free extents on the physical volume.
-        if( m/^Free PE\s+(\S+)/ ) {
+        if( m/Free PE\s+(\S+)/ ) {
             $pvhash{free_pe} = $1;
             next PVINF; }
 
         # Get the number of allocated physical extents on the physical volume.
-        if( m/^Allocated PE\s+(\S+)/ ) {
+        if( m/Allocated PE\s+(\S+)/ ) {
             $pvhash{alloc_pe} = $1;
             next PVINF; }
 
         # Get the UUID of the physical volume.
-        if( m/^PV UUID\s+(\S+)/ ) {
+        if( m/PV UUID\s+(\S+)/ ) {
             $pvhash{uuid} = $1;
             next PVINF; }
     }
@@ -428,69 +445,74 @@
     my $lvname = $_[0];
     my %lvhash;
     if( ! -e "$lvname" ) { die("Logical Disk: $lvname does not exist."); }
-    if( ! -e "/sbin/lvdisplay" ) { die("LVM utilities not installed in /sbin"); }
-    my @lvinfo = `/sbin/lvdisplay $lvname`;
+    if( ! -e "/usr/sbin/lvdisplay" ) { die("LVM utilities not installed in /sbin"); }
+    my @lvinfo = `/usr/sbin/lvdisplay $lvname`;
 
     LVINF: foreach(@lvinfo) {
 
         # Get the logical volume name.
-        if( m/^LV Name\s+(\S+)/ ) {
+        if( m/LV Name\s+(\S+)/ ) {
             $lvhash{lv_name} = $1;
             next LVINF; }
 
         # Get the volume group name.
-        if( m/^VG Name\s+(\S+)/ ) {
+        if( m/VG Name\s+(\S+)/ ) {
             $lvhash{vg_name} = $1;
             next LVINF; }
 
+        # Get the volume group name.
+        if( m/LV UUID\s+(\S+)/ ) {
+            $lvhash{uuid} = $1;
+            next LVINF; }
+
         # Get the logical volume write status.
-        if( m/^LV Write Access\s+(.+)/ ) {
+        if( m/LV Write Access\s+(.+)/ ) {
             $lvhash{access} = $1;
             next LVINF; }
 
         # Get the logical volume status.
-        if( m/^LV Status\s+(.+)/ ) {
+        if( m/LV Status\s+(.+)/ ) {
             $lvhash{status} = $1;
             next LVINF; }
 
         # Get the logical volume number.
-        if( m/^LV \#\s+(\S+)/ ) {
+        if( m/LV \#\s+(\S+)/ ) {
             $lvhash{lv_number} = $1;
             next LVINF; }
 
         # Get the number of opens for the logical volume.
-        if( m/^\# open\s+(\S+)/ ) {
+        if( m/\# open\s+(\S+)/ ) {
             $lvhash{lv_open} = $1;
             next LVINF; }
 
         # Get the logical volume size and size unit.
-        if( m/^LV Size\s+(\S+) (\S+)/ )  {
+        if( m/LV Size\s+(\S+) (\S+)/ )  {
             $lvhash{size} = $1;
             $lvhash{size_unit} = $2;
             next LVINF; }
 
         # Get the number of extents assigned to the logical volume.
-        if( m/^Current LE\s+(\S+)/ ) {
+        if( m/Current LE\s+(\S+)/ ) {
             $lvhash{current_le} = $1;
             next LVINF; }
 
         # Get the number of extents allocated to the logical volume.
-        if( m/^Allocated LE\s+(\S+)/ )  {
+        if( m/Allocated LE\s+(\S+)/ )  {
             $lvhash{alloc_le} = $1;
             next LVINF; }
 
         # Get the extent allocation type of the logical volume.
-        if( m/^Allocation\s+(.+)/ ) {
+        if( m/Allocation\s+(.+)/ ) {
             $lvhash{allocation} = $1;
             next LVINF; }
 
         # Get the number of read ahead sectors for the logical volume.
-        if( m/^Read ahead sectors\s+(\S+)/ ) {
+        if( m/Read ahead sectors\s+(\S+)/ ) {
             $lvhash{read_ahead} = $1;
             next LVINF; }
 
         # Get the block device of the logical volume.
-        if( m/^Block device\s+(\S+)/ ) {
+        if( m/Block device\s+(\S+)/ ) {
             $lvhash{block_device} = $1;
             next LVINF; }
     }

Modified: trunk/liblinux-lvm-perl/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/liblinux-lvm-perl/MANIFEST?rev=24193&op=diff
==============================================================================
--- trunk/liblinux-lvm-perl/MANIFEST (original)
+++ trunk/liblinux-lvm-perl/MANIFEST Tue Aug 12 12:35:09 2008
@@ -7,3 +7,4 @@
 examples/get_lv_info.pl
 examples/get_pv_info.pl
 examples/prt_vg_info.pl
+META.yml                                 Module meta-data (added by MakeMaker)

Modified: trunk/liblinux-lvm-perl/README
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/liblinux-lvm-perl/README?rev=24193&op=diff
==============================================================================
--- trunk/liblinux-lvm-perl/README (original)
+++ trunk/liblinux-lvm-perl/README Tue Aug 12 12:35:09 2008
@@ -1,4 +1,4 @@
-Linux/LVM version 0.01
+Linux/LVM version 0.14
 ======================
 
 This module was written so that I could create my own disk allocation
@@ -22,7 +22,7 @@
 
 COPYRIGHT AND LICENCE
 
-Copyright (C) 2003 Chad Kerner
+Copyright (C) 2008 Chad Kerner
 
 This library is free software; you can redistribute it and/or modify
 it under the same terms as Perl itself. 

Modified: trunk/liblinux-lvm-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/liblinux-lvm-perl/debian/changelog?rev=24193&op=diff
==============================================================================
--- trunk/liblinux-lvm-perl/debian/changelog (original)
+++ trunk/liblinux-lvm-perl/debian/changelog Tue Aug 12 12:35:09 2008
@@ -1,3 +1,9 @@
+liblinux-lvm-perl (0.14-1) UNRELEASED; urgency=low
+
+  * (NOT RELEASED YET) New upstream release
+
+ -- Jeremiah C. Foster <jeremiah at jeremiahfoster.com>  Tue, 12 Aug 2008 14:34:50 +0200
+
 liblinux-lvm-perl (0.13-3) UNRELEASED; urgency=low
 
   * Add debian/README.source to document quilt usage, as required by

Modified: trunk/liblinux-lvm-perl/examples/get_lv_info.pl
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/liblinux-lvm-perl/examples/get_lv_info.pl?rev=24193&op=diff
==============================================================================
--- trunk/liblinux-lvm-perl/examples/get_lv_info.pl (original)
+++ trunk/liblinux-lvm-perl/examples/get_lv_info.pl Tue Aug 12 12:35:09 2008
@@ -1,7 +1,7 @@
 
 use Linux::LVM;
 
-%hash = get_lv_info("/dev/vg00/code");
+%hash = get_lv_info("/dev/vg00/software");
 
 foreach(sort keys %hash) {
     print "$_ = $hash{$_} \n";

Modified: trunk/liblinux-lvm-perl/examples/get_pv_info.pl
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/liblinux-lvm-perl/examples/get_pv_info.pl?rev=24193&op=diff
==============================================================================
--- trunk/liblinux-lvm-perl/examples/get_pv_info.pl (original)
+++ trunk/liblinux-lvm-perl/examples/get_pv_info.pl Tue Aug 12 12:35:09 2008
@@ -1,7 +1,10 @@
 
 use Linux::LVM;
+use Data::Dumper;
 
-%hash = get_pv_info("/dev/hdb");
+%hash = get_pv_info("/dev/hdd1");
+
+print Dumper(\%hash);
 
 foreach(sort keys %hash) {
     print "$_ = $hash{$_} \n";




More information about the Pkg-perl-cvs-commits mailing list