HP Insight Orchestration 6.3 User Guide

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();
if(logicalMemorySizeMB.doubleValue() <= resourceMemorySizeMB.doubleValue()){
return true;
}else{
return false;
}
/* -------------- CUSTOM LOGIC ----------------------*/
Customizing existing rules
The advantage of providing a rules based allocation fitting process is that you can customize the
existing rules to change the business logic by modifying the CUSTOM LOGIC portion of the code.
You can modify or delete existing rules, or add new custom rules. Rules are written in Java and
the Drools syntax.
Available hooks for customizing:
SubnetPolicyCheck.applyFitting
AttributeBasedSubnetPolicyCheck.applyFitting
SpecifiedSubnetPolicyCheck.applyFitting
AutomaticIpAddressPolicyCheck.applyFitting
StaticIpAddressPolicyCheck.applyFitting
DhcpIpAddressPolicyCheck.applyFitting
PhysicalServerPolicyCheck.applyFitting
PhysicalBootDiskPolicyCheck.applyFitting
NPIVDataDiskPolicyCheck.applyFitting
VirtualServerPolicyCheck.applyFitting
Customizable allocation process 63