pf-tools commit: r545 [ccaillet-guest] - /trunk/lib/PFTools/Disk.pm

parmelan-guest at users.alioth.debian.org parmelan-guest at users.alioth.debian.org
Fri Sep 28 09:22:47 UTC 2007


Author: ccaillet-guest
Date: Fri Sep 28 09:22:46 2007
New Revision: 545

URL: http://svn.debian.org/wsvn/pf-tools/?sc=1&rev=545
Log:
Initial add of Raid arrays functions :
  * MakeRaidArray : creation of raid array
  * AddDeviceOnArray : for adding a device in an existant array
  * DelDeviceOnArray : for deleting a device in an exiastant array


Modified:
    trunk/lib/PFTools/Disk.pm

Modified: trunk/lib/PFTools/Disk.pm
URL: http://svn.debian.org/wsvn/pf-tools/trunk/lib/PFTools/Disk.pm?rev=545&op=diff
==============================================================================
--- trunk/lib/PFTools/Disk.pm (original)
+++ trunk/lib/PFTools/Disk.pm Fri Sep 28 09:22:46 2007
@@ -579,6 +579,55 @@
 # Managing RAID array(s) (create, add a disk ...)
 #
 
+sub MakeRaidArray ($$$) {
+	my ( $raid_dev, $raid_level, $dev_list ) = @_ ;
+	
+	my ( $cmd, $stat ) ;
+	$cmd = $MDADM.' -C '.$raid_dev.' -l '.$raid_level.' -n '.scalar ( @{$dev_list} ).' '.join ( " ", @{$dev_list} ) ;
+	if ( $DEBUG ) {
+		print 'Exec : '.$cmd."\n" ;
+	} else {
+		if ( ! Exec_cmd ( $cmd, "Unable to create RAID array level ".$raid_level" with command ".$cmd." and with the following error(s)\n" ) ) {
+			return 0 ;
+		}
+	}
+	return CheckArrayRecovery ( $raid_dev ) ;
+}
+
+sub AddDeviceOnArray ($$) {
+	# Variables en parametres d'appel
+	my ( $raid_dev, $device ) = @_ ;
+	# Variables locales a la fonction
+	my $cmd ;
+
+	$cmd = $MDADM.' '.$raid_dev.' -a '.$device ;
+	if ( $DEBUG ) {
+		print 'Exec : '.$cmd."\n" ;
+	} else {
+		if ( ! Exec_cmd ( $cmd, "Problem when adding device ".$device." on ARRAY ".$raid_dev." with command ".$cmd." and with the following error(s)\n" ) ) {
+			return 0 ;
+		}
+	}
+	return CheckArrayRecovery ( $raid_dev ) ;
+}
+
+sub DelDeviceOnArray ($$) {
+	# Variables en parametres d'appel
+	my ( $raid_dev, $device ) = @_ ;
+	# Variables locales a la fonction
+	my $cmd ;
+
+	$cmd = $MDADM.' '.$raid_dev.' -r '.$device ;
+	if ( $DEBUG ) {
+		print 'Exec : '.$cmd."\n" ;
+	} else {
+		if ( ! Exec_cmd ( $cmd, "Problem when deleting device ".$device." on ARRAY ".$raid_dev." with command ".$cmd." and with the following error(s)\n" ) ) {
+			return 0 ;
+		}
+	}
+	return 1 ;
+}
+
 #
 # Managing DRBD cluster(s)
 #




More information about the Pf-tools-commits mailing list