[Fai-commit] r3405 - in people/michael/features/setup_harddisks_2:
. examples
fai-repository at svn.debian.org
fai-repository at svn.debian.org
Thu Apr 13 12:37:48 UTC 2006
Author: michael-guest
Date: 2006-04-13 12:37:47 +0000 (Thu, 13 Apr 2006)
New Revision: 3405
Modified:
people/michael/features/setup_harddisks_2/examples/model
people/michael/features/setup_harddisks_2/examples/vil
people/michael/features/setup_harddisks_2/setup_harddisks_2
Log:
added modifications as suggested by Thomas
Modified: people/michael/features/setup_harddisks_2/examples/model
===================================================================
--- people/michael/features/setup_harddisks_2/examples/model 2006-04-12 15:18:32 UTC (rev 3404)
+++ people/michael/features/setup_harddisks_2/examples/model 2006-04-13 12:37:47 UTC (rev 3405)
@@ -1,8 +1,8 @@
-disk_config hda
+disk_config hda preserve:7 disklabel:msdos
primary /boot 20 rw ext3
primary swap 1000 sw swap
-primary / 12000 rw ext3
+primary / 12000 rw ext2 -j
logical /tmp 1000 rw,nosuid ext3
-logical /usr 15000 rw ext3
-logical /var preserve7 rw ext3
+logical /usr preserve6 rw ext3
+logical /var 2000- rw ext3
logical /nobackup 0- rw ext3
Modified: people/michael/features/setup_harddisks_2/examples/vil
===================================================================
--- people/michael/features/setup_harddisks_2/examples/vil 2006-04-12 15:18:32 UTC (rev 3404)
+++ people/michael/features/setup_harddisks_2/examples/vil 2006-04-13 12:37:47 UTC (rev 3405)
@@ -29,19 +29,19 @@
disk_config raid
-1 / sda1,sdd1 rw,errors=remount-ro ext2
-1 swap sda2,sdd2 rw swap
-1 - sda3,sdd3 default ext2
+raid1 / sda1,sdd1 rw,errors=remount-ro ext2
+raid1 swap sda2,sdd2 rw swap
+raid1 - sda3,sdd3 default ext2
-1 - sdb1,sde1 default ext2
-1 - sdc1,sdf1 default ext2
+raid0 - sdb1,sde1 default ext2
+raid0 - sdc1,sdf1 default ext2
# config the LVM
disk_config lvm
pv default md2,md3
-lv:default _usr:/usr 2048 rw,notail reiser
-lv:default _var:/var 600 rw,notail reiser
-lv:default _e_h:/export/home 10240 rw,notail reiser
-lv:default _e_s:/export/sites 2048 rw,notail reiser
-lv:default _v:/vservers 2048 rw ext3
+default:_usr /usr 2048 rw,notail reiser
+default:_var /var 600 rw,notail reiser
+default:_e_h /export/home 10240 rw,notail reiser
+default:_e_s /export/sites 2048 rw,notail reiser
+default:_v /vservers 2048 rw ext3
Modified: people/michael/features/setup_harddisks_2/setup_harddisks_2
===================================================================
--- people/michael/features/setup_harddisks_2/setup_harddisks_2 2006-04-12 15:18:32 UTC (rev 3404)
+++ people/michael/features/setup_harddisks_2/setup_harddisks_2 2006-04-13 12:37:47 UTC (rev 3405)
@@ -12,12 +12,18 @@
# config ::= disk_config lvm
# | disk_config raid
# | disk_config end
-# | disk_config disk[[:digit:]]+
-# | disk_config [^[:space:]]+
+# | disk_config disk[[:digit:]]+( <option>)*
+# | disk_config [^[:space:]]+( <option>)*
# /* fully qualified device-path or short form, like hda, whereby full
# * path is assumed to be /dev/hda */
# | <volume>
#
+# option ::= /* empty */
+# | preserve:[[:digit:]]+(,[[:digit:]]+)*
+# /* preserve partitions */
+# | disklabel:(msdos|sun)
+# /* write a disklabel - default is msdos */
+#
# volume ::= <type> <mountpoint> <size> <mount_options> <filesystem> <fs_options>
# | pv <name> <size>
# /* lvm pv */
@@ -26,10 +32,10 @@
# /* for physical disks only */
# | logical
# /* for physical disks only */
-# | [015]
+# | raid[015]
# /* raid level */
-# | lv:[^/[:space:]]+
-# /* lvm logical volume and pv name */
+# | [^/[:space:]]+:[^/[:space:]]+
+# /* lvm logical volume: pv name and lv name*/
#
# mountpoint ::= -
# /* do not mount */
@@ -37,8 +43,6 @@
# /* swap space */
# | /[^[:space:]]*
# /* fully qualified path */
-# | [^:[:space:]]:/[^[:space:]]*
-# /* lvm lv name:fully qualified path */
#
# name ::= [^/[:space:]]+
# /* lvm volume group name */
@@ -66,7 +70,6 @@
#
#
# TODO - Other things the parser/semantic analysis must take care of in the future:
-# * for lv:<name> a line pv <name> must have been found before
# * only a single RAID and LVM stanza should be allowed
# * boot option is not supported yet - is it used by anybody?
# * check Debian BTS for other requests
@@ -100,9 +103,16 @@
next;
}
# disk_config
- elsif( $line =~ /^disk_config\s+(end|lvm|raid|disk\d+|[^\s]+)$/ )
+ elsif( $line =~ /^disk_config\s+(end|lvm|raid|disk\d+(\s+.*)?|\S+(\s+.*)?)$/ )
{
my $dev = $1;
+ my $dev_options = undef;
+ if( $dev =~ /^(\S+)\s+(\S+.*)$/ )
+ {
+ $dev = $1;
+ $dev_options = $2;
+ }
+
# end of disk_config
if( $dev =~ /^end$/ )
{
@@ -144,6 +154,28 @@
{
$mode = "phy_/dev/" . $dev;
}
+
+ # parse options
+ if( $mode =~ /^phy/ && defined( $dev_options ) )
+ {
+ foreach my $o ( split( /\s+/, $dev_options ) )
+ {
+ if( $o =~ /^preserve:\d+(,\d+)*$/ )
+ {
+ }
+ elsif( $o =~ /^disklabel:(msdos|sun)$/ )
+ {
+ }
+ else
+ {
+ die "Syntax error in line " . $line_no . " - invalid option " . $o . "\n";
+ }
+ }
+ }
+ elsif( defined( $dev_options ) )
+ {
+ die "Syntax error in line " . $line_no . "\n";
+ }
}
# volume
else
@@ -154,12 +186,14 @@
my $mount_options = "";
my $filesystem = "";
my $fs_options = "";
+ # volume group
if( $mode eq "lvm" && $line =~ /^pv\s+([^\/\s]+)\s+(\S+)$/ )
{
$type = "pv";
$mountpoint = $1;
$size = $2;
}
+ # physical partition
elsif( $mode =~ /^phy/ && $line =~ /^(primary|logical)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)(\s+(.*))?$/ )
{
$type = $1;
@@ -169,7 +203,8 @@
$filesystem = $5;
$fs_options = $7;
}
- elsif( $mode eq "raid" && $line =~ /^([015])\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)(\s+(.*))?$/ )
+ # RAID definition
+ elsif( $mode eq "raid" && $line =~ /^(raid[015])\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)(\s+(.*))?$/ )
{
$type = $1;
$mountpoint = $2;
@@ -178,7 +213,8 @@
$filesystem = $5;
$fs_options = $7;
}
- elsif( $mode eq "lvm" && $line =~ /^(lv:\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)(\s+(.*))?$/ )
+ # logical volume
+ elsif( $mode eq "lvm" && $line =~ /^(\S+:\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)(\s+(.*))?$/ )
{
$type = $1;
$mountpoint = $2;
@@ -192,12 +228,10 @@
die "Syntax error in line " . $line_no . "\n";
}
- if( $mode ne "lvm" && $mountpoint =~ /^(-|swap|\/(\S+)?)$/ )
+ # test for valid mount point
+ if( $type ne "pv" && $mountpoint =~ /^(-|swap|\/(\S+)?)$/ )
{
}
- elsif( $type =~ /^lv/ && $mountpoint =~ /^[^:\s]+:(-|swap|\/(\S+)?)$/ )
- {
- }
elsif( $type eq "pv" )
{
}
@@ -206,10 +240,11 @@
die "Syntax error in line " . $line_no . " - invalid mount point " . $mountpoint . "\n";
}
+ # test valid size format
if( ( $type eq "pv" || $mode eq "raid" ) && $size =~ /^[^,\s]+(,[^,\s]+)*$/ )
{
}
- elsif( ( $mode =~ /^phy/ || $type =~ /^lv/ ) && ( $size =~ /^(\d+%?(-(\d+%?)?)?|-\d+%?)$/ ) )
+ elsif( ( $mode =~ /^phy/ || $type =~ /\S+:\S+/ ) && ( $size =~ /^(\d+%?(-(\d+%?)?)?|-\d+%?)$/ ) )
{
}
elsif( $mode =~ /^phy/ && ( $size =~ /^preserve\d+$/ ) )
@@ -227,6 +262,7 @@
}
}
+ # make sure that filesystem creator exists
if( $type ne "pv" )
{
if( $filesystem =~ /^(-|swap)$/ )
@@ -234,9 +270,14 @@
}
else
{
- # test for existance of mkfs.$filesystem
+ # TODO - test for existance of mkfs.$filesystem
}
}
+
+ if( $type =~ /\S+:\S+/ )
+ {
+ # TODO - verify that pv name has been defined already
+ }
}
}
More information about the Fai-commit
mailing list