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
|
|
|