Writing a new rule file – HP Matrix Operating Environment Software User Manual
Page 214
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
•
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
), 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:
Define multiple rules in a single rule (.drl) file.
◦
◦
Each rule contains the business logic to be executed.
◦
The INIT rule is a sample structure you can duplicate and use as a starting point to define
custom rules.
Tools such as Eclipse
) can be used to write
rule files by including the Drools Eclipse plug-in to the create rule project and including the required
infrastructure 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
•
JBoss Rules at
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
214
Customizable allocation process