WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-api

[Xen-API] [PATCH] xe snapshot-* accepts uuid= for consistency

To: xen-api@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-API] [PATCH] xe snapshot-* accepts uuid= for consistency
From: David Scott <dave.scott@xxxxxxxxxxxxx>
Date: Thu, 1 Apr 2010 11:53:38 +0100
Delivery-date: Thu, 01 Apr 2010 03:50:48 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-api-request@lists.xensource.com?subject=help>
List-id: Discussion of API issues surrounding Xen <xen-api.lists.xensource.com>
List-post: <mailto:xen-api@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-api>, <mailto:xen-api-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-api>, <mailto:xen-api-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-api-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User David Scott <dave.scott@xxxxxxxxxxxxx>
# Date 1270119140 -3600
# Node ID d01d746c3e7345cac33b85278a6b3cee4626f1aa
# Parent  6b20fa61bdaea02e0bd4e772d13eac38efde0990
CA-38723: make "xe snapshot-" commands advertise "uuid" parameters (rather than 
"snapshot-uuid") for consistency with other commands but still secretly accept 
"snapshot-uuid" to avoid breaking anything.

Signed-off-by: David Scott <dave.scott@xxxxxxxxxxxxx>

diff -r 6b20fa61bdae -r d01d746c3e73 ocaml/xapi/cli_frontend.ml
--- a/ocaml/xapi/cli_frontend.ml        Thu Apr 01 11:51:32 2010 +0100
+++ b/ocaml/xapi/cli_frontend.ml        Thu Apr 01 11:52:20 2010 +0100
@@ -984,8 +984,8 @@
 
    "snapshot-revert", 
    {
-      reqd = ["snapshot-uuid"];
-      optn = [];
+      reqd = [];
+      optn = ["uuid"];
       help ="Revert an existing VM to a previous checkpointed or snapshotted 
state.";
       implementation = No_fd Cli_operations.snapshot_revert;
       flags =[Standard];
@@ -1057,8 +1057,8 @@
    
    "snapshot-reset-powerstate",
    {
-     reqd=["snapshot-uuid"]; 
-     optn=["force"];
+     reqd=[]; 
+     optn=["uuid"; "force"];
      help="Force the VM powerstate to halted in the management toolstack 
database only. This command is used to recover a snapshot that is marked as 
'suspended'. This is a potentially dangerous operation: you must ensure that 
you do not need the memory image anymore (ie. you will not be able to resume 
your snapshot anymore).";
      implementation= No_fd Cli_operations.snapshot_reset_powerstate;
      flags=[Standard; Vm_selectors];
@@ -1257,8 +1257,8 @@
 
    "snapshot-export-to-template",
     {
-      reqd=["filename"; "snapshot-uuid"];
-      optn=["preserve-power-state"];
+      reqd=["filename"];
+      optn=["uuid"; "preserve-power-state"];
       help="Export a snapshot to <filename>.";
       implementation= With_fd Cli_operations.snapshot_export;
       flags=[Standard];
@@ -1266,8 +1266,8 @@
 
    "snapshot-clone",
     {
-      reqd=["new-name-label"; "snapshot-uuid"];
-      optn=["new-name-description"];
+      reqd=["new-name-label"];
+      optn=["uuid"; "new-name-description"];
       help="Create a new template by cloning an existing snapshot, using 
storage-level fast disk clone operation where available.";
       implementation= No_fd Cli_operations.snapshot_clone;
       flags=[Standard];
@@ -1275,8 +1275,8 @@
 
    "snapshot-copy",
     {
-      reqd=["new-name-label"; "snapshot-uuid"];
-      optn=["new-name-description"; "sr-uuid"];
+      reqd=["new-name-label"];
+      optn=["uuid"; "new-name-description"; "sr-uuid"];
       help="Create a new template by copying an existing VM, but without using 
storage-level fast disk clone operation (even if this is available). The disk 
images of the copied VM are guaranteed to be 'full images' - i.e. not part of a 
CoW chain.";
       implementation= No_fd Cli_operations.snapshot_copy;
       flags=[Standard];
@@ -1284,8 +1284,8 @@
 
    "snapshot-uninstall",
    {
-     reqd=["snapshot-uuid"];
-     optn=["force"];
+     reqd=[];
+     optn=["uuid"; "force"];
      help="Uninstall a snapshot. This operation will destroy those VDIs that 
are marked RW and connected to this snapshot only. To simply destroy the VM 
record, use snapshot-destroy.";
      implementation= With_fd Cli_operations.snapshot_uninstall;
      flags=[Standard];
@@ -1293,8 +1293,8 @@
 
    "snapshot-destroy",
     {
-      reqd=["snapshot-uuid"];
-      optn=[];
+      reqd=[];
+      optn=["uuid"];
       help="Destroy a snapshot. This leaves the storage associated with the 
snapshot intact. To delete storage too, use snapshot-uninstall.";
       implementation=No_fd Cli_operations.snapshot_destroy;
       flags=[];
@@ -1302,8 +1302,8 @@
 
    "snapshot-disk-list",
    {
-     reqd=["snapshot-uuid"]; 
-     optn=["vbd-params";"vdi-params"];
+     reqd=[]; 
+     optn=["uuid"; "vbd-params";"vdi-params"];
      help="List the disks on the selected VM(s).";
      implementation= No_fd (Cli_operations.snapshot_disk_list false);
      flags=[Standard; Vm_selectors];
diff -r 6b20fa61bdae -r d01d746c3e73 ocaml/xapi/cli_operations.ml
--- a/ocaml/xapi/cli_operations.ml      Thu Apr 01 11:51:32 2010 +0100
+++ b/ocaml/xapi/cli_operations.ml      Thu Apr 01 11:52:20 2010 +0100
@@ -2171,6 +2171,11 @@
 let vm_snapshot_with_quiesce printer = vm_clone_aux 
Client.VM.snapshot_with_quiesce "Snapshotted" printer false
 let vm_checkpoint printer = vm_clone_aux Client.VM.checkpoint "Checkpointed " 
printer false
 
+let get_snapshot_uuid params = 
+  if List.mem_assoc "snapshot-uuid" params
+  then List.assoc "snapshot-uuid" params
+  else List.assoc "uuid" params
+
 let snapshot_revert printer rpc session_id params =
        let snap_uuid = List.assoc "snapshot-uuid" params in
        let snap_ref = Client.VM.get_by_uuid rpc session_id snap_uuid in
@@ -2179,7 +2184,7 @@
 let snapshot_op op printer rpc session_id params =
        let new_name = List.assoc "new-name-label" params in
        let desc = if List.mem_assoc "new-name-description" params then Some 
(List.assoc "new-name-description" params) else None in
-       let uuid = List.assoc "snapshot-uuid" params in
+       let uuid = get_snapshot_uuid params in
        let ref = Client.VM.get_by_uuid ~rpc ~session_id ~uuid in
        let new_ref = op ~rpc ~session_id ~vm:ref ~new_name in
        ignore (may (fun desc -> Client.VM.set_name_description rpc session_id 
new_ref desc) desc);
@@ -2194,13 +2199,13 @@
        snapshot_op op printer rpc session_id params
 
 let snapshot_destroy printer rpc session_id params =
-       let snap_uuid = List.assoc "snapshot-uuid" params in
+       let snap_uuid = get_snapshot_uuid params in
        let snap_ref = Client.VM.get_by_uuid rpc session_id snap_uuid in
        if Client.VM.get_power_state rpc session_id snap_ref <> `Halted then 
Client.VM.hard_shutdown ~rpc ~session_id ~vm:snap_ref;
        Client.VM.destroy ~rpc ~session_id ~self:snap_ref
 
 let snapshot_uninstall fd printer rpc session_id params =
-       let snap_uuid = List.assoc "snapshot-uuid" params in
+       let snap_uuid = get_snapshot_uuid params in
        let snap_ref = Client.VM.get_by_uuid rpc session_id snap_uuid in
        vm_uninstall_common fd printer rpc session_id params [snap_ref]
 
@@ -2220,7 +2225,7 @@
 let snapshot_reset_powerstate printer rpc session_id params =
        if not (List.mem_assoc "force" params) then
                failwith "This operation is extremely dangerous and may cause 
data loss. This operation must be forced (use --force).";
-       let snapshot_uuid = List.assoc "snapshot-uuid" params in
+       let snapshot_uuid = get_snapshot_uuid params in
        let snapshot = Client.VM.get_by_uuid rpc session_id snapshot_uuid in
        Client.VM.power_state_reset rpc session_id snapshot
 
@@ -2309,7 +2314,7 @@
        let ( _ : unit list) = do_vm_op printer rpc session_id op params 
["vbd-params";"vdi-params"] in ()
 
 let snapshot_disk_list is_cd_list printer rpc session_id params =
-       let snapshot_uuid = List.assoc "snapshot-uuid" params in
+       let snapshot_uuid = get_snapshot_uuid params in
        let snapshot_ref = Client.VM.get_by_uuid rpc session_id snapshot_uuid in
        let snapshot = vm_record rpc session_id snapshot_ref in
        vm_disk_list_aux snapshot is_cd_list printer rpc session_id params
2 files changed, 26 insertions(+), 21 deletions(-)
ocaml/xapi/cli_frontend.ml   |   32 ++++++++++++++++----------------
ocaml/xapi/cli_operations.ml |   15 ++++++++++-----


Attachment: xen-api.hg.patch
Description: Text Data

_______________________________________________
xen-api mailing list
xen-api@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/mailman/listinfo/xen-api
<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-API] [PATCH] xe snapshot-* accepts uuid= for consistency, David Scott <=