|   xen-api
[Xen-API] 	[PATCH 07 of 12] [PCR0047] Adds functions "assert_{valid, 	va 
| # HG changeset patch
# User Jonathan Knowles <jonathan.knowles@xxxxxxxxxxxxx>
# 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 <jonathan.knowles@xxxxxxxxxxxxx>
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 ++++++++++++++++++++++++++++++
 xen-api.hg-12.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 00 of 12] [PCR-0047] Enhances XCP	guest-memory-field-checking	logic so that XCP can choose the most appropriate set of	constraints to apply for the current context., Jonathan Knowles
[Xen-API] [PATCH 04 of 12] [PCR0047] Adds to Ocamltest a new test	case constructor "make_function_test_case",	useful for making a test case that tests a single function, Jonathan Knowles
[Xen-API] [PATCH 03 of 12] [PCR0047] Adds the predicates	"VM_memory_constraints.are_{pinned, pinned_at_static_max, valid,	valid_and_pinned_at_static_max}",	which take a set of memory constraints and return true if (and only	if) the constraints match some condition, Jonathan Knowles
[Xen-API] [PATCH 02 of 12] [PCR0047] Renames function	"VM_memory_constraints.valid" to	"VM_memory_constraints.are_valid" in anticipation of using a	common prefix for additional functions to be added in a further patch, Jonathan Knowles
[Xen-API] [PATCH 05 of 12] [PCR0047] Refactors the	"Quicktest_vm_memory_constraints" module to use the new	Ocamltest "make_function_test_case" constructor, Jonathan Knowles
[Xen-API] 	[PATCH 07 of 12] [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",
Jonathan Knowles <=
[Xen-API] [PATCH 01 of 12] [PCR0047] Adds missing Ocamldoc comments	and reformatting code in line with our Ocaml Best Practices Guide.	Also removes a few anachronistic comments, Jonathan Knowles
[Xen-API] [PATCH 08 of 12] [PCR0047] Replaces inline memory	constraint validation code with calls to function	"VM_memory_constraints.assert_valid_for_current_context", Jonathan Knowles
[Xen-API] [PATCH 06 of 12] [PCR0047] Adds unit tests for functions	"VM_memory_constraints.{are_pinned, are_pinned_at_static_max, 	are_valid, are_valid_and_pinned_at_static_max}, Jonathan Knowles
[Xen-API] [PATCH 09 of 12] [PCR0047] Extending Ocamldoc and	reformatting	sections of code in line with our OCaml Best Practices Guide, Jonathan Knowles
[Xen-API] [PATCH 11 of 12] [PCR0047] Adding context-dependent	behaviour to function	"Xapi_vm_memory_constraints.assert_valid_for_current_context", Jonathan Knowles
[Xen-API] [PATCH 10 of 12] [PCR0047] Adding appropriate boilerplate	code for Dynamic Memory Control ("dmc") to the restrictions module, Jonathan Knowles
[Xen-API] [PATCH 12 of 12] Refactoring slightly the function	"Restrictions.to_compact_string" for readability, Jonathan Knowles
Re: [Xen-API] [PATCH 00 of 12] [PCR-0047] Enhances	XCP	guest-memory-field-checking	logic so that XCP can choose the most appropriate set of	constraints to	apply for the current context., Jonathan Knowles
 |  |  |