bitkeeper revision 1.431 (3f689945jnFujVkprh_vptT464scvA)
authortlh20@labyrinth.cl.cam.ac.uk <tlh20@labyrinth.cl.cam.ac.uk>
Wed, 17 Sep 2003 17:26:29 +0000 (17:26 +0000)
committertlh20@labyrinth.cl.cam.ac.uk <tlh20@labyrinth.cl.cam.ac.uk>
Wed, 17 Sep 2003 17:26:29 +0000 (17:26 +0000)
xenctl.xml, Defaults.java, CommandDomainNew.java, ParseDomainNew.java:
  Add <root_args>ro</root_args> option to xenctl

tools/control/src/org/xenoserver/cmdline/ParseDomainNew.java
tools/control/src/org/xenoserver/control/CommandDomainNew.java
tools/control/src/org/xenoserver/control/Defaults.java
tools/control/xenctl.xml

index 6ee771914e48171522d54d301c5b21b71751b8de..9a353875422fb4c875806c8827ad85aca687003d 100644 (file)
@@ -19,6 +19,7 @@ public class ParseDomainNew extends CommandParser {
         int vifs = getIntParameter(args, 'v', d.domainVIFs);
         String bargs = getStringParameter(args, 'a', d.args) + " ";
         String root_dev = getStringParameter(args, 'd', d.rootDevice);
+        String root_args = getStringParameter(args, 't', d.rootArgs);
         String usr_dev = getStringParameter(args, 'u', d.usrDevice);
         String nfs_root_path = getStringParameter(args, 'f', d.nwNFSRoot);
         String nw_ip = getStringParameter(args, '4', d.nwIP);
@@ -39,6 +40,7 @@ public class ParseDomainNew extends CommandParser {
                 vifs,
                 bargs,
                 root_dev,
+                root_args,
                 nfs_root_path,
                 nw_ip,
                 nw_gw,
@@ -78,7 +80,7 @@ public class ParseDomainNew extends CommandParser {
     }
 
     public String getUsage() {
-        return "[-n<domain_name>] [-k<size>] [-i<image>] [-v<num_vifs>] [-r<initrd>] [-d<root_device>] [-u<usr_device>] [-f<nfs_root>] [-s<nfs_boot_server>] [-4<ipv4_boot_address>] [-g<ipv4_boot_gateway>] [-m<ipv4_boot_netmask>] [-h<hostname>] [-a<args>]";
+        return "[-n<domain_name>] [-k<size>] [-i<image>] [-v<num_vifs>] [-r<initrd>] [-d<root_device>] [-t<root_mount_args>] [-u<usr_device>] [-f<nfs_root>] [-s<nfs_boot_server>] [-4<ipv4_boot_address>] [-g<ipv4_boot_gateway>] [-m<ipv4_boot_netmask>] [-h<hostname>] [-a<args>]";
     }
 
     public String getHelpText() {
@@ -93,6 +95,7 @@ public class ParseDomainNew extends CommandParser {
             + "  -v  Number of VIFs                           domain_vifs\n"
             + "  -r  InitRD (if required)                     domain_init_rd\n"
             + "  -d  Root device (e.g /dev/nfs, /dev/hda3)    root_device\n"
+            + "  -t  Root mount args (e.g ro)                 root_args\n"
             + "  -u  Usr dev/path (e.g /dev/hda3, server:path)usr_device\n"
             + "  -a  Additional boot parameters               args\n"
             + "\n"
index 54b12e0aa0d50bb6f1e64d7d658bbe3b5fe6dab1..1060df9c5993cb6c09e20a04f4d31efff40f27c6 100644 (file)
@@ -32,6 +32,8 @@ public class CommandDomainNew extends Command {
     private String bargs;
     /** Root device */
     private String root_dev;
+    /** Root mount args */
+    private String root_args;
     /** Usr device */
     private String usr_dev;
     /** NFS root path */
@@ -91,13 +93,14 @@ public class CommandDomainNew extends Command {
         int vifs,
         String bargs,
         String root_dev,
+        String root_args,
         String nfs_root_path,
         String nw_ip,
         String nw_gw,
         String nw_mask,
         String nw_nfs_server,
         String nw_host) {
-        this(d,name,size,image,initrd,vifs,bargs,root_dev,nfs_root_path,nw_ip,nw_gw,nw_mask,nw_nfs_server,nw_host,null);
+        this(d,name,size,image,initrd,vifs,bargs,root_dev,root_args,nfs_root_path,nw_ip,nw_gw,nw_mask,nw_nfs_server,nw_host,null);
     }
     
     public CommandDomainNew(
@@ -109,6 +112,7 @@ public class CommandDomainNew extends Command {
         int vifs,
         String bargs,
         String root_dev,
+        String root_args,
         String nfs_root_path,
         String nw_ip,
         String nw_gw,
@@ -124,6 +128,7 @@ public class CommandDomainNew extends Command {
             this.vifs = vifs;
             this.bargs = bargs;
             this.root_dev = root_dev;
+            this.root_args = root_args;
             this.nfs_root_path = nfs_root_path;
             this.nw_ip = nw_ip;
             this.nw_gw = nw_gw;
@@ -219,7 +224,7 @@ public class CommandDomainNew extends Command {
                     }
                     bargs =
                         (bargs
-                            + " root=/dev/nfs "
+                            + " root=/dev/nfs " + root_args + " " 
                             + "nfsroot="
                             + StringPattern.parse(nfs_root_path).resolve(
                                 domain_id)
@@ -229,7 +234,7 @@ public class CommandDomainNew extends Command {
                         (bargs
                             + " root="
                             + StringPattern.parse(root_dev).resolve(domain_id)
-                            + " ro ");
+                            + " " + root_args + " ");
 
                 }
                 
index bf5cc62d8e0f954243b86b4df67eac974458664e..c10d1054bb1f6991bafc6f4a63f4e20a8336cb8c 100644 (file)
@@ -29,6 +29,8 @@ public class Defaults {
     public int domainVIFs;
     /** Default root device. */
     public String rootDevice;
+    /** Default root mount args */
+    public String rootArgs;
     /** Default usr device. */
     public String usrDevice;
     /** Default IP address pattern. */
@@ -88,6 +90,7 @@ public class Defaults {
         System.out.println("   domainImage     " + domainImage);
         System.out.println("   domainInitRD    " + domainInitRD);
         System.out.println("   rootDevice      " + rootDevice);
+        System.out.println("   rootArgs        " + rootArgs);
         System.out.println("   usrDevice       " + usrDevice);
         System.out.println("   NWIP            " + nwIP);
         System.out.println("   NWGW            " + nwGateway);
@@ -153,6 +156,8 @@ public class Defaults {
                     domainVIFs = Integer.parseInt(s);
                 } else if (lastName.equals("root_device")) {
                     rootDevice = s;
+                } else if (lastName.equals("root_args")) {
+                    rootArgs = s;
                 } else if (lastName.equals("usr_device")) {
                     usrDevice = s;
                 } else if (lastName.equals("nw_ip")) {
index 77bd5dcc7ef1c8f6c7837a418c3338d4570b112e..1d86847d50d28ea25b815343420d31649c146e0e 100644 (file)
@@ -6,6 +6,7 @@
 <domain_image>./image</domain_image>
 <domain_vifs>1</domain_vifs>
 <root_device>/dev/nfs</root_device>
+<root_args>ro</root_args>
 <nw_ip>=+</nw_ip>
 <nw_gw>=</nw_gw>
 <nw_mask>=</nw_mask>