[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