diff options
author | tlh20@labyrinth.cl.cam.ac.uk <tlh20@labyrinth.cl.cam.ac.uk> | 2003-09-10 15:04:38 +0000 |
---|---|---|
committer | tlh20@labyrinth.cl.cam.ac.uk <tlh20@labyrinth.cl.cam.ac.uk> | 2003-09-10 15:04:38 +0000 |
commit | 4035ab506dcfe600764bc79b73616bdc876075ad (patch) | |
tree | 68acd973f0bde31f6468b7358984f5a1f79e95d1 /tools | |
parent | 8fb06dd59d2124273a1bb3089e1b8e5d5a23dea1 (diff) | |
download | xen-4035ab506dcfe600764bc79b73616bdc876075ad.tar.gz xen-4035ab506dcfe600764bc79b73616bdc876075ad.tar.bz2 xen-4035ab506dcfe600764bc79b73616bdc876075ad.zip |
bitkeeper revision 1.418.1.1 (3f5f3d862n2oSqg-bvcUtq4TeyrP1g)
Many files:
Attempt at new xenctl
Diffstat (limited to 'tools')
12 files changed, 38 insertions, 53 deletions
diff --git a/tools/control/src/org/xenoserver/cmdline/Main.java b/tools/control/src/org/xenoserver/cmdline/Main.java index 3b8cc554b7..fe7c6a2c25 100644 --- a/tools/control/src/org/xenoserver/cmdline/Main.java +++ b/tools/control/src/org/xenoserver/cmdline/Main.java @@ -43,12 +43,23 @@ public class Main { new ParseGroup( "domain", domaincommands ), new ParseGroup( "partitions", partitioncommands ), new ParseGroup( "physical", physicalcommands ), + new ParseScript(), new ParseGroup( "vd", vdcommands ), new ParseGroup( "vbd", vbdcommands ) }; /** The top-level parser. */ static final CommandParser parser = new ParseGroup( null, commands ); + public static void executeArgList (Defaults d, LinkedList arglist) + throws ParseFailedException, CommandFailedException + { + if (arglist.size() == 0) { + help.parse(null, null); + } else { + parser.parse(d, arglist); + } + } + public static void main(String[] args) { Defaults d = new Defaults(); int ec = -1; @@ -57,20 +68,15 @@ public class Main { arglist.add( args[i] ); } - if (args.length == 0) { + try { + executeArgList (d, arglist); + ec = 0; + } catch (NoSuchElementException e) { help.parse(null, null); - } else { - try - { - parser.parse(d, arglist); - ec = 0; - } catch (NoSuchElementException e) { - help.parse(null, null); - } catch (ParseFailedException e) { - System.err.println( e.getMessage() ); - } catch (CommandFailedException e) { - System.err.println( e.getMessage() ); - } + } catch (ParseFailedException e) { + System.err.println( e.getMessage() ); + } catch (CommandFailedException e) { + System.err.println( e.getMessage() ); } System.exit(ec); diff --git a/tools/control/src/org/xenoserver/cmdline/ParseDomainDestroy.java b/tools/control/src/org/xenoserver/cmdline/ParseDomainDestroy.java index 78d224cf5e..d556275ecb 100644 --- a/tools/control/src/org/xenoserver/cmdline/ParseDomainDestroy.java +++ b/tools/control/src/org/xenoserver/cmdline/ParseDomainDestroy.java @@ -9,7 +9,7 @@ import org.xenoserver.control.Defaults; public class ParseDomainDestroy extends CommandParser { public void parse(Defaults d, LinkedList args) throws ParseFailedException, CommandFailedException { - int domain_id = getIntParameter(args, 'n', 0); + int domain_id = getIntParameter(args, 'n', d.domainNumber); boolean force = getFlagParameter(args, 'f'); if (domain_id == 0) { @@ -27,7 +27,7 @@ public class ParseDomainDestroy extends CommandParser { } public String getUsage() { - return "-n<domain_id> [-f]"; + return "[-n<domain_id>] [-f]"; } public String getHelpText() { diff --git a/tools/control/src/org/xenoserver/cmdline/ParseDomainStart.java b/tools/control/src/org/xenoserver/cmdline/ParseDomainStart.java index e27394cb23..4b676f568b 100644 --- a/tools/control/src/org/xenoserver/cmdline/ParseDomainStart.java +++ b/tools/control/src/org/xenoserver/cmdline/ParseDomainStart.java @@ -9,7 +9,7 @@ import org.xenoserver.control.Defaults; public class ParseDomainStart extends CommandParser { public void parse(Defaults d, LinkedList args) throws ParseFailedException, CommandFailedException { - int domain_id = getIntParameter(args, 'n', 0); + int domain_id = getIntParameter(args, 'n', d.domainNumber); if (domain_id == 0) { throw new ParseFailedException("Expected -n<domain_id>"); @@ -25,7 +25,7 @@ public class ParseDomainStart extends CommandParser { } public String getUsage() { - return "-n<domain_id>"; + return "[-n<domain_id>]"; } public String getHelpText() { diff --git a/tools/control/src/org/xenoserver/cmdline/ParseDomainStop.java b/tools/control/src/org/xenoserver/cmdline/ParseDomainStop.java index 306f18529b..e4727b33e3 100644 --- a/tools/control/src/org/xenoserver/cmdline/ParseDomainStop.java +++ b/tools/control/src/org/xenoserver/cmdline/ParseDomainStop.java @@ -9,7 +9,7 @@ import org.xenoserver.control.Defaults; public class ParseDomainStop extends CommandParser { public void parse(Defaults d, LinkedList args) throws ParseFailedException, CommandFailedException { - int domain_id = getIntParameter(args, 'n', 0); + int domain_id = getIntParameter(args, 'n', d.domainNumber); if (domain_id == 0) { throw new ParseFailedException("Expected -n<domain_id>"); @@ -25,7 +25,7 @@ public class ParseDomainStop extends CommandParser { } public String getUsage() { - return "-n<domain_id>"; + return "[-n<domain_id>]"; } public String getHelpText() { diff --git a/tools/control/src/org/xenoserver/cmdline/ParsePhysicalGrant.java b/tools/control/src/org/xenoserver/cmdline/ParsePhysicalGrant.java index f332d5c698..521d2e740a 100644 --- a/tools/control/src/org/xenoserver/cmdline/ParsePhysicalGrant.java +++ b/tools/control/src/org/xenoserver/cmdline/ParsePhysicalGrant.java @@ -10,7 +10,7 @@ import org.xenoserver.control.Mode; public class ParsePhysicalGrant extends CommandParser { public void parse(Defaults d, LinkedList args) throws ParseFailedException, CommandFailedException { - int domain_id = getIntParameter(args, 'n', 0); + int domain_id = getIntParameter(args, 'n', d.domainNumber); boolean force = getFlagParameter(args, 'f'); String partition_name = getStringParameter(args, 'p', ""); boolean write = getFlagParameter(args, 'w'); @@ -44,7 +44,7 @@ public class ParsePhysicalGrant extends CommandParser { } public String getUsage() { - return "-n<domain_id> -p<partition_name> [-f] [-w]"; + return "-p<partition_name> [-n<domain_id>] [-f] [-w]"; } public String getHelpText() { diff --git a/tools/control/src/org/xenoserver/cmdline/ParsePhysicalList.java b/tools/control/src/org/xenoserver/cmdline/ParsePhysicalList.java index 1b662aa069..85e6e5de19 100644 --- a/tools/control/src/org/xenoserver/cmdline/ParsePhysicalList.java +++ b/tools/control/src/org/xenoserver/cmdline/ParsePhysicalList.java @@ -15,7 +15,7 @@ import org.xenoserver.control.PartitionManager; public class ParsePhysicalList extends CommandParser { public void parse(Defaults d, LinkedList args) throws ParseFailedException, CommandFailedException { - int domain_id = getIntParameter(args, 'n', 0); + int domain_id = getIntParameter(args, 'n', d.domainNumber); if (domain_id == 0) { throw new ParseFailedException("Expected -n<domain_id>"); } diff --git a/tools/control/src/org/xenoserver/cmdline/ParsePhysicalRevoke.java b/tools/control/src/org/xenoserver/cmdline/ParsePhysicalRevoke.java index 56d37e6dac..e53a16ab39 100644 --- a/tools/control/src/org/xenoserver/cmdline/ParsePhysicalRevoke.java +++ b/tools/control/src/org/xenoserver/cmdline/ParsePhysicalRevoke.java @@ -9,7 +9,7 @@ import org.xenoserver.control.Defaults; public class ParsePhysicalRevoke extends CommandParser { public void parse(Defaults d, LinkedList args) throws ParseFailedException, CommandFailedException { - int domain_id = getIntParameter(args, 'n', 0); + int domain_id = getIntParameter(args, 'n', d.domainNumber); String partition_name = getStringParameter(args, 'p', ""); if (domain_id == 0) { @@ -32,7 +32,7 @@ public class ParsePhysicalRevoke extends CommandParser { } public String getUsage() { - return "-n<domain_id> -p<partition_name>"; + return "-p<partition_name> [-n<domain_id>]"; } public String getHelpText() { diff --git a/tools/control/src/org/xenoserver/cmdline/ParseVbdCreate.java b/tools/control/src/org/xenoserver/cmdline/ParseVbdCreate.java index 54713b45fc..cacb987816 100644 --- a/tools/control/src/org/xenoserver/cmdline/ParseVbdCreate.java +++ b/tools/control/src/org/xenoserver/cmdline/ParseVbdCreate.java @@ -13,7 +13,7 @@ public class ParseVbdCreate extends CommandParser { throws ParseFailedException, CommandFailedException { String vd_key = getStringParameter(args, 'k', ""); String partition_name = getStringParameter(args, 'p', ""); - int domain_id = getIntParameter(args, 'n', 0); + int domain_id = getIntParameter(args, 'n', d.domainNumber); int vbd_num = getIntParameter(args, 'v', -1); boolean write = getFlagParameter(args, 'w'); @@ -53,7 +53,7 @@ public class ParseVbdCreate extends CommandParser { } public String getUsage() { - return "-n<domain_id> {-k<key>|-p<partition} -v<vbd_num> [-w]"; + return "{-k<key>|-p<partition} -v<vbd_num> [-n<domain_id>] [-w]"; } public String getHelpText() { diff --git a/tools/control/src/org/xenoserver/control/CommandDomainNew.java b/tools/control/src/org/xenoserver/control/CommandDomainNew.java index 5600cd04da..b8341551d1 100644 --- a/tools/control/src/org/xenoserver/control/CommandDomainNew.java +++ b/tools/control/src/org/xenoserver/control/CommandDomainNew.java @@ -185,6 +185,7 @@ public class CommandDomainNew extends Command { domain_id = Integer.parseInt(br.readLine()); create_rc = create_p.waitFor(); } + d.domainNumber = domain_id; if (create_rc != 0) { throw CommandFailedException.xiCommandFailed( diff --git a/tools/control/src/org/xenoserver/control/Defaults.java b/tools/control/src/org/xenoserver/control/Defaults.java index d180a3eb91..e64f6e19d1 100644 --- a/tools/control/src/org/xenoserver/control/Defaults.java +++ b/tools/control/src/org/xenoserver/control/Defaults.java @@ -49,6 +49,8 @@ public class Defaults { public String args = ""; /** Directory to find XI tools. */ public String xiToolsDir = ""; + /** Domain number */ + public int domainNumber; /** @@ -143,6 +145,8 @@ public class Defaults { domainImage = s; } else if (lastName.equals("domain_name")) { domainName = s; + } else if (lastName.equals("domain_number")) { + domainNumber = Integer.parseInt(s); } else if (lastName.equals("domain_init_rd")) { domainInitRD = s; } else if (lastName.equals("domain_vifs")) { diff --git a/tools/control/src/org/xenoserver/control/Settings.java b/tools/control/src/org/xenoserver/control/Settings.java index 02cdbdecd6..317bdb1c77 100644 --- a/tools/control/src/org/xenoserver/control/Settings.java +++ b/tools/control/src/org/xenoserver/control/Settings.java @@ -14,12 +14,6 @@ public final class Settings { /** Path to search for the defaults file. */ public static final String DEFAULTS_PATH = System.getProperty("DEFAULTS_PATH", ".:/etc:/var/lib/xen"); - /** IP address of domain 0. */ - public static final String LOCAL_IP = System.getProperty("LOCAL_IP"); - /** Network mask of domain 0. */ - public static final String LOCAL_MASK = System.getProperty("LOCAL_MASK"); - /** Gateway of domain 0. */ - public static final String LOCAL_GW = System.getProperty("LOCAL_ROUTE"); /** If set, do not call any xi_ commands, just print their command lines. */ public static final boolean TEST = (System.getProperty("TEST") != null); /** Name of xi_helper utility. */ diff --git a/tools/control/xenctl b/tools/control/xenctl index 9b30b81617..d653d7d8a4 100755 --- a/tools/control/xenctl +++ b/tools/control/xenctl @@ -7,27 +7,7 @@ if [ -z "$IFCONFIG" ] ; then IFCONFIG=/sbin/ifconfig ; fi if [ -z "$ROUTE" ] ; then ROUTE=/sbin/route ; fi if [ -z "$JAVA" ] ; then JAVA=java ; fi -if [ "$1" = "domain" -a "$2" = "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 - - -#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" +ARGS="-DDEFAULTS_FILE=$DEFAULTS_FILE -DDEFAULTS_PATH=$DEFAULTS_PATH" $JAVA $ARGS -jar $(dirname $0)/xenctl-cmdline.jar $* |