summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authorSeth Mos <seth.mos@xs4all.nl>2008-11-13 20:52:04 +0000
committerSeth Mos <seth.mos@xs4all.nl>2008-11-13 20:52:04 +0000
commit1fbbe26f0234e331206fbcea7c03e7698e890c8a (patch)
tree561c76d49e62110725853ba1516d8560cb511c43 /etc
parent321d0be8d502b3c3f63185c46bb171f7fd47d5b2 (diff)
downloadpfsense-1fbbe26f0234e331206fbcea7c03e7698e890c8a.zip
pfsense-1fbbe26f0234e331206fbcea7c03e7698e890c8a.tar.gz
Gateway load balancer upgrade code courtesy of billm@
Diffstat (limited to 'etc')
-rw-r--r--etc/inc/config.inc42
1 files changed, 42 insertions, 0 deletions
diff --git a/etc/inc/config.inc b/etc/inc/config.inc
index 3c63b27..9d83817 100644
--- a/etc/inc/config.inc
+++ b/etc/inc/config.inc
@@ -2018,6 +2018,48 @@ endif;
$config['version'] = "5.3";
}
+
+ /* Convert 5.3 -> 5.4 */
+ if ($config['version'] <= 5.3) {
+ if(is_array($config['loadbalancer']['lbpool'])) {
+ $lbpool_arr = $config['loadbalancer']['lbpool'];
+ $lbpool_srv_arr = array();
+ $gateway_group_arr = array();
+ foreach($lbpool_arr as $lbpool) {
+ if($lbpool['type'] == "gateway") {
+ $gateway_group['name'] = $lbpool['name'];
+ $gateway_group['descr'] = $lbpool['desc'];
+ $gateway_group['trigger'] = "down";
+ $gateway_group['item'] = array();
+ $i=0;
+ foreach($lbpool['servers'] as $member) {
+ $split = split("\|", $member);
+ $interface = $split[0];
+ $monitor = $split[1];
+ if($lbpool['behaviour'] == "failover") { $i++; }
+ $gateway_group['item'][] = "$interface|$i";
+ $config['interfaces'][$interface]['monitorip'] = "$monitor";
+ }
+ $gateway_group_arr[] = $gateway_group;
+ } else {
+ $lbpool_srv_arr[] = $lbpool;
+ }
+ }
+ $config['loadbalancer']['lbpool'] = $lbpool_srv_arr;
+ $config['gateways']['gateway_group'] = $gateway_group_arr;
+ }
+ // Unset lbpool if we no longer have any server pools
+ if (count($lbpool_srv_arr) == 0) {
+ unset($config['loadbalancer]'['lbpool']);
+ } else {
+ $config['loadbalancer']['lbpool'] = $lbpool_srv_arr;
+ }
+ // Only set the gateway group array if we converted any
+ if (count($gateway_group_arr) != 0) {
+ $config['gateways']['gateway_group'] = $gateway_group_arr;
+ }
+ $config['version'] = "5.4";
+ }
$now = date("H:i:s");
log_error("Ended Configuration upgrade at $now");
OpenPOWER on IntegriCloud