diff options
author | tlh20@elite.cl.cam.ac.uk <tlh20@elite.cl.cam.ac.uk> | 2003-05-08 08:48:17 +0000 |
---|---|---|
committer | tlh20@elite.cl.cam.ac.uk <tlh20@elite.cl.cam.ac.uk> | 2003-05-08 08:48:17 +0000 |
commit | 35ede0c67a3a6f1347bde6c5957f61cf7a566dc5 (patch) | |
tree | 80c4a031fb7000306511e2b03f708ab6f5df6124 | |
parent | 642bd0999b4d21360384ddc69bbbbbcbc24655fc (diff) | |
download | xen-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-x | tools/domctl/domctl | 34 | ||||
-rw-r--r-- | tools/domctl/domctl.xml | 2 | ||||
-rw-r--r-- | tools/domctl/src/uk/ac/cam/cl/xeno/domctl/CommandNew.java | 30 | ||||
-rw-r--r-- | tools/domctl/src/uk/ac/cam/cl/xeno/domctl/Defaults.java | 29 |
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); } /***********************************************************************/ |