aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authortlh20@labyrinth.cl.cam.ac.uk <tlh20@labyrinth.cl.cam.ac.uk>2003-09-18 11:27:03 +0000
committertlh20@labyrinth.cl.cam.ac.uk <tlh20@labyrinth.cl.cam.ac.uk>2003-09-18 11:27:03 +0000
commita32abaaab996e37ebfb5756a93578558e051f2f8 (patch)
tree15b88c2f2efb2af3dcbc1989b25a649492f27374 /tools
parent879204f28cf4a3a5048d60603fd9faf90488a200 (diff)
downloadxen-a32abaaab996e37ebfb5756a93578558e051f2f8.tar.gz
xen-a32abaaab996e37ebfb5756a93578558e051f2f8.tar.bz2
xen-a32abaaab996e37ebfb5756a93578558e051f2f8.zip
bitkeeper revision 1.433 (3f699687J_HgoywKoa1018zIpJGRrQ)
CommandDomainNew.java, ParseDomainNew.java, Main.java, CommandParser.java: Expand + in -a and -t, allow spaces
Diffstat (limited to 'tools')
-rw-r--r--tools/control/src/org/xenoserver/cmdline/CommandParser.java2
-rw-r--r--tools/control/src/org/xenoserver/cmdline/Main.java21
-rw-r--r--tools/control/src/org/xenoserver/cmdline/ParseDomainNew.java2
-rw-r--r--tools/control/src/org/xenoserver/control/CommandDomainNew.java12
4 files changed, 29 insertions, 8 deletions
diff --git a/tools/control/src/org/xenoserver/cmdline/CommandParser.java b/tools/control/src/org/xenoserver/cmdline/CommandParser.java
index 1f558c3605..af8adfe268 100644
--- a/tools/control/src/org/xenoserver/cmdline/CommandParser.java
+++ b/tools/control/src/org/xenoserver/cmdline/CommandParser.java
@@ -84,7 +84,7 @@ public abstract class CommandParser {
*/
public int getIntParameter(List args, char key, int def) {
String r = getParameter(args, key);
- return (r == null) ? def : (Integer.parseInt(r));
+ return (r == null) ? def : (Integer.parseInt(r.trim()));
}
/**
diff --git a/tools/control/src/org/xenoserver/cmdline/Main.java b/tools/control/src/org/xenoserver/cmdline/Main.java
index fe7c6a2c25..cada1a10b8 100644
--- a/tools/control/src/org/xenoserver/cmdline/Main.java
+++ b/tools/control/src/org/xenoserver/cmdline/Main.java
@@ -64,8 +64,27 @@ public class Main {
Defaults d = new Defaults();
int ec = -1;
LinkedList arglist = new LinkedList();
+ boolean seen_arg = false;
+ String collected = null;
for ( int i=0; i<args.length; i++ ) {
- arglist.add( args[i] );
+ if (!(args[i].startsWith("-"))) {
+ if (seen_arg) {
+ collected += " " + args[i];
+ } else {
+ arglist.add(args[i]);
+ }
+ }
+ if (args[i].startsWith("-")) {
+ if (collected != null) {
+ arglist.add ( collected );
+ collected = null;
+ }
+ collected = args[i];
+ seen_arg = true;
+ }
+ }
+ if (collected != null) {
+ arglist.add( collected );
}
try {
diff --git a/tools/control/src/org/xenoserver/cmdline/ParseDomainNew.java b/tools/control/src/org/xenoserver/cmdline/ParseDomainNew.java
index 9a35387542..132c9eff3b 100644
--- a/tools/control/src/org/xenoserver/cmdline/ParseDomainNew.java
+++ b/tools/control/src/org/xenoserver/cmdline/ParseDomainNew.java
@@ -17,7 +17,7 @@ public class ParseDomainNew extends CommandParser {
String image = getStringParameter(args, 'i', d.domainImage);
String initrd = getStringParameter(args, 'r', d.domainInitRD);
int vifs = getIntParameter(args, 'v', d.domainVIFs);
- String bargs = getStringParameter(args, 'a', d.args) + " ";
+ 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);
diff --git a/tools/control/src/org/xenoserver/control/CommandDomainNew.java b/tools/control/src/org/xenoserver/control/CommandDomainNew.java
index 1060df9c59..a5d69c3d4a 100644
--- a/tools/control/src/org/xenoserver/control/CommandDomainNew.java
+++ b/tools/control/src/org/xenoserver/control/CommandDomainNew.java
@@ -212,6 +212,7 @@ public class CommandDomainNew extends Command {
}
/* Set up boot parameters to pass to xi_build. */
+ bargs = StringPattern.parse(bargs).resolve(domain_id) + " ";
if (root_dev.equals("/dev/nfs")) {
if (vifs == 0) {
throw new CommandFailedException("Cannot use NFS root without VIFs configured");
@@ -224,7 +225,7 @@ public class CommandDomainNew extends Command {
}
bargs =
(bargs
- + " root=/dev/nfs " + root_args + " "
+ + " root=/dev/nfs " + StringPattern.parse(root_args).resolve(domain_id) + " "
+ "nfsroot="
+ StringPattern.parse(nfs_root_path).resolve(
domain_id)
@@ -234,7 +235,7 @@ public class CommandDomainNew extends Command {
(bargs
+ " root="
+ StringPattern.parse(root_dev).resolve(domain_id)
- + " " + root_args + " ");
+ + " " + StringPattern.parse(root_args).resolve(domain_id) + " ");
}
@@ -258,19 +259,19 @@ public class CommandDomainNew extends Command {
("ip="
+ domain_ip
+ ":"
- + ((nw_nfs_server == null)
+ + ((nw_nfs_server == null || nw_nfs_server.equals(""))
? ""
: (InetAddressPattern
.parse(nw_nfs_server)
.resolve(domain_id)))
+ ":"
- + ((nw_gw == null)
+ + ((nw_gw == null || nw_gw.equals(""))
? ""
: (InetAddressPattern
.parse(nw_gw)
.resolve(domain_id)))
+ ":"
- + ((nw_mask == null)
+ + ((nw_mask == null || nw_mask.equals(""))
? ""
: InetAddressPattern.parse(nw_mask).resolve(
domain_id))
@@ -342,6 +343,7 @@ public class CommandDomainNew extends Command {
} catch (CommandFailedException e) {
throw e;
} catch (Exception e) {
+ e.printStackTrace();
throw new CommandFailedException(
"Could not create new domain (" + e + ")",
e);