net/relayd: add interface for transport type route (#757)

This commit is contained in:
Frank Brendel
2018-07-26 11:30:55 +02:00
committed by Franco Fichtner
parent d9863be946
commit 57611d73b8
6 changed files with 34 additions and 3 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
PLUGIN_NAME= relayd
PLUGIN_VERSION= 2.1
PLUGIN_VERSION= 2.2
PLUGIN_DEPENDS= relayd
PLUGIN_COMMENT= Relayd Load Balancer
PLUGIN_MAINTAINER= frank.brendel@eurolog.com
@@ -151,6 +151,11 @@ class SettingsController extends ApiControllerBase
$relaydInfo[$nodeType]['backuptransport_tablemode']
);
}
if ($relaydInfo[$nodeType]['transport_type'] == 'route' &&
empty($relaydInfo[$nodeType]['routing_interface'])) {
$result['validations']['relayd.virtualserver.routing_interface'] =
gettext('Routing interface cannot be empty');
}
}
if ($relaydInfo[$nodeType]['type'] == 'relay') {
if ($relaydInfo[$nodeType]['transport_tablemode'] == 'least-states') {
@@ -70,6 +70,15 @@
</help>
<advanced>true</advanced>
</field>
<field>
<id>relayd.virtualserver.routing_interface</id>
<label>Routing Interface</label>
<type>dropdown</type>
<help><![CDATA[
The interface to use for routing packages.]]>
</help>
<advanced>true</advanced>
</field>
<field>
<id>relayd.virtualserver.transport_table</id>
<label>Table</label>
@@ -1,6 +1,6 @@
<model>
<mount>//OPNsense/relayd</mount>
<version>1.0.0</version>
<version>1.0.1</version>
<description>Relayd settings</description>
<items>
<general>
@@ -181,6 +181,14 @@
<route>Route</route>
</OptionValues>
</transport_type>
<routing_interface type="InterfaceField">
<Required>N</Required>
<multiple>N</multiple>
<filters>
<enable>/^(?!0).*$/</enable>
<ipaddr>/^((?!dhcp).)*$/</ipaddr>
</filters>
</routing_interface>
<transport_table type="ModelRelationField">
<Model>
<template>
@@ -107,9 +107,11 @@ POSSIBILITY OF SUCH DAMAGE.
// show/hide options depending on other options
function ShowHideVSFields(){
var servertype = $('#relayd\\.virtualserver\\.type').val();
var transport_type = $('#relayd\\.virtualserver\\.transport_type').val();
var backuptransport_table = $('#relayd\\.virtualserver\\.backuptransport_table').val();
$('tr[id="row_relayd.virtualserver.transport_type"]').addClass('hidden');
$('tr[id="row_relayd.virtualserver.routing_interface"]').addClass('hidden');
$('tr[id="row_relayd.virtualserver.stickyaddress"]').addClass('hidden');
$('tr[id="row_relayd.virtualserver.protocol"]').addClass('hidden');
$('tr[id="row_relayd.virtualserver.backuptransport_tablemode"]').addClass('hidden');
@@ -121,6 +123,9 @@ POSSIBILITY OF SUCH DAMAGE.
if(servertype == 'redirect'){
$('tr[id="row_relayd.virtualserver.transport_type"]').removeClass('hidden');
if(transport_type == 'route'){
$('tr[id="row_relayd.virtualserver.routing_interface"]').removeClass('hidden');
}
$('tr[id="row_relayd.virtualserver.stickyaddress"]').removeClass('hidden');
$('#relayd\\.virtualserver\\.transport_tablemode').append('<option value="least-states">Least States </option>');
$('#relayd\\.virtualserver\\.backuptransport_tablemode').append('<option value="least-states">Least States </option>');
@@ -152,6 +157,7 @@ POSSIBILITY OF SUCH DAMAGE.
};
$('#DialogEditVirtualServer').on('shown.bs.modal', function() {ShowHideVSFields();});
$('#relayd\\.virtualserver\\.type').on('changed.bs.select', function(e) {ShowHideVSFields();});
$('#relayd\\.virtualserver\\.transport_type').on('changed.bs.select', function(e) {ShowHideVSFields();});
$('#relayd\\.virtualserver\\.backuptransport_table').on('changed.bs.select', function(e) {ShowHideVSFields();});
function ShowHideTCFields(){
@@ -64,6 +64,9 @@ disable
{% set transport_type = 'forward' %}
{% if virtualserver.type == 'redirect' %}
{% set transport_type = virtualserver.transport_type %}
{% if virtualserver.transport_type == 'route' %}
{% set routing_interface = " interface " ~ virtualserver.routing_interface %}
{% endif %}
{% endif %}
{% set table = helpers.getUUID(virtualserver.transport_table) %}
{% set tablecheck = helpers.getUUID(virtualserver.transport_tablecheck) %}
@@ -97,7 +100,7 @@ disable
{% set port = " port " ~ virtualserver.transport_port if virtualserver.transport_port is defined %}
{% set timeout = " timeout " ~ virtualserver.transport_timeout if virtualserver.transport_timeout is defined %}
{% set interval = " interval " ~ virtualserver.transport_interval if virtualserver.transport_interval is defined %}
{{ transport_type }} to <{{ table.name }}>{{ port }} mode {{ virtualserver.transport_tablemode }}{{ timeout }} {{ interval }} {{ _tablecheck }}
{{ transport_type }} to <{{ table.name }}>{{ port }} mode {{ virtualserver.transport_tablemode }}{{ timeout }} {{ interval }} {{ _tablecheck }} {{ routing_interface }}
{% if virtualserver.backuptransport_table is defined and virtualserver.transport_type == 'forward' %}
{% set backuptable = helpers.getUUID(virtualserver.backuptransport_table) %}
{% set backuptablecheck = helpers.getUUID(virtualserver.backuptransport_tablecheck) if virtualserver.backuptransport_tablecheck is defined %}