aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortlh20@elite.cl.cam.ac.uk <tlh20@elite.cl.cam.ac.uk>2003-05-08 08:48:17 +0000
committertlh20@elite.cl.cam.ac.uk <tlh20@elite.cl.cam.ac.uk>2003-05-08 08:48:17 +0000
commit35ede0c67a3a6f1347bde6c5957f61cf7a566dc5 (patch)
tree80c4a031fb7000306511e2b03f708ab6f5df6124
parent642bd0999b4d21360384ddc69bbbbbcbc24655fc (diff)
downloadxen-35ede0c67a3a6f1347bde6c5957f61cf7a566dc5.tar.gz
xen-35ede0c67a3a6f1347bde6c5957f61cf7a566dc5.tar.bz2
xen-35ede0c67a3a6f1347bde6c5957f61cf7a566dc5.zip
bitkeeper revision 1.210.1.1 (3eba19d1IIr1Ohw82oc2IN-kKV0kfw)
Allow blank network options, fix spacing around -a in CommandNew
-rwxr-xr-xtools/domctl/domctl34
-rw-r--r--tools/domctl/domctl.xml2
-rw-r--r--tools/domctl/src/uk/ac/cam/cl/xeno/domctl/CommandNew.java30
-rw-r--r--tools/domctl/src/uk/ac/cam/cl/xeno/domctl/Defaults.java29
4 files changed, 54 insertions, 41 deletions
diff --git a/tools/domctl/domctl b/tools/domctl/domctl
index 3f80d21176..9383512f2d 100755
--- a/tools/domctl/domctl
+++ b/tools/domctl/domctl
@@ -1,4 +1,4 @@
-#!/bin/bash -x
+#!/bin/bash
if [ -z "$DEFAULTS_FILE" ] ; then DEFAULTS_FILE=domctl.xml ; fi
if [ -z "$DEFAULTS_PATH" ] ; then DEFAULTS_PATH=.:/etc ; fi
@@ -7,25 +7,27 @@ if [ -z "$IFCONFIG" ] ; then IFCONFIG=/sbin/ifconfig ; fi
if [ -z "$ROUTE" ] ; then ROUTE=/sbin/route ; fi
if [ -z "$JAVA" ] ; then JAVA=java ; fi
-if [ ! -x "$IFCONFIG" ]; then
- echo Could not find executable $IFCONFIG
- exit 1
+if [ "$1" = "new" ] ; then
+ if [ ! -x "$IFCONFIG" ]; then
+ echo Could not find executable $IFCONFIG
+ exit 1
+ fi
+
+ if [ ! -x "$ROUTE" ]; then
+ echo Could not find executable $ROUTE
+ exit 1
+ fi
+
+ # Try to determine dom0 network settings to avoid hard-coding
+ # particular machines in the defaults file
+ LOCAL_IP=$(/sbin/ifconfig $QUERY_DEV | grep 'inet addr' | tr ':' '\t' | awk '{print $3}')
+ LOCAL_MASK=$(/sbin/ifconfig $QUERY_DEV | grep 'Mask' | tr ':' '\t' | awk '{print $7}')
+ LOCAL_ROUTE=$(/sbin/route -n | grep $QUERY_DEV | grep 'G' | awk '{print $2}')
fi
-if [ ! -x "$ROUTE" ]; then
- echo Could not find executable $ROUTE
- exit 1
-fi
-
-# Try to determine dom0 network settings to avoid hard-coding
-# particular machines in the defaults file
-LOCAL_IP=$(/sbin/ifconfig $QUERY_DEV | grep 'inet addr' | tr ':' '\t' | awk '{print $3}')
-LOCAL_MASK=$(/sbin/ifconfig $QUERY_DEV | grep 'Mask' | tr ':' '\t' | awk '{print $7}')
-LOCAL_ROUTE=$(/sbin/route -n | grep $QUERY_DEV | grep 'G' | awk '{print $2}')
-
#ARGS="-DTEST -DDEFAULTS_FILE=$DEFAULTS_FILE -DDEFAULTS_PATH=$DEFAULTS_PATH -DLOCAL_IP=$LOCAL_IP -DLOCAL_MASK=$LOCAL_MASK -DLOCAL_ROUTE=$LOCAL_ROUTE"
ARGS="-DDEFAULTS_FILE=$DEFAULTS_FILE -DDEFAULTS_PATH=$DEFAULTS_PATH -DLOCAL_IP=$LOCAL_IP -DLOCAL_MASK=$LOCAL_MASK -DLOCAL_ROUTE=$LOCAL_ROUTE"
-$JAVA $ARGS -jar domctl.jar $*
+$JAVA $ARGS -jar $(dirname $0)/domctl.jar $*
diff --git a/tools/domctl/domctl.xml b/tools/domctl/domctl.xml
index 168b8da2fa..bfca3cf549 100644
--- a/tools/domctl/domctl.xml
+++ b/tools/domctl/domctl.xml
@@ -10,6 +10,6 @@
<nw_mask>=</nw_mask>
<nw_nfs_server>128.232.32.20</nw_nfs_server>
<nw_nfs_root>/usr/groups/srgboot/moonraider/roots/root+</nw_nfs_root>
-<max_domain_number>2</max_domain_number>
+<max_domain_number>10</max_domain_number>
<xi_tools_dir>/tools/internal/</xi_tools_dir>
</domctl_defaults>
diff --git a/tools/domctl/src/uk/ac/cam/cl/xeno/domctl/CommandNew.java b/tools/domctl/src/uk/ac/cam/cl/xeno/domctl/CommandNew.java
index 1dd915686e..ca051fb16c 100644
--- a/tools/domctl/src/uk/ac/cam/cl/xeno/domctl/CommandNew.java
+++ b/tools/domctl/src/uk/ac/cam/cl/xeno/domctl/CommandNew.java
@@ -13,7 +13,7 @@ public class CommandNew extends Command
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', "");
+ String bargs = getStringParameter (args, 'a', "") + " ";
String root_dev = getStringParameter (args, 'd', d.rootDevice);
String nfs_root_path = getStringParameter (args, 'f', d.NWNFSRoot);
String nw_ip = getStringParameter (args, '4', d.NWIP);
@@ -23,11 +23,12 @@ public class CommandNew extends Command
String nw_host = getStringParameter (args, 'h', d.NWHost);
String domain_ip = "";
int rc = 0;
- int domain_id;
+ int domain_id = -1;
DataInputStream dis;
int idx;
int i;
+ d.describe ();
try
{
@@ -60,20 +61,25 @@ public class CommandNew extends Command
return reportError ("Cannot configure more than " +
d.MaxDomainNumber + " domains");
}
-
- /* Set up boot parameters to pass to xi_build. */
- bargs = "";
+ /* Set up boot parameters to pass to xi_build. */
if (root_dev.equals ("/dev/nfs")) {
if (vifs == 0) {
return reportError ("Cannot use NFS root without VIFs configured");
}
+ if (nfs_root_path == null) {
+ return reportError ("No NFS root specified");
+ }
+ if (nw_nfs_server == null) {
+ return reportError ("No NFS server specified");
+ }
bargs = (bargs +
"root=/dev/nfs " +
"nfsroot=" + StringPattern.parse(nfs_root_path).resolve(domain_id) +
" ");
} else {
- bargs = ("root=" + StringPattern.parse(root_dev).resolve(domain_id) +
+ bargs = (bargs +
+ "root=" + StringPattern.parse(root_dev).resolve(domain_id) +
" ");
}
@@ -89,10 +95,10 @@ public class CommandNew extends Command
}
bargs = ("ip=" + domain_ip +
- ":" + InetAddressPattern.parse(nw_nfs_server).resolve(domain_id) +
- ":" + InetAddressPattern.parse(nw_gw).resolve(domain_id) +
- ":" + InetAddressPattern.parse(nw_mask).resolve(domain_id) +
- ":" + nw_host +
+ ":" + ((nw_nfs_server == null) ? "" : (InetAddressPattern.parse(nw_nfs_server).resolve(domain_id))) +
+ ":" + ((nw_gw == null) ? "" : (InetAddressPattern.parse(nw_gw).resolve(domain_id))) +
+ ":" + ((nw_mask == null) ? "" : InetAddressPattern.parse(nw_mask).resolve(domain_id)) +
+ ":" + ((nw_host == null) ? "" : nw_host) +
":eth0:off " + bargs);
}
@@ -152,6 +158,10 @@ public class CommandNew extends Command
rc = -1;
}
+ if (rc == 0) {
+ System.out.println ("Created domain " + domain_id);
+ }
+
return rc;
}
diff --git a/tools/domctl/src/uk/ac/cam/cl/xeno/domctl/Defaults.java b/tools/domctl/src/uk/ac/cam/cl/xeno/domctl/Defaults.java
index bacce11a95..6019cd150f 100644
--- a/tools/domctl/src/uk/ac/cam/cl/xeno/domctl/Defaults.java
+++ b/tools/domctl/src/uk/ac/cam/cl/xeno/domctl/Defaults.java
@@ -24,7 +24,7 @@ public class Defaults
String NWNFSServer;
String NWNFSRoot;
- int MaxDomainNumber;
+ int MaxDomainNumber = Integer.MAX_VALUE;
String XIToolsDir;
@@ -33,7 +33,6 @@ public class Defaults
public Defaults ()
{
File f = Settings.getDefaultsFile ();
- System.out.println ("f=" + f);
try
{
@@ -50,21 +49,23 @@ public class Defaults
e.printStackTrace();
System.exit(1);
}
+ }
+ public void describe () {
System.out.println ("Domain defaults:");
- System.out.println (" name " + domainName);
- System.out.println (" size " + domainSizeKB);
- System.out.println (" vifs " + domainVIFs);
- System.out.println (" domainImage " + domainImage);
- System.out.println (" domainInitRD " + domainInitRD);
- System.out.println (" rootDevice " + rootDevice);
- System.out.println (" NWIP " + NWIP);
- System.out.println (" NWGW " + NWGW);
- System.out.println (" NWMask " + NWMask);
+ System.out.println (" name " + domainName);
+ System.out.println (" size " + domainSizeKB);
+ System.out.println (" vifs " + domainVIFs);
+ System.out.println (" domainImage " + domainImage);
+ System.out.println (" domainInitRD " + domainInitRD);
+ System.out.println (" rootDevice " + rootDevice);
+ System.out.println (" NWIP " + NWIP);
+ System.out.println (" NWGW " + NWGW);
+ System.out.println (" NWMask " + NWMask);
System.out.println (" MaxDomainNumber " + MaxDomainNumber);
- System.out.println (" NWNFSServer " + NWNFSServer);
- System.out.println (" NWNFSRoot " + NWNFSRoot);
- System.out.println (" XIToolsDir " + XIToolsDir);
+ System.out.println (" NWNFSServer " + NWNFSServer);
+ System.out.println (" NWNFSRoot " + NWNFSRoot);
+ System.out.println (" XIToolsDir " + XIToolsDir);
}
/***********************************************************************/