HP Insight Orchestration 6.3 User Guide

EsxDiskPolicyCheck.applyFitting
HypervDiskPolicyCheck.applyFitting
DasDiskPolicyCheck.applyFitting
SoftwarePolicyCheck.applyFitting
Writing a new rule file
Open a new drl file in a text editor, add the different sections of a rule file (as shown in “Rule
file” (page 62)), and add the new rule logic.
Package—The name of the package and is always com.hp.hpio.controller.policy.
Import—Declares the use of any other Java classes required to write the rule business logic.
Rules:
You can define multiple rules in a single rule (.drl) file.
Each rule contains the business logic that you would like to execute in your rule.
The INIT rule is a sample structure that you can duplicate and use as a starting point to
define your own rule.
You can also use tools such as Eclipse (http://downloads.jboss.com/drools/updatesite3.3/) to
write rule files by including the Drools Eclipse plug-in to the create rule project and including the
required Insight Orchestration libraries to the project. Using Eclipse helps with syntax highlighting
and auto code completion.
For more information, see the following documentation:
JBoss Rules User Guide at http://downloads.jboss.com/drools/docs/4.0.7.19894.GA/
html_single/index.html
JBoss Rules at http://downloads.jboss.com/drools/docs/4.0.7.19894.GA/apidocs/index.html
Example: Custom rule
rule "CustomRule1"
when
$pVO : PolicyExecutionVO( );
$resLst : List();
/* --------------- CUSTOM LOGIC ------------------ */
// Get service entity and resource objects.
$logicalSubnet : LogicalSubnet();
$subnet : Subnet() from $resLst;
// call new user defined function with required arguments
// function has to return true in case of success or false
// in case of failure.
eval(customRule1($logicalSubnet, $subnet, $pVO));
/* --------------- CUSTOM LOGIC ------------------ */
then
/* --------------- CUSTOM LOGIC ------------------ */
// Since this is a custom rule/criteria construct HPIO message
// using ALLOCATION_CRITERIA_CUSTOM bundle key and providing
// allocation failure message (string) to be displayed. In case
// this rule fails. NOTE same information should be used while
// calling doesNotMatch in the custom function below.
$pVO.match($subnet, HPIOMessage.get(HPIOBundleKey.ALLOCATION_CRITERIA_CUSTOM, Failure message));
/* --------------- CUSTOM LOGIC ------------------ */
end
/*
* The function is responsible to do criteria check and return
* true/false based on the requested resource and the available
* resources.
* Initialize result map with doesNotMatch to start with, if this
* function returns success (true) then rule result map will be
* changed to match.
*
*/
function boolean customRule1(
64 Insight Orchestration provisioning and allocation