# HG changeset patch
# User Jonathan Knowles <[email protected]>
# Date 1269859682 -3600
# Node ID af259cf5d310d9f44cc7380de6ed5117ab7c38fa
# Parent  72d353d9ebe73fe82bcec06ea283a0fefdcba512
[CA-39589] Refactoring: extracts out the "handle_death" function from a deeply 
nested block.

Signed-off-by: Jonathan Knowles <[email protected]>
Acked-by: Marcus Granado <[email protected]>

diff -r 72d353d9ebe7 -r af259cf5d310 ocaml/xapi/vmops.ml
--- a/ocaml/xapi/vmops.ml       Mon Mar 29 11:48:01 2010 +0100
+++ b/ocaml/xapi/vmops.ml       Mon Mar 29 11:48:02 2010 +0100
@@ -900,6 +900,18 @@
        let max = Int64.to_int (Int64.div max 1024L) in
        let suspend_SR = Helpers.choose_suspend_sr ~__context ~vm in
        let required_space = get_suspend_space __context vm in
+       let handle_death = function
+               | Xal.Suspended ->
+                       () (* good *)
+               | Xal.Crashed ->
+                       raise (Api_errors.Server_error(Api_errors.vm_crashed, [ 
Ref.string_of vm ]))
+               | Xal.Rebooted ->
+                       raise (Api_errors.Server_error(Api_errors.vm_rebooted, 
[ Ref.string_of vm ]))
+               | Xal.Halted | Xal.Vanished ->
+                       raise (Api_errors.Server_error(Api_errors.vm_halted, [ 
Ref.string_of vm ]))
+               | Xal.Shutdown x ->
+                       failwith (Printf.sprintf "Expected domain shutdown 
reason: %d" x)
+       in
        Xapi_xenops_errors.handle_xenops_error
                (fun () ->
                        with_xc_and_xs
@@ -933,19 +945,9 @@
                                                                                
                Domain.suspend ~xc ~xs ~hvm domid fd []
                                                                                
                        ~progress_callback:progress_cb
                                                                                
                        (fun () ->
-                                                                               
                                match clean_shutdown_with_reason ~xal
+                                                                               
                                handle_death (clean_shutdown_with_reason ~xal
                                                                                
                                        ~__context ~self:vm domid
-                                                                               
                                        Domain.Suspend with
-                                                                               
                                        | Xal.Suspended -> () (* good *)
-                                                                               
                                        | Xal.Crashed ->
-                                                                               
                                                raise 
(Api_errors.Server_error(Api_errors.vm_crashed, [ Ref.string_of vm ]))
-                                                                               
                                        | Xal.Rebooted ->
-                                                                               
                                                raise 
(Api_errors.Server_error(Api_errors.vm_rebooted, [ Ref.string_of vm ]))
-                                                                               
                                        | Xal.Halted
-                                                                               
                                        | Xal.Vanished ->
-                                                                               
                                                raise 
(Api_errors.Server_error(Api_errors.vm_halted, [ Ref.string_of vm ]))
-                                                                               
                                        | Xal.Shutdown x ->
-                                                                               
                                                failwith (Printf.sprintf 
"Expected domain shutdown reason: %d" x)));
+                                                                               
                                        Domain.Suspend)));
                                                                                
(* If the suspend succeeds, set the suspend_VDI *)
                                                                                
Db.VM.set_suspend_VDI ~__context ~self:vm ~value:vdi_ref;)
                                                                        (fun () 
-> Unix.close fd);
1 file changed, 14 insertions(+), 12 deletions(-)
ocaml/xapi/vmops.ml |   26 ++++++++++++++------------


# HG changeset patch
# User Jonathan Knowles <[email protected]>
# Date 1269859682 -3600
# Node ID af259cf5d310d9f44cc7380de6ed5117ab7c38fa
# Parent  72d353d9ebe73fe82bcec06ea283a0fefdcba512
[CA-39589] Refactoring: extracts out the "handle_death" function from a deeply nested block.

Signed-off-by: Jonathan Knowles <[email protected]>
Acked-by: Marcus Granado <[email protected]>

diff -r 72d353d9ebe7 -r af259cf5d310 ocaml/xapi/vmops.ml
--- a/ocaml/xapi/vmops.ml	Mon Mar 29 11:48:01 2010 +0100
+++ b/ocaml/xapi/vmops.ml	Mon Mar 29 11:48:02 2010 +0100
@@ -900,6 +900,18 @@
 	let max = Int64.to_int (Int64.div max 1024L) in
 	let suspend_SR = Helpers.choose_suspend_sr ~__context ~vm in
 	let required_space = get_suspend_space __context vm in
+	let handle_death = function
+		| Xal.Suspended ->
+			() (* good *)
+		| Xal.Crashed ->
+			raise (Api_errors.Server_error(Api_errors.vm_crashed, [ Ref.string_of vm ]))
+		| Xal.Rebooted ->
+			raise (Api_errors.Server_error(Api_errors.vm_rebooted, [ Ref.string_of vm ]))
+		| Xal.Halted | Xal.Vanished ->
+			raise (Api_errors.Server_error(Api_errors.vm_halted, [ Ref.string_of vm ]))
+		| Xal.Shutdown x ->
+			failwith (Printf.sprintf "Expected domain shutdown reason: %d" x)
+	in
 	Xapi_xenops_errors.handle_xenops_error
 		(fun () ->
 			with_xc_and_xs
@@ -933,19 +945,9 @@
 												Domain.suspend ~xc ~xs ~hvm domid fd []
 													~progress_callback:progress_cb
 													(fun () ->
-														match clean_shutdown_with_reason ~xal
+														handle_death (clean_shutdown_with_reason ~xal
 															~__context ~self:vm domid
-															Domain.Suspend with
-															| Xal.Suspended -> () (* good *)
-															| Xal.Crashed ->
-																raise (Api_errors.Server_error(Api_errors.vm_crashed, [ Ref.string_of vm ]))
-															| Xal.Rebooted ->
-																raise (Api_errors.Server_error(Api_errors.vm_rebooted, [ Ref.string_of vm ]))
-															| Xal.Halted
-															| Xal.Vanished ->
-																raise (Api_errors.Server_error(Api_errors.vm_halted, [ Ref.string_of vm ]))
-															| Xal.Shutdown x ->
-																failwith (Printf.sprintf "Expected domain shutdown reason: %d" x)));
+															Domain.Suspend)));
 										(* If the suspend succeeds, set the suspend_VDI *)
 										Db.VM.set_suspend_VDI ~__context ~self:vm ~value:vdi_ref;)
 									(fun () -> Unix.close fd);
_______________________________________________
xen-api mailing list
[email protected]
http://lists.xensource.com/mailman/listinfo/xen-api

Reply via email to