|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-api
[Xen-API] [PATCH 3 of 8] [CA-39589] Refactoring: lifts a number of	defin
 
# HG changeset patch
# User Jonathan Knowles <jonathan.knowles@xxxxxxxxxxxxx>
# Date 1269859681 -3600
# Node ID 72d353d9ebe73fe82bcec06ea283a0fefdcba512
# Parent  4a9675ecf42df55895f201e2e7928d4ff0c6fc7f
[CA-39589] Refactoring: lifts a number of definitions out of a deeply nested 
block.
Signed-off-by: Jonathan Knowles <jonathan.knowles@xxxxxxxxxxxxx>
Acked-by: Marcus Granado <Marcus.Granado@xxxxxxxxxxxxx>
diff -r 4a9675ecf42d -r 72d353d9ebe7 ocaml/xapi/vmops.ml
--- a/ocaml/xapi/vmops.ml       Mon Mar 29 11:48:00 2010 +0100
+++ b/ocaml/xapi/vmops.ml       Mon Mar 29 11:48:01 2010 +0100
@@ -892,18 +892,19 @@
 
 let suspend ~live ~progress_cb ~__context ~xc ~xs ~vm =
        let uuid = Db.VM.get_uuid ~__context ~self:vm in
-       let hvm = Helpers.has_booted_hvm ~__context ~self:vm in
        let domid = Helpers.domid_of_vm ~__context ~self:vm in
+       let is_paused = Db.VM.get_power_state ~__context ~self:vm = `Paused in
+       let min = Db.VM.get_memory_dynamic_min ~__context ~self:vm in
+       let max = Db.VM.get_memory_dynamic_max ~__context ~self:vm in
+       let min = Int64.to_int (Int64.div min 1024L) in
+       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
        Xapi_xenops_errors.handle_xenops_error
                (fun () ->
                        with_xc_and_xs
                                (fun xc xs ->
-                                       let is_paused = Db.VM.get_power_state 
~__context ~self:vm = `Paused in
                                        if is_paused then Domain.unpause ~xc 
domid;
-                                       let min = Db.VM.get_memory_dynamic_min 
~__context ~self:vm in
-                                       let max = Db.VM.get_memory_dynamic_max 
~__context ~self:vm in
-                                       let min = Int64.to_int (Int64.div min 
1024L) in
-                                       let max = Int64.to_int (Int64.div max 
1024L) in
                                        finally (fun () ->
                                                (* Balloon down the guest as 
far as we can to force it to clear unnecessary caches etc. *)
                                                debug "suspend phase 0/4: 
asking guest to balloon down";
@@ -912,8 +913,6 @@
                                                debug "suspend phase 1/4: 
hot-unplugging any PCI devices";
                                                let hvm = (Xc.domain_getinfo xc 
domid).Xc.hvm_guest in
                                                if hvm then 
unplug_pcidevs_noexn ~__context ~vm domid (Device.PCI.list xc xs domid);
-                                               let suspend_SR = 
Helpers.choose_suspend_sr ~__context ~vm in
-                                               let required_space = 
get_suspend_space __context vm in
                                                Sm_fs_ops.with_new_fs_vdi 
__context
                                                        ~name_label:"Suspend 
image" ~name_description:"Suspend image"
                                                        ~sR:suspend_SR 
~_type:`suspend ~required_space
@@ -928,7 +927,6 @@
                                                                        [ 
Unix.O_WRONLY; Unix.O_CREAT ] 0o600 in
                                                                finally
                                                                        (fun () 
->
-                                                                               
let domid = Helpers.domid_of_vm ~__context ~self:vm in
                                                                                
debug "suspend: phase 3/4: suspending to disk";
                                                                                
with_xal
                                                                                
        (fun xal ->
1 file changed, 7 insertions(+), 9 deletions(-)
ocaml/xapi/vmops.ml |   16 +++++++---------
 
xen-api.hg-8.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 0 of 8] [CA-39589] After a VM suspend operation,	Xapi now reverses any destructive update it makes to XenStore's copy	of dynamic-max., Jonathan Knowles
- [Xen-API] [PATCH 2 of 8] [CA-39589] After a VM suspend operation,	Xapi now reverses any destructive update it makes to XenStore's copy	of dynamic-max, Jonathan Knowles
 
- [Xen-API] [PATCH 5 of 8] [CA-39589] Refactoring: extracts out the	"suspend_domain" function from a deeply nested block, Jonathan Knowles
 
- [Xen-API] 	[PATCH 1 of 8] [CA-39589] Fixes confusing code structure, 	which made it hard to discern the true execution path through a	relatively long and deeply nested function, Jonathan Knowles
 
- [Xen-API] [PATCH 4 of 8] [CA-39589] Refactoring: extracts out the	"handle_death" function from a deeply nested block, Jonathan Knowles
 
- [Xen-API] [PATCH 3 of 8] [CA-39589] Refactoring: lifts a number of	definitions out of a deeply nested block,
Jonathan Knowles <=
 
- [Xen-API] [PATCH 7 of 8] [CA-39589] Refactoring: extracts out the	"do_final_actions_after_suspend" function from a deeply-nested block, Jonathan Knowles
 
- [Xen-API] [PATCH 6 of 8] [CA-39589] Refactoring: extracts out the	"do_suspend" function from a deeply-nested block, Jonathan Knowles
 
- [Xen-API] [PATCH 8 of 8] [CA-39589] Refactoring: flattens a number	of nested function applications, Jonathan Knowles
 
 
 
 
 |  
  
 | 
    | 
  
  
    |   | 
    |