Java Object Ltm Rule
Problem this snippet solves:
This class is part of the "Java iControl Objects" series of Articles on DevCentral. This class creates an iRule object and allows a developer to interact with the iControl LTM Rule API methods in the context of using an object.
Code :
package iControl.Objects.LTM;
public class iRule {
private iControl.Interfaces _interfaces = null;
private String _name = null;
private String _definition = null;
private Exception _lastException = null;
//-----------------------------------------------------------------------
// Member Accessors
//-----------------------------------------------------------------------
public iControl.Interfaces getInterfaces() { return _interfaces; }
public void setInterfaces(iControl.Interfaces interfaces) { _interfaces = interfaces; }
public String getName() { return _name; }
public void setName(String value) { _name = value; }
public String getDefinition() { return _definition; }
public void setDefinition(String value) { _definition = value; }
public Exception getLastException() { return _lastException; }
//-----------------------------------------------------------------------
// Constructors
//-----------------------------------------------------------------------
public iRule(iControl.Interfaces interfaces, String name, String definition)
{
_interfaces = interfaces;
_name = name;
_definition = definition;
}
public iRule(iControl.Interfaces interfaces, iControl.LocalLBRuleRuleDefinition rule_def)
{
_interfaces = interfaces;
_name = rule_def.getRule_name();
_definition = rule_def.getRule_definition();
}
protected void validateMembers() throws Exception
{
if ( (null == _interfaces) || (null == _name) || (null == _definition) )
{
throw new Exception("Invalid Rule Parameters");
}
}
protected void clearException()
{
_lastException = null;
}
//-----------------------------------------------------------------------
// Attribute Accessors
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// Public Methods
//-----------------------------------------------------------------------
public boolean save() throws Exception
{
validateMembers();
clearException();
boolean bSaved = false;
iControl.LocalLBRuleRuleDefinition ruleDef =
new iControl.LocalLBRuleRuleDefinition();
ruleDef.setRule_name(_name);
ruleDef.setRule_definition(_definition);
iControl.LocalLBRuleRuleDefinition [] ruleDefA = { ruleDef };
// First attempt to create the iRule.
try
{
_interfaces.getLocalLBRule().create(ruleDefA);
bSaved = true;
}
catch(Exception ex)
{
if ( ex.getMessage().contains("already") )
{
// If create fails due to it already existing,
// then try to modify the existing one.
try
{
_interfaces.getLocalLBRule().modify_rule(ruleDefA);
bSaved = true;
}
catch(Exception ex2)
{
_lastException = ex2;
}
}
else
{
_lastException = ex;
}
}
return bSaved;
}
public boolean load() throws Exception
{
boolean bLoaded = false;
validateMembers();
String [] rule_list = { _name };
try
{
iControl.LocalLBRuleRuleDefinition []ruleDef =
_interfaces.getLocalLBRule().query_rule(rule_list);
_definition = ruleDef[0].getRule_definition();
bLoaded = true;
}
catch(Exception ex)
{
_lastException = ex;
}
return bLoaded;
}
public boolean checkSyntax() throws Exception
{
clearException();
validateMembers();
boolean bValid = false;
String tmpName = "icoTempRuleForStatusCheck";
iRule tmpiRule = new iRule(_interfaces, tmpName, _definition);
try
{
if ( tmpiRule.save() )
{
tmpiRule.delete();
bValid = true;
}
}
catch(Exception ex)
{
_lastException = ex;
bValid = false;
}
return bValid;
}
public void delete() throws Exception
{
validateMembers();
String [] rule_list = { _name };
_interfaces.getLocalLBRule().delete_rule(rule_list);
}
public iControl.LocalLBRuleRuleStatisticEntry getStatistics() throws Exception
{
validateMembers();
String [] rule_list = { _name };
iControl.LocalLBRuleRuleStatistics ruleStats =
_interfaces.getLocalLBRule().get_statistics(rule_list);
iControl.LocalLBRuleRuleStatisticEntry statsEntry =
ruleStats.getStatistics()[0];
return statsEntry;
}
public void resetStatistics() throws Exception
{
validateMembers();
String [] rule_list = { _name };
_interfaces.getLocalLBRule().reset_statistics(rule_list);
}
//-----------------------------------------------------------------------
// Public Static Methods
//-----------------------------------------------------------------------
public static iRule [] getList(iControl.Interfaces interfaces) throws Exception
{
iRule [] irule_list = null;
iControl.LocalLBRuleRuleDefinition [] rule_defs =
interfaces.getLocalLBRule().query_all_rules();
irule_list = new iRule[rule_defs.length];
for(int i=0; iPublished Mar 08, 2015
Version 1.0CodeCentral_194
Cirrostratus
Joined May 05, 2019
CodeCentral_194
Cirrostratus
Joined May 05, 2019
No CommentsBe the first to comment