aboutsummaryrefslogtreecommitdiffstats
path: root/tools/control
diff options
context:
space:
mode:
authorrac61@labyrinth.cl.cam.ac.uk <rac61@labyrinth.cl.cam.ac.uk>2003-07-07 15:21:46 +0000
committerrac61@labyrinth.cl.cam.ac.uk <rac61@labyrinth.cl.cam.ac.uk>2003-07-07 15:21:46 +0000
commit70032000cdf549c73ef9dcf5a2b116152ba9e85a (patch)
tree182f41f0b9fa00ff18be5d05b03e0ef6b3c3fcd3 /tools/control
parentcb43d25ee0760af506f732efb8957db8b11aa5cb (diff)
downloadxen-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')
-rw-r--r--tools/control/src/org/xenoserver/cmdline/Main.java2
-rw-r--r--tools/control/src/org/xenoserver/cmdline/ParseVdDelete.java40
-rw-r--r--tools/control/src/org/xenoserver/cmdline/ParseVdRefresh.java42
-rw-r--r--tools/control/src/org/xenoserver/control/CommandVdDelete.java18
-rw-r--r--tools/control/src/org/xenoserver/control/CommandVdRefresh.java23
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;
+ }
+}