diff options
author | rac61@labyrinth.cl.cam.ac.uk <rac61@labyrinth.cl.cam.ac.uk> | 2003-07-07 15:21:46 +0000 |
---|---|---|
committer | rac61@labyrinth.cl.cam.ac.uk <rac61@labyrinth.cl.cam.ac.uk> | 2003-07-07 15:21:46 +0000 |
commit | 70032000cdf549c73ef9dcf5a2b116152ba9e85a (patch) | |
tree | 182f41f0b9fa00ff18be5d05b03e0ef6b3c3fcd3 /tools/control | |
parent | cb43d25ee0760af506f732efb8957db8b11aa5cb (diff) | |
download | xen-70032000cdf549c73ef9dcf5a2b116152ba9e85a.tar.gz xen-70032000cdf549c73ef9dcf5a2b116152ba9e85a.tar.bz2 xen-70032000cdf549c73ef9dcf5a2b116152ba9e85a.zip |
bitkeeper revision 1.289.1.1 (3f09900aefK6NzyZH8jsgJ6oY7H2Tw)
Add VD delete/refresh commands
Diffstat (limited to 'tools/control')
5 files changed, 125 insertions, 0 deletions
diff --git a/tools/control/src/org/xenoserver/cmdline/Main.java b/tools/control/src/org/xenoserver/cmdline/Main.java index ad58cadb7e..7a3f96af52 100644 --- a/tools/control/src/org/xenoserver/cmdline/Main.java +++ b/tools/control/src/org/xenoserver/cmdline/Main.java @@ -25,6 +25,8 @@ public class Main { }; static final CommandParser vdcommands[] = { new ParseVdCreate(), + new ParseVdDelete(), + new ParseVdRefresh(), new ParseVdShow(), new ParseVdFree() }; diff --git a/tools/control/src/org/xenoserver/cmdline/ParseVdDelete.java b/tools/control/src/org/xenoserver/cmdline/ParseVdDelete.java new file mode 100644 index 0000000000..20713e5366 --- /dev/null +++ b/tools/control/src/org/xenoserver/cmdline/ParseVdDelete.java @@ -0,0 +1,40 @@ +package org.xenoserver.cmdline; + +import java.util.LinkedList; + +import org.xenoserver.control.CommandFailedException; +import org.xenoserver.control.CommandVdDelete; +import org.xenoserver.control.Defaults; +import org.xenoserver.control.VirtualDiskManager; + +public class ParseVdDelete extends CommandParser { + public void parse(Defaults d, LinkedList args) throws ParseFailedException, CommandFailedException { + String vd_key = getStringParameter(args,'k',""); + + if ( vd_key.equals("") ) + throw new ParseFailedException("Expected -k<key>"); + + loadState(); + if ( VirtualDiskManager.it.get_virtual_disk_key(vd_key) == null ) + throw new CommandFailedException("Virtual disk " + vd_key + " does not exist"); + + String output = new CommandVdDelete(vd_key).execute(); + if ( output != null ) + System.out.println( output ); + + saveState(); + } + + public String getName() { + return "delete"; + } + + public String getUsage() { + return "[-k<key>]"; + } + + public String getHelpText() { + return "Deletes the virtual disk with the specified key."; + } + +} diff --git a/tools/control/src/org/xenoserver/cmdline/ParseVdRefresh.java b/tools/control/src/org/xenoserver/cmdline/ParseVdRefresh.java new file mode 100644 index 0000000000..be5a36616e --- /dev/null +++ b/tools/control/src/org/xenoserver/cmdline/ParseVdRefresh.java @@ -0,0 +1,42 @@ +package org.xenoserver.cmdline; + +import java.util.Date; +import java.util.LinkedList; + +import org.xenoserver.control.CommandFailedException; +import org.xenoserver.control.CommandVdRefresh; +import org.xenoserver.control.Defaults; + +public class ParseVdRefresh extends CommandParser { + public void parse(Defaults d, LinkedList args) throws ParseFailedException, CommandFailedException { + String vd_key = getStringParameter(args,'k',""); + String expiry_s = getStringParameter(args,'e',""); + Date expiry; + + if ( vd_key.equals("") ) + throw new ParseFailedException("Expected -k<key>"); + if ( expiry_s.equals("") ) + expiry = null; + else + expiry = new Date(Date.parse(expiry_s)); + + loadState(); + String output = new CommandVdRefresh(vd_key,expiry).execute(); + if ( output != null ) + System.out.println(output); + saveState(); + } + + public String getName() { + return "refresh"; + } + + public String getUsage() { + return "-k<key> [-e<expiry>]"; + } + + public String getHelpText() { + return "Refresh the expiry for the specified virtual disk. Omitting -e will cause the disk to never expire."; + } + +} diff --git a/tools/control/src/org/xenoserver/control/CommandVdDelete.java b/tools/control/src/org/xenoserver/control/CommandVdDelete.java new file mode 100644 index 0000000000..6df1a69da5 --- /dev/null +++ b/tools/control/src/org/xenoserver/control/CommandVdDelete.java @@ -0,0 +1,18 @@ +package org.xenoserver.control; + +public class CommandVdDelete extends Command { + private String key; + + /** + * Constructor for CommandVdDelete. + * @param key The key of the disk to delete. + */ + public CommandVdDelete(String key) { + this.key = key; + } + + public String execute() throws CommandFailedException { + VirtualDiskManager.it.delete_virtual_disk(key); + return "Deleted virtual disk " + key; + } +} diff --git a/tools/control/src/org/xenoserver/control/CommandVdRefresh.java b/tools/control/src/org/xenoserver/control/CommandVdRefresh.java new file mode 100644 index 0000000000..35a7d8f058 --- /dev/null +++ b/tools/control/src/org/xenoserver/control/CommandVdRefresh.java @@ -0,0 +1,23 @@ +package org.xenoserver.control; + +import java.util.Date; + +public class CommandVdRefresh extends Command { + private String key; + private Date expiry; + + /** + * Constructor for CommandVdRefresh. + * @param key Key to refresh. + * @param expiry New expiry. + */ + public CommandVdRefresh(String key, Date expiry) { + this.key = key; + this.expiry = expiry; + } + + public String execute() throws CommandFailedException { + VirtualDiskManager.it.refresh_virtual_disk(key,expiry); + return "Refreshed virtual disk " + key; + } +} |