Forum Discussion
George_Watkins_
May 17, 2012Historic F5 Account
package com.f5se.examples;
import iControl.services.LocalLBVirtualServerVirtualServerRule;
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import javax.xml.rpc.ServiceException;
public class ReplaceRulesWith {
/**
* @param args
*/
public static void main(String[] args) {
// iControl connection parameters
HashMap bigipConn = new HashMap();
bigipConn.put("address", "test-ltm-ve-03.element.local");
bigipConn.put("username", "admin");
bigipConn.put("password", "admin");
// virtual server name
String virtualServerName = "test-http-virtual-01.element.local";
// list of iRules on virtual server
List newRuleList = new ArrayList();
newRuleList.add("exp_backoff");
newRuleList.add("math");
newRuleList.add("sqrt");
int ruleCount = newRuleList.size();
// Collect new list of rules and priorities and place in LocalLBVirtualServerVirtualServerRule type
LocalLBVirtualServerVirtualServerRule[][] newRuleStruct = new LocalLBVirtualServerVirtualServerRule[1][ruleCount];
// Reverse list so that rules are added in the correct order
Collections.reverse(newRuleList);
int i = 0;
for(String ruleName : newRuleList) {
newRuleStruct[0][i] = new LocalLBVirtualServerVirtualServerRule();
newRuleStruct[0][i].setRule_name(ruleName);
newRuleStruct[0][i].setPriority(i);
i++;
}
// Configure iControl interface
iControl.BigIP bigip = new iControl.BigIP(bigipConn.get("address"), bigipConn.get("username"), bigipConn.get("password"));
bigip.setIgnoreInvalidCert(true);
try {
bigip.SystemSession().start_transaction();
bigip.LocalLBVirtualServer().remove_all_rules(new String[] { virtualServerName});
bigip.LocalLBVirtualServer().add_rule(new String[] { virtualServerName }, newRuleStruct);
bigip.SystemSession().submit_transaction();
} catch (RemoteException e) {
e.printStackTrace();
} catch (ServiceException e) {
e.printStackTrace();
}
}
}