diff options
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; + } +} |