From 35ede0c67a3a6f1347bde6c5957f61cf7a566dc5 Mon Sep 17 00:00:00 2001 From: "tlh20@elite.cl.cam.ac.uk" Date: Thu, 8 May 2003 08:48:17 +0000 Subject: bitkeeper revision 1.210.1.1 (3eba19d1IIr1Ohw82oc2IN-kKV0kfw) Allow blank network options, fix spacing around -a in CommandNew --- tools/domctl/domctl | 34 ++++++++++++---------- tools/domctl/domctl.xml | 2 +- .../src/uk/ac/cam/cl/xeno/domctl/CommandNew.java | 30 ++++++++++++------- .../src/uk/ac/cam/cl/xeno/domctl/Defaults.java | 29 +++++++++--------- 4 files changed, 54 insertions(+), 41 deletions(-) (limited to 'tools') 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 @@ = 128.232.32.20 /usr/groups/srgboot/moonraider/roots/root+ -2 +10 /tools/internal/ 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); } /***********************************************************************/ -- cgit v1.2.3