*/
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()));
}
/**
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 {
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);
}
/* 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");
}
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)
(bargs
+ " root="
+ StringPattern.parse(root_dev).resolve(domain_id)
- + " " + root_args + " ");
+ + " " + StringPattern.parse(root_args).resolve(domain_id) + " ");
}
("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))
} catch (CommandFailedException e) {
throw e;
} catch (Exception e) {
+ e.printStackTrace();
throw new CommandFailedException(
"Could not create new domain (" + e + ")",
e);