# HG changeset patch
# User Jonathan Knowles <[email protected]>
# Date 1264782173 0
# Node ID 46461dc60f7b6a35ec0cc9dcfef7e76adce51f65
# Parent  30154ec586aed04136e324230a1a25889ba23c7e
[CA-31705] Improves error handling within vm-memory-target-wait.

Reformats code to meet OCaml development best practices guide.

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

diff -r 30154ec586ae -r 46461dc60f7b ocaml/xapi/xapi_vm_helpers.ml
--- a/ocaml/xapi/xapi_vm_helpers.ml     Fri Jan 29 16:17:44 2010 +0000
+++ b/ocaml/xapi/xapi_vm_helpers.ml     Fri Jan 29 16:22:53 2010 +0000
@@ -649,8 +649,8 @@
        ?(timeout_seconds = wait_memory_target_timeout_seconds)
        ?(tolerance_bytes = wait_memory_target_tolerance_bytes)
        () =
-       let raise_error error =
-               raise (Api_errors.Server_error (error, [Ref.string_of 
(Context.get_task_id __context)])) in
+       let raise_error error = raise (Api_errors.Server_error (
+               error, [Ref.string_of (Context.get_task_id __context)])) in
        let rec wait accumulated_wait_time_seconds =
                if accumulated_wait_time_seconds > 
wait_memory_target_timeout_seconds
                        then raise_error 
Api_errors.vm_memory_target_wait_timeout;
@@ -658,28 +658,40 @@
                        then raise_error Api_errors.task_cancelled;
                (* Fetch up-to-date value of memory_actual via a hypercall to 
Xen. *)
                let domain_id = Helpers.domid_of_vm ~__context ~self in
-               let domain_info = Vmopshelpers.with_xc (fun xc -> 
Xc.domain_getinfo xc domain_id) in
-               let memory_actual_pages = Int64.of_nativeint 
domain_info.Xc.total_memory_pages in
-               let memory_actual_kib = Xc.pages_to_kib memory_actual_pages in 
+               let domain_info = Vmopshelpers.with_xc
+                       (fun xc -> Xc.domain_getinfo xc domain_id) in
+               let memory_actual_pages = Int64.of_nativeint
+                       domain_info.Xc.total_memory_pages in
+               let memory_actual_kib = Xc.pages_to_kib memory_actual_pages in
                let memory_actual_bytes = Memory.bytes_of_kib memory_actual_kib 
in
                (* Fetch up-to-date value of target from xenstore. *)
-               let memory_target_kib = Int64.of_string (Vmopshelpers.with_xs 
(fun xs -> xs.Xs.read (xs.Xs.getdomainpath domain_id ^ "/memory/target"))) in
+               let memory_target_kib = Int64.of_string
+                       (Vmopshelpers.with_xs
+                               (fun xs -> xs.Xs.read
+                                       (xs.Xs.getdomainpath domain_id ^ 
"/memory/target"))) in
                let memory_target_bytes = Memory.bytes_of_kib memory_target_kib 
in
-               let difference_bytes = Int64.abs (Int64.sub memory_actual_bytes 
memory_target_bytes) in
-               debug "memory_actual = %Ld; memory_target = %Ld; difference = 
%Ld %s tolerance (%Ld)" memory_actual_bytes memory_target_bytes 
difference_bytes (if difference_bytes <= tolerance_bytes then "<=" else ">") 
tolerance_bytes;
+               let difference_bytes = Int64.abs
+                       (Int64.sub memory_actual_bytes memory_target_bytes) in
+               debug
+                       "memory_actual = %Ld; memory_target = %Ld; \
+                        difference = %Ld %s tolerance (%Ld)"
+                       memory_actual_bytes memory_target_bytes difference_bytes
+                       (if difference_bytes <= tolerance_bytes then "<=" else 
">")
+                       tolerance_bytes;
                if difference_bytes <= tolerance_bytes then
                        (* The memory target has been reached: use the most *)
                        (* recent value of memory_actual to update the same *)
                        (* field within the VM's metrics record, presenting *)
                        (* a consistent view to the world.                  *)
                        let vm_metrics_ref = Db.VM.get_metrics ~__context ~self 
in
-                       Db.VM_metrics.set_memory_actual ~__context 
~self:vm_metrics_ref ~value:memory_actual_bytes
+                       Db.VM_metrics.set_memory_actual ~__context 
~self:vm_metrics_ref
+                               ~value:memory_actual_bytes
                else begin
                        (* At exponentially increasing intervals, write  *)
                        (* a debug message saying how long we've waited: *)
                        if is_power_of_2 accumulated_wait_time_seconds then 
debug
                                "Waited %i second(s) for domain %i to reach \
-                               its target = %Ld bytes; actual = %Ld bytes."
+                                its target = %Ld bytes; actual = %Ld bytes."
                                accumulated_wait_time_seconds domain_id
                                memory_target_bytes memory_actual_bytes;
                        (* The memory target has not yet been reached: *)
1 file changed, 22 insertions(+), 10 deletions(-)
ocaml/xapi/xapi_vm_helpers.ml |   32 ++++++++++++++++++++++----------


# HG changeset patch
# User Jonathan Knowles <[email protected]>
# Date 1264782173 0
# Node ID 46461dc60f7b6a35ec0cc9dcfef7e76adce51f65
# Parent  30154ec586aed04136e324230a1a25889ba23c7e
[CA-31705] Improves error handling within vm-memory-target-wait.

Reformats code to meet OCaml development best practices guide.

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

diff -r 30154ec586ae -r 46461dc60f7b ocaml/xapi/xapi_vm_helpers.ml
--- a/ocaml/xapi/xapi_vm_helpers.ml	Fri Jan 29 16:17:44 2010 +0000
+++ b/ocaml/xapi/xapi_vm_helpers.ml	Fri Jan 29 16:22:53 2010 +0000
@@ -649,8 +649,8 @@
 	?(timeout_seconds = wait_memory_target_timeout_seconds)
 	?(tolerance_bytes = wait_memory_target_tolerance_bytes)
 	() =
-	let raise_error error =
-		raise (Api_errors.Server_error (error, [Ref.string_of (Context.get_task_id __context)])) in
+	let raise_error error = raise (Api_errors.Server_error (
+		error, [Ref.string_of (Context.get_task_id __context)])) in
 	let rec wait accumulated_wait_time_seconds =
 		if accumulated_wait_time_seconds > wait_memory_target_timeout_seconds
 			then raise_error Api_errors.vm_memory_target_wait_timeout;
@@ -658,28 +658,40 @@
 			then raise_error Api_errors.task_cancelled;
 		(* Fetch up-to-date value of memory_actual via a hypercall to Xen. *)
 		let domain_id = Helpers.domid_of_vm ~__context ~self in
-		let domain_info = Vmopshelpers.with_xc (fun xc -> Xc.domain_getinfo xc domain_id) in
-		let memory_actual_pages = Int64.of_nativeint domain_info.Xc.total_memory_pages in
-		let memory_actual_kib = Xc.pages_to_kib memory_actual_pages in 
+		let domain_info = Vmopshelpers.with_xc
+			(fun xc -> Xc.domain_getinfo xc domain_id) in
+		let memory_actual_pages = Int64.of_nativeint
+			domain_info.Xc.total_memory_pages in
+		let memory_actual_kib = Xc.pages_to_kib memory_actual_pages in
 		let memory_actual_bytes = Memory.bytes_of_kib memory_actual_kib in
 		(* Fetch up-to-date value of target from xenstore. *)
-		let memory_target_kib = Int64.of_string (Vmopshelpers.with_xs (fun xs -> xs.Xs.read (xs.Xs.getdomainpath domain_id ^ "/memory/target"))) in
+		let memory_target_kib = Int64.of_string
+			(Vmopshelpers.with_xs
+				(fun xs -> xs.Xs.read
+					(xs.Xs.getdomainpath domain_id ^ "/memory/target"))) in
 		let memory_target_bytes = Memory.bytes_of_kib memory_target_kib in
-		let difference_bytes = Int64.abs (Int64.sub memory_actual_bytes memory_target_bytes) in
-		debug "memory_actual = %Ld; memory_target = %Ld; difference = %Ld %s tolerance (%Ld)" memory_actual_bytes memory_target_bytes difference_bytes (if difference_bytes <= tolerance_bytes then "<=" else ">") tolerance_bytes;
+		let difference_bytes = Int64.abs
+			(Int64.sub memory_actual_bytes memory_target_bytes) in
+		debug
+			"memory_actual = %Ld; memory_target = %Ld; \
+			 difference = %Ld %s tolerance (%Ld)"
+			memory_actual_bytes memory_target_bytes difference_bytes
+			(if difference_bytes <= tolerance_bytes then "<=" else ">")
+			tolerance_bytes;
 		if difference_bytes <= tolerance_bytes then
 			(* The memory target has been reached: use the most *)
 			(* recent value of memory_actual to update the same *)
 			(* field within the VM's metrics record, presenting *)
 			(* a consistent view to the world.                  *)
 			let vm_metrics_ref = Db.VM.get_metrics ~__context ~self in
-			Db.VM_metrics.set_memory_actual ~__context ~self:vm_metrics_ref ~value:memory_actual_bytes
+			Db.VM_metrics.set_memory_actual ~__context ~self:vm_metrics_ref
+				~value:memory_actual_bytes
 		else begin
 			(* At exponentially increasing intervals, write  *)
 			(* a debug message saying how long we've waited: *)
 			if is_power_of_2 accumulated_wait_time_seconds then debug
 				"Waited %i second(s) for domain %i to reach \
-				its target = %Ld bytes; actual = %Ld bytes."
+				 its target = %Ld bytes; actual = %Ld bytes."
 				accumulated_wait_time_seconds domain_id
 				memory_target_bytes memory_actual_bytes;
 			(* The memory target has not yet been reached: *)
_______________________________________________
xen-api mailing list
[email protected]
http://lists.xensource.com/mailman/listinfo/xen-api

Reply via email to