# HG changeset patch
# User Jonathan Knowles <[email protected]>
# Date 1265039944 0
# Node ID 5de74d499b798f5029454ae8c630b1525037cf08
# Parent  98e9bcbce80e3165aff609962ac2a6fc23ecc22d
[PCR0047] Adds functions "assert_{valid, valid_and_pinned_at_static_max, 
valid_for_current_context}" to module "Xapi_vm_memory_constraints". By default 
the function "assert_valid_for_current_context" acts as an alias for function 
"assert_valid".

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

diff -r 98e9bcbce80e -r 5de74d499b79 ocaml/xapi/xapi_vm_memory_constraints.ml
--- a/ocaml/xapi/xapi_vm_memory_constraints.ml  Mon Feb 01 15:59:03 2010 +0000
+++ b/ocaml/xapi/xapi_vm_memory_constraints.ml  Mon Feb 01 15:59:04 2010 +0000
@@ -20,6 +20,19 @@
 
        include Vm_memory_constraints.T
 
+       (** Asserts for the given set of constraints [c], that
+           [c.static_min] ≤ [c.dynamic_min] ≤ [c.dynamic_max] ≤ 
[c.static_max]. *)
+       val assert_valid : constraints:t -> unit
+
+       (** Asserts for the given set of constraints [c], that
+           [c.static_min] ≤ [c.dynamic_min] = [c.dynamic_max] = 
[c.static_max]. *)
+       val assert_valid_and_pinned_at_static_max : constraints:t -> unit
+
+       (** Asserts that the given set of constraints [c] is valid for the 
current
+           context. *)
+       val assert_valid_for_current_context :
+               __context:Context.t -> constraints:t -> unit
+
        (** Extracts memory constraints from the given VM record. *)
        val extract : vm_record:API.vM_t -> t
 
@@ -37,6 +50,23 @@
 module Vm_memory_constraints : T = struct
 
        include Vm_memory_constraints.Vm_memory_constraints
+
+       let assert_valid ~constraints =
+               if not (are_valid ~constraints)
+               then raise (Api_errors.Server_error (
+                       Api_errors.memory_constraint_violation,
+                               ["Memory limits must satisfy: \
+                               static_min ≤ dynamic_min ≤ dynamic_max ≤ 
static_max"]))
+
+       let assert_valid_and_pinned_at_static_max ~constraints =
+               if not (are_valid_and_pinned_at_static_max ~constraints)
+               then raise (Api_errors.Server_error (
+                       Api_errors.memory_constraint_violation,
+                               ["Memory limits must satisfy: \
+                               static_min ≤ dynamic_min = dynamic_max = 
static_max"]))
+
+       let assert_valid_for_current_context ~__context ~constraints =
+               assert_valid ~constraints
 
        let extract ~vm_record = 
        {
1 file changed, 30 insertions(+)
ocaml/xapi/xapi_vm_memory_constraints.ml |   30 ++++++++++++++++++++++++++++++


# HG changeset patch
# User Jonathan Knowles <[email protected]>
# Date 1265039944 0
# Node ID 5de74d499b798f5029454ae8c630b1525037cf08
# Parent  98e9bcbce80e3165aff609962ac2a6fc23ecc22d
[PCR0047] Adds functions "assert_{valid, valid_and_pinned_at_static_max, valid_for_current_context}" to module "Xapi_vm_memory_constraints". By default the function "assert_valid_for_current_context" acts as an alias for function "assert_valid".

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

diff -r 98e9bcbce80e -r 5de74d499b79 ocaml/xapi/xapi_vm_memory_constraints.ml
--- a/ocaml/xapi/xapi_vm_memory_constraints.ml	Mon Feb 01 15:59:03 2010 +0000
+++ b/ocaml/xapi/xapi_vm_memory_constraints.ml	Mon Feb 01 15:59:04 2010 +0000
@@ -20,6 +20,19 @@
 
 	include Vm_memory_constraints.T
 
+	(** Asserts for the given set of constraints [c], that
+	    [c.static_min] ≤ [c.dynamic_min] ≤ [c.dynamic_max] ≤ [c.static_max]. *)
+	val assert_valid : constraints:t -> unit
+
+	(** Asserts for the given set of constraints [c], that
+	    [c.static_min] ≤ [c.dynamic_min] = [c.dynamic_max] = [c.static_max]. *)
+	val assert_valid_and_pinned_at_static_max : constraints:t -> unit
+
+	(** Asserts that the given set of constraints [c] is valid for the current
+	    context. *)
+	val assert_valid_for_current_context :
+		__context:Context.t -> constraints:t -> unit
+
 	(** Extracts memory constraints from the given VM record. *)
 	val extract : vm_record:API.vM_t -> t
 
@@ -37,6 +50,23 @@
 module Vm_memory_constraints : T = struct
 
 	include Vm_memory_constraints.Vm_memory_constraints
+
+	let assert_valid ~constraints =
+		if not (are_valid ~constraints)
+		then raise (Api_errors.Server_error (
+			Api_errors.memory_constraint_violation,
+				["Memory limits must satisfy: \
+				static_min ≤ dynamic_min ≤ dynamic_max ≤ static_max"]))
+
+	let assert_valid_and_pinned_at_static_max ~constraints =
+		if not (are_valid_and_pinned_at_static_max ~constraints)
+		then raise (Api_errors.Server_error (
+			Api_errors.memory_constraint_violation,
+				["Memory limits must satisfy: \
+				static_min ≤ dynamic_min = dynamic_max = static_max"]))
+
+	let assert_valid_for_current_context ~__context ~constraints =
+		assert_valid ~constraints
 
 	let extract ~vm_record = 
 	{
_______________________________________________
xen-api mailing list
[email protected]
http://lists.xensource.com/mailman/listinfo/xen-api

Reply via email to