beautypg.com

HP Matrix Operating Environment Software User Manual

Page 49

background image

* from PolicyExecutionVO passed to rule engine.

*

*/

/* DO NOT MODIFY */

rule "INIT"

salience 1000

when

pVO : PolicyExecutionVO();

then

insert(pVO.getAllocationEntry().getServiceEntity());

insert(pVO.getResultMap());

insert(pVO.getResourceList());

end

/*

* Rule to check memory criteria for a given service entity

* (LogicalServer) compared to list of physical resources available

* (ComputeServer)

*

*/

rule "MemorySizeCriteria"

when

$pVO : PolicyExecutionVO( );

$resLst : List();

$logicalServer : LogicalServer();

$computeServer : ComputeServer() from $resLst;

eval(memorySizeCriteria($logicalServer, $computeServer, $pVO));

then

$pVO.match($computeServer,

HPIOMessage.get(HPIOBundleKey.ALLOCATION_CRITERIA_MEMORY));

end

function boolean memorySizeCriteria(

LogicalServer logicalServer,

ComputeServer computeServer,

PolicyExecutionVO pVO) {

pVO.doesNotMatch(computeServer,HPIOMessage.get(HPIOBundleKey.ALLOCATION_CRITERIA_MEMORY));

/* -------------- CUSTOM LOGIC ----------------------*/

Integer logicalMemorySizeMB =

LogicalServerWrapper.getMemorySizeMi(logicalServer);

if (computeServer.getMemoryConsumedMB() == null) {

computeServer.setMemoryConsumedMB(0);

}

Integer resourceMemorySizeMB = computeServer.getMemorySizeMB() -

computeServer.getMemoryConsumedMB();

Customizable allocation process

49