mirror of
https://github.com/netbirdio/plugins.git
synced 2026-05-22 18:44:07 -07:00
net/relayd: UI improvements; use configd backend (#697)
This commit is contained in:
committed by
Franco Fichtner
parent
7db74cef82
commit
e41d5f80e6
+1
-1
@@ -1,6 +1,6 @@
|
||||
PLUGIN_NAME= relayd
|
||||
PLUGIN_VERSION= 2.0.d
|
||||
PLUGIN_REVISION= 6
|
||||
PLUGIN_REVISION= 7
|
||||
PLUGIN_DEPENDS= relayd
|
||||
PLUGIN_COMMENT= Relayd Load Balancer
|
||||
PLUGIN_MAINTAINER= frank.brendel@eurolog.com
|
||||
|
||||
Executable
+113
@@ -0,0 +1,113 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
# PROVIDE: os-relayd
|
||||
# REQUIRE: NETWORKING syslogd
|
||||
# BEFORE: DAEMON
|
||||
# KEYWORD: shutdown
|
||||
|
||||
. /etc/rc.subr
|
||||
|
||||
name="osrelayd"
|
||||
rcvar="osrelayd_enable"
|
||||
|
||||
load_rc_config $name
|
||||
|
||||
: ${relayd_enable="NO"}
|
||||
|
||||
command="/usr/local/sbin/relayd"
|
||||
cmd_string="relayd: parent"
|
||||
relayctl="/usr/local/sbin/relayctl"
|
||||
pidfile="/var/run/osrelayd.pid"
|
||||
|
||||
|
||||
relayd_start () {
|
||||
relayd_status
|
||||
if [ $? -eq 0 ]; then
|
||||
debug "relayd_start: relayd ist already running"
|
||||
return 0
|
||||
fi
|
||||
debug "relayd_start: start relayd"
|
||||
run_rc_command "start"
|
||||
if [ $? -eq 0 ]; then
|
||||
i=0
|
||||
status="nok"
|
||||
# give relayd some time to start
|
||||
while [ $i -ne 3 ]; do
|
||||
ps_pid=`ps ax -o pid= -o command= | grep "$cmd_string" | grep -v grep | awk '{ print $1 }'`
|
||||
if [ -z "$ps_pid" ]; then
|
||||
status="Cannot get pid for $command"
|
||||
else
|
||||
status="ok"
|
||||
break
|
||||
fi
|
||||
echo $status
|
||||
sleep 1
|
||||
i=$(( $i + 1 ))
|
||||
done
|
||||
if [ $status != 'ok' ]; then
|
||||
err 1 "$status"
|
||||
fi
|
||||
echo $ps_pid > $pidfile
|
||||
return $?
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
|
||||
relayd_stop () {
|
||||
relayd_status
|
||||
if [ $? -eq 1 ]; then
|
||||
return 0
|
||||
fi
|
||||
run_rc_command "stop"
|
||||
if [ $? -ne 0 ]; then
|
||||
err 1 "Cannot stop relayd with pid from $pidfile"
|
||||
fi
|
||||
rm -f $pidfile
|
||||
return $?
|
||||
}
|
||||
|
||||
relayd_restart () {
|
||||
relayd_stop
|
||||
if [ $? -ne 0 ]; then
|
||||
return $?
|
||||
fi
|
||||
sleep 1
|
||||
relayd_start
|
||||
return $?
|
||||
}
|
||||
|
||||
relayd_status () {
|
||||
|
||||
run_rc_command "status"
|
||||
return $?
|
||||
}
|
||||
|
||||
relayd_reload () {
|
||||
$relayctl reload
|
||||
}
|
||||
|
||||
case $1 in
|
||||
start)
|
||||
relayd_start
|
||||
exit $?
|
||||
;;
|
||||
stop)
|
||||
relayd_stop
|
||||
exit $?
|
||||
;;
|
||||
restart)
|
||||
relayd_restart
|
||||
exit $?
|
||||
;;
|
||||
status)
|
||||
relayd_status
|
||||
exit $?
|
||||
;;
|
||||
reload)
|
||||
relayd_reload;
|
||||
exit $?
|
||||
;;
|
||||
esac
|
||||
@@ -42,6 +42,25 @@ class ServiceController extends ApiMutableServiceControllerBase
|
||||
static protected $internalServiceEnabled = 'general.enabled';
|
||||
static protected $internalServiceTemplate = 'OPNsense/Relayd';
|
||||
static protected $internalServiceName = 'relayd';
|
||||
private $internalLockHandle = null;
|
||||
|
||||
/**
|
||||
* simple lock mechanism
|
||||
*/
|
||||
private function lock($release = null)
|
||||
{
|
||||
if ($release != null) {
|
||||
flock($this->internalLockHandle, LOCK_UN);
|
||||
fclose($this->internalLockHandle);
|
||||
return true;
|
||||
}
|
||||
|
||||
$this->internalLockHandle = fopen("/tmp/relayd.lock", "w+");
|
||||
if ($this->internalLockHandle != null && flock($this->internalLockHandle, LOCK_EX)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* test relayd configuration
|
||||
@@ -50,6 +69,7 @@ class ServiceController extends ApiMutableServiceControllerBase
|
||||
public function configtestAction()
|
||||
{
|
||||
if ($this->request->isPost()) {
|
||||
$result['status'] = 'ok';
|
||||
$this->sessionClose();
|
||||
|
||||
$backend = new Backend();
|
||||
@@ -67,6 +87,50 @@ class ServiceController extends ApiMutableServiceControllerBase
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* reconfigure relayd
|
||||
* @return array
|
||||
*/
|
||||
public function reconfigureAction()
|
||||
{
|
||||
if ($this->request->isPost()) {
|
||||
if ($this->lock()) {
|
||||
$this->sessionClose();
|
||||
$result['function'] = "reconfigure";
|
||||
$result['status'] = 'failed';
|
||||
$mdlRelayd = new Relayd();
|
||||
$backend = new Backend();
|
||||
$status = $this->statusAction();
|
||||
if ($mdlRelayd->general->enabled->__toString() == 1) {
|
||||
$result = $this->configtestAction();
|
||||
if ($result['template'] == 'OK' && preg_match('/configuration OK$/', $result['result']) == 1) {
|
||||
if ($status['status'] != 'running') {
|
||||
$result['result'] = trim($backend->configdRun('relayd start'));
|
||||
} else {
|
||||
$result['result'] = trim($backend->configdRun('relayd reload'));
|
||||
}
|
||||
} else {
|
||||
return $result;
|
||||
}
|
||||
} else {
|
||||
if ($status['status'] == 'running') {
|
||||
$result['result'] = trim($backend->configdRun('relayd stop'));
|
||||
}
|
||||
}
|
||||
$this->lock(1);
|
||||
$mdlRelayd = new Relayd();
|
||||
if ($mdlRelayd->configClean()) {
|
||||
$result['status'] = 'ok';
|
||||
}
|
||||
return $result;
|
||||
} else {
|
||||
throw new \Exception("Cannot get lock");
|
||||
}
|
||||
} else {
|
||||
return array('status' => 'failed');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* avoid restarting Relayd on reconfigure
|
||||
*/
|
||||
|
||||
+21
-8
@@ -59,6 +59,17 @@ class SettingsController extends ApiControllerBase
|
||||
$this->mdlRelayd = new Relayd();
|
||||
}
|
||||
|
||||
/**
|
||||
* check if changes to the relayd settings were made
|
||||
* @return result array
|
||||
*/
|
||||
public function dirtyAction()
|
||||
{
|
||||
$result = array('status' => 'ok');
|
||||
$result['relayd']['dirty'] = $this->mdlRelayd->configChanged();
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* query relayd settings
|
||||
* @param $nodeType
|
||||
@@ -81,7 +92,7 @@ class SettingsController extends ApiControllerBase
|
||||
}
|
||||
if ($node != null) {
|
||||
$result['relayd'] = array($nodeType => $node->getNodes());
|
||||
$result['result'] = 'ok';
|
||||
$result['status'] = 'ok';
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
@@ -192,12 +203,10 @@ class SettingsController extends ApiControllerBase
|
||||
}
|
||||
if (empty($result["validations"])) {
|
||||
unset($result["validations"]);
|
||||
$result['result'] = 'ok';
|
||||
$this->mdlRelayd->serializeToConfig();
|
||||
Config::getInstance()->save();
|
||||
if ($nodeType == 'general') {
|
||||
$svcRelayd = new ServiceController();
|
||||
$result = $svcRelayd->reconfigureAction();
|
||||
$cfgRelayd = Config::getInstance()->save();
|
||||
if ($this->mdlRelayd->configDirty()) {
|
||||
$result['status'] = 'ok';
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -282,7 +291,9 @@ class SettingsController extends ApiControllerBase
|
||||
}
|
||||
$this->mdlRelayd->serializeToConfig();
|
||||
Config::getInstance()->save();
|
||||
$result['result'] = 'ok';
|
||||
if ($this->mdlRelayd->configDirty()) {
|
||||
$result['status'] = 'ok';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -319,7 +330,9 @@ class SettingsController extends ApiControllerBase
|
||||
$fields = array('enabled', 'name', 'type');
|
||||
break;
|
||||
}
|
||||
return $grid->fetchBindRequest($this->request, $fields);
|
||||
$result = $grid->fetchBindRequest($this->request, $fields);
|
||||
$result['dirty'] = $this->mdlRelayd->configChanged();
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+8
-9
@@ -31,6 +31,7 @@
|
||||
namespace OPNsense\Relayd\Api;
|
||||
|
||||
use \OPNsense\Base\ApiControllerBase;
|
||||
use \OPNsense\Core\Backend;
|
||||
use \OPNsense\Relayd\Relayd;
|
||||
|
||||
/**
|
||||
@@ -45,11 +46,10 @@ class StatusController extends ApiControllerBase
|
||||
public function sumAction()
|
||||
{
|
||||
$result = array("result" => "failed");
|
||||
$backend = new Backend();
|
||||
$output = array();
|
||||
$exitcode;
|
||||
exec('/usr/local/sbin/relayctl show summary 2>&1', $output, $exitcode);
|
||||
if ($exitcode != 0) {
|
||||
$result["output"] = join(' ', $output);
|
||||
$output = explode("\n", trim($backend->configdRun('relayd summary')));
|
||||
if (empty($output[0])) {
|
||||
return $result;
|
||||
}
|
||||
$result["result"] = 'ok';
|
||||
@@ -102,8 +102,6 @@ class StatusController extends ApiControllerBase
|
||||
$this->sessionClose();
|
||||
}
|
||||
$result = array("result" => "failed", "function" => "toggle");
|
||||
$output = array();
|
||||
$exitcode;
|
||||
if ($nodeType != null &&
|
||||
($nodeType == 'redirect' ||
|
||||
$nodeType == 'table' ||
|
||||
@@ -112,11 +110,12 @@ class StatusController extends ApiControllerBase
|
||||
($action == 'enable' ||
|
||||
$action == 'disable')) {
|
||||
if ($id != null && $id > 0) {
|
||||
exec("/usr/local/sbin/relayctl $nodeType $action $id 2>&1", $output, $exitcode);
|
||||
$result["output"] = join(' ', $output);
|
||||
if ($exitcode == 0) {
|
||||
$backend = new Backend();
|
||||
$result["output"] = $backend->configdRun("relayd toggle $nodeType $action $id");
|
||||
if (isset($result["output"])) {
|
||||
$result["result"] = 'ok';
|
||||
}
|
||||
$result["output"] = trim($result["output"]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,4 +38,30 @@ use OPNsense\Base\BaseModel;
|
||||
*/
|
||||
class Relayd extends BaseModel
|
||||
{
|
||||
/**
|
||||
* get configuration state
|
||||
* @return bool
|
||||
*/
|
||||
public function configChanged()
|
||||
{
|
||||
return file_exists("/tmp/relayd.dirty");
|
||||
}
|
||||
|
||||
/**
|
||||
* mark configuration as changed
|
||||
* @return bool
|
||||
*/
|
||||
public function configDirty()
|
||||
{
|
||||
return @touch("/tmp/relayd.dirty");
|
||||
}
|
||||
|
||||
/**
|
||||
* mark configuration as consistent with the running config
|
||||
* @return bool
|
||||
*/
|
||||
public function configClean()
|
||||
{
|
||||
return @unlink("/tmp/relayd.dirty");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,179 +29,182 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||
<script>
|
||||
|
||||
$( document ).ready(function() {
|
||||
/**
|
||||
* get the isSubsystemDirty value and print a notice
|
||||
*/
|
||||
function isSubsystemDirty() {
|
||||
ajaxGet(url="/api/relayd/settings/dirty", sendData={}, callback=function(data,status) {
|
||||
if (status == "success") {
|
||||
if (data.relayd.dirty === true) {
|
||||
$("#configChangedMsg").removeClass("hidden");
|
||||
} else {
|
||||
$("#configChangedMsg").addClass("hidden");
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$('#btnConfigTest').unbind('click').click(function(){
|
||||
$("#responseMsg").addClass("hidden");
|
||||
$('#btnConfigTestProgress').addClass("fa fa-spinner fa-pulse");
|
||||
ajaxCall(url="/api/relayd/service/configtest", sendData={}, callback=function(data,status) {
|
||||
$('#btnConfigTestProgress').removeClass("fa fa-spinner fa-pulse");
|
||||
$('#btnConfigTest').blur();
|
||||
$("#responseMsg").removeClass("hidden");
|
||||
$("#responseMsg").html(data['result']);
|
||||
});
|
||||
});
|
||||
/**
|
||||
* chain std_bootgrid_reload from opnsense_bootgrid_plugin.js
|
||||
* to get the isSubsystemDirty state on "UIBootgrid" changes
|
||||
*/
|
||||
var opn_std_bootgrid_reload = std_bootgrid_reload;
|
||||
std_bootgrid_reload = function(gridId) {
|
||||
opn_std_bootgrid_reload(gridId);
|
||||
isSubsystemDirty();
|
||||
};
|
||||
|
||||
$('#btnReload').unbind('click').click(function(){
|
||||
$("#responseMsg").addClass("hidden");
|
||||
$('#btnReloadProgress').addClass("fa fa-spinner fa-pulse");
|
||||
ajaxCall(url="/api/relayd/service/reconfigure", sendData={}, callback=function(data,status) {
|
||||
updateServiceControlUI('relayd');
|
||||
$('#btnReloadProgress').removeClass("fa fa-spinner fa-pulse");
|
||||
$('#btnReload').blur();
|
||||
updateServiceControlUI('relayd');
|
||||
});
|
||||
});
|
||||
/**
|
||||
* general settings
|
||||
*/
|
||||
mapDataToFormUI({'frm_GeneralSettings':"/api/relayd/settings/get/general/"}).done(function(){
|
||||
formatTokenizersUI();
|
||||
$('#relayd\\.general\\.log').selectpicker('refresh');
|
||||
updateServiceControlUI('relayd');
|
||||
});
|
||||
$('#btn_ApplyGeneralSettings').unbind('click').click(function(){
|
||||
$("#frm_GeneralSettings_progress").addClass("fa fa-spinner fa-pulse");
|
||||
var frm_id = 'frm_GeneralSettings';
|
||||
saveFormToEndpoint(url = "/api/relayd/settings/set/general/",formid=frm_id,callback_ok=function(){
|
||||
$("#"+frm_id+"_progress").removeClass("fa fa-spinner fa-pulse");
|
||||
$("#btn_ApplyGeneralSettings").blur();
|
||||
updateServiceControlUI('relayd');
|
||||
});
|
||||
});
|
||||
/**
|
||||
* apply changes and reload relayd
|
||||
*/
|
||||
$('#btnApplyConfig').unbind('click').click(function(){
|
||||
$('#btnApplyConfigProgress').addClass("fa fa-spinner fa-pulse");
|
||||
ajaxCall(url="/api/relayd/service/reconfigure", sendData={}, callback=function(data,status) {
|
||||
$("#responseMsg").addClass("hidden");
|
||||
isSubsystemDirty();
|
||||
updateServiceControlUI('relayd');
|
||||
if (data.result) {
|
||||
$("#responseMsg").html(data['result']);
|
||||
$("#responseMsg").removeClass("hidden");
|
||||
}
|
||||
$('#btnApplyConfigProgress').removeClass("fa fa-spinner fa-pulse");
|
||||
$('#btnApplyConfig').blur();
|
||||
});
|
||||
});
|
||||
|
||||
$("#grid-host").UIBootgrid({
|
||||
'search': '/api/relayd/settings/search/host/',
|
||||
'get': '/api/relayd/settings/get/host/',
|
||||
'set': '/api/relayd/settings/set/host/',
|
||||
'add': '/api/relayd/settings/set/host/',
|
||||
'del': '/api/relayd/settings/del/host/'
|
||||
});
|
||||
$("#grid-tablecheck").UIBootgrid({
|
||||
'search': '/api/relayd/settings/search/tablecheck/',
|
||||
'get': '/api/relayd/settings/get/tablecheck/',
|
||||
'set': '/api/relayd/settings/set/tablecheck/',
|
||||
'add': '/api/relayd/settings/set/tablecheck/',
|
||||
'del': '/api/relayd/settings/del/tablecheck/'
|
||||
});
|
||||
$("#grid-table").UIBootgrid({
|
||||
'search': '/api/relayd/settings/search/table/',
|
||||
'get': '/api/relayd/settings/get/table/',
|
||||
'set': '/api/relayd/settings/set/table/',
|
||||
'add': '/api/relayd/settings/set/table/',
|
||||
'del': '/api/relayd/settings/del/table/'
|
||||
});
|
||||
$("#grid-protocol").UIBootgrid({
|
||||
'search': '/api/relayd/settings/search/protocol/',
|
||||
'get': '/api/relayd/settings/get/protocol/',
|
||||
'set': '/api/relayd/settings/set/protocol/',
|
||||
'add': '/api/relayd/settings/set/protocol/',
|
||||
'del': '/api/relayd/settings/del/protocol/'
|
||||
});
|
||||
$("#grid-virtualserver").UIBootgrid({
|
||||
'search': '/api/relayd/settings/search/virtualserver/',
|
||||
'get': '/api/relayd/settings/get/virtualserver/',
|
||||
'set': '/api/relayd/settings/set/virtualserver/',
|
||||
'add': '/api/relayd/settings/set/virtualserver/',
|
||||
'del': '/api/relayd/settings/del/virtualserver/'
|
||||
});
|
||||
/**
|
||||
* general settings
|
||||
*/
|
||||
mapDataToFormUI({'frm_GeneralSettings':"/api/relayd/settings/get/general/"}).done(function() {
|
||||
$("#responseMsg").addClass("hidden");
|
||||
formatTokenizersUI();
|
||||
$('#relayd\\.general\\.log').selectpicker('refresh');
|
||||
updateServiceControlUI('relayd');
|
||||
isSubsystemDirty();
|
||||
});
|
||||
$('#btnSaveGeneral').unbind('click').click(function() {
|
||||
$("#btnSaveGeneralProgress").addClass("fa fa-spinner fa-pulse");
|
||||
var frm_id = 'frm_GeneralSettings';
|
||||
saveFormToEndpoint(url = "/api/relayd/settings/set/general/",formid=frm_id,callback_ok=function() {
|
||||
$("#responseMsg").addClass("hidden");
|
||||
updateServiceControlUI('relayd');
|
||||
isSubsystemDirty();
|
||||
$("#btnSaveGeneralProgress").removeClass("fa fa-spinner fa-pulse");
|
||||
$("#btnSaveGeneral").blur();
|
||||
});
|
||||
});
|
||||
|
||||
// show/hide options depending on other options
|
||||
function ShowHideVSFields(){
|
||||
var servertype = $('#relayd\\.virtualserver\\.type').val();
|
||||
var backuptransport_table = $('#relayd\\.virtualserver\\.backuptransport_table').val();
|
||||
['host', 'tablecheck', 'table', 'protocol', 'virtualserver'].forEach(function(element) {
|
||||
$("#grid-" + element).UIBootgrid({
|
||||
'search': '/api/relayd/settings/search/' + element + '/',
|
||||
'get': '/api/relayd/settings/get/' + element + '/',
|
||||
'set': '/api/relayd/settings/set/' + element + '/',
|
||||
'add': '/api/relayd/settings/set/' + element + '/',
|
||||
'del': '/api/relayd/settings/del/' + element + '/'
|
||||
});
|
||||
});
|
||||
|
||||
$('tr[id="row_relayd.virtualserver.transport_type"]').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');
|
||||
$('tr[id="row_relayd.virtualserver.backuptransport_timeout"]').addClass('hidden');
|
||||
$('tr[id="row_relayd.virtualserver.backuptransport_interval"]').addClass('hidden');
|
||||
// show/hide options depending on other options
|
||||
function ShowHideVSFields(){
|
||||
var servertype = $('#relayd\\.virtualserver\\.type').val();
|
||||
var backuptransport_table = $('#relayd\\.virtualserver\\.backuptransport_table').val();
|
||||
|
||||
$('tr[id="row_relayd.virtualserver.transport_type"]').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');
|
||||
$('tr[id="row_relayd.virtualserver.backuptransport_timeout"]').addClass('hidden');
|
||||
$('tr[id="row_relayd.virtualserver.backuptransport_interval"]').addClass('hidden');
|
||||
$('tr[id="row_relayd.virtualserver.backuptransport_tablecheck"]').addClass('hidden');
|
||||
$('#relayd\\.virtualserver\\.transport_tablemode').empty().append('<option value="roundrobin">Round Robin </option>');
|
||||
$('#relayd\\.virtualserver\\.backuptransport_tablemode').empty().append('<option value="roundrobin">Round Robin </option>');
|
||||
$('#relayd\\.virtualserver\\.transport_tablemode').empty().append('<option value="roundrobin">Round Robin </option>');
|
||||
$('#relayd\\.virtualserver\\.backuptransport_tablemode').empty().append('<option value="roundrobin">Round Robin </option>');
|
||||
|
||||
if(servertype == 'redirect'){
|
||||
$('tr[id="row_relayd.virtualserver.transport_type"]').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>');
|
||||
$('#relayd\\.virtualserver\\.transport_tablemode').val('roundrobin');
|
||||
$('#relayd\\.virtualserver\\.backuptransport_tablemode').val('roundrobin');
|
||||
} else {
|
||||
$('tr[id="row_relayd.virtualserver.protocol"]').removeClass('hidden');
|
||||
$('#relayd\\.virtualserver\\.transport_tablemode').append('<option value="hash">Hash </option>');
|
||||
$('#relayd\\.virtualserver\\.backuptransport_tablemode').append('<option value="hash">Hash </option>');
|
||||
$('#relayd\\.virtualserver\\.transport_tablemode').append('<option value="loadbalance">Load Balance </option>');
|
||||
$('#relayd\\.virtualserver\\.backuptransport_tablemode').append('<option value="loadbalance">Load Balance </option>');
|
||||
$('#relayd\\.virtualserver\\.transport_tablemode').append('<option value="random">Random </option>');
|
||||
$('#relayd\\.virtualserver\\.backuptransport_tablemode').append('<option value="random">Random </option>');
|
||||
$('#relayd\\.virtualserver\\.transport_tablemode').append('<option value="source-hash">Source Hash </option>');
|
||||
$('#relayd\\.virtualserver\\.backuptransport_tablemode').append('<option value="source-hash">Source Hash </option>');
|
||||
$('#relayd\\.virtualserver\\.transport_tablemode').val('roundrobin');
|
||||
$('#relayd\\.virtualserver\\.backuptransport_tablemode').val('roundrobin');
|
||||
}
|
||||
if(servertype == 'redirect'){
|
||||
$('tr[id="row_relayd.virtualserver.transport_type"]').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>');
|
||||
$('#relayd\\.virtualserver\\.transport_tablemode').val('roundrobin');
|
||||
$('#relayd\\.virtualserver\\.backuptransport_tablemode').val('roundrobin');
|
||||
} else {
|
||||
$('tr[id="row_relayd.virtualserver.protocol"]').removeClass('hidden');
|
||||
$('#relayd\\.virtualserver\\.transport_tablemode').append('<option value="hash">Hash </option>');
|
||||
$('#relayd\\.virtualserver\\.backuptransport_tablemode').append('<option value="hash">Hash </option>');
|
||||
$('#relayd\\.virtualserver\\.transport_tablemode').append('<option value="loadbalance">Load Balance </option>');
|
||||
$('#relayd\\.virtualserver\\.backuptransport_tablemode').append('<option value="loadbalance">Load Balance </option>');
|
||||
$('#relayd\\.virtualserver\\.transport_tablemode').append('<option value="random">Random </option>');
|
||||
$('#relayd\\.virtualserver\\.backuptransport_tablemode').append('<option value="random">Random </option>');
|
||||
$('#relayd\\.virtualserver\\.transport_tablemode').append('<option value="source-hash">Source Hash </option>');
|
||||
$('#relayd\\.virtualserver\\.backuptransport_tablemode').append('<option value="source-hash">Source Hash </option>');
|
||||
$('#relayd\\.virtualserver\\.transport_tablemode').val('roundrobin');
|
||||
$('#relayd\\.virtualserver\\.backuptransport_tablemode').val('roundrobin');
|
||||
}
|
||||
|
||||
$('#relayd\\.virtualserver\\.transport_tablemode').selectpicker('refresh');
|
||||
$('#relayd\\.virtualserver\\.backuptransport_tablemode').selectpicker('refresh');
|
||||
$('#relayd\\.virtualserver\\.transport_tablemode').selectpicker('refresh');
|
||||
$('#relayd\\.virtualserver\\.backuptransport_tablemode').selectpicker('refresh');
|
||||
|
||||
if(backuptransport_table !== '') {
|
||||
$('tr[id="row_relayd.virtualserver.backuptransport_tablemode"]').removeClass('hidden');
|
||||
$('tr[id="row_relayd.virtualserver.backuptransport_tablecheck"]').removeClass('hidden');
|
||||
$('tr[id="row_relayd.virtualserver.backuptransport_timeout"]').removeClass('hidden');
|
||||
$('tr[id="row_relayd.virtualserver.backuptransport_interval"]').removeClass('hidden');
|
||||
}
|
||||
};
|
||||
$('#DialogEditVirtualServer').on('shown.bs.modal', function() {ShowHideVSFields();});
|
||||
$('#relayd\\.virtualserver\\.type').on('changed.bs.select', function(e) {ShowHideVSFields();});
|
||||
$('#relayd\\.virtualserver\\.backuptransport_table').on('changed.bs.select', function(e) {ShowHideVSFields();});
|
||||
if(backuptransport_table !== '') {
|
||||
$('tr[id="row_relayd.virtualserver.backuptransport_tablemode"]').removeClass('hidden');
|
||||
$('tr[id="row_relayd.virtualserver.backuptransport_tablecheck"]').removeClass('hidden');
|
||||
$('tr[id="row_relayd.virtualserver.backuptransport_timeout"]').removeClass('hidden');
|
||||
$('tr[id="row_relayd.virtualserver.backuptransport_interval"]').removeClass('hidden');
|
||||
}
|
||||
};
|
||||
$('#DialogEditVirtualServer').on('shown.bs.modal', function() {ShowHideVSFields();});
|
||||
$('#relayd\\.virtualserver\\.type').on('changed.bs.select', function(e) {ShowHideVSFields();});
|
||||
$('#relayd\\.virtualserver\\.backuptransport_table').on('changed.bs.select', function(e) {ShowHideVSFields();});
|
||||
|
||||
function ShowHideTCFields(){
|
||||
var tablechecktype = $('#relayd\\.tablecheck\\.type').val();
|
||||
function ShowHideTCFields(){
|
||||
var tablechecktype = $('#relayd\\.tablecheck\\.type').val();
|
||||
|
||||
$('tr[id="row_relayd.tablecheck.path"]').addClass('hidden');
|
||||
$('tr[id="row_relayd.tablecheck.host"]').addClass('hidden');
|
||||
$('tr[id="row_relayd.tablecheck.code"]').addClass('hidden');
|
||||
$('tr[id="row_relayd.tablecheck.digest"]').addClass('hidden');
|
||||
$('tr[id="row_relayd.tablecheck.data"]').addClass('hidden');
|
||||
$('tr[id="row_relayd.tablecheck.expect"]').addClass('hidden');
|
||||
$('tr[id="row_relayd.tablecheck.ssl"]').addClass('hidden');
|
||||
$('tr[id="row_relayd.tablecheck.path"]').addClass('hidden');
|
||||
$('tr[id="row_relayd.tablecheck.host"]').addClass('hidden');
|
||||
$('tr[id="row_relayd.tablecheck.code"]').addClass('hidden');
|
||||
$('tr[id="row_relayd.tablecheck.digest"]').addClass('hidden');
|
||||
$('tr[id="row_relayd.tablecheck.data"]').addClass('hidden');
|
||||
$('tr[id="row_relayd.tablecheck.expect"]').addClass('hidden');
|
||||
$('tr[id="row_relayd.tablecheck.ssl"]').addClass('hidden');
|
||||
|
||||
switch (tablechecktype) {
|
||||
case 'send':
|
||||
$('tr[id="row_relayd.tablecheck.data"]').removeClass('hidden');
|
||||
$('tr[id="row_relayd.tablecheck.expect"]').removeClass('hidden');
|
||||
$('tr[id="row_relayd.tablecheck.ssl"]').removeClass('hidden');
|
||||
break;
|
||||
case 'script':
|
||||
$('tr[id="row_relayd.tablecheck.path"]').removeClass('hidden');
|
||||
break;
|
||||
case 'http':
|
||||
var code = $('#relayd\\.tablecheck\\.code').val();
|
||||
var digest = $('#relayd\\.tablecheck\\.digest').val();
|
||||
$('tr[id="row_relayd.tablecheck.path"]').removeClass('hidden');
|
||||
$('tr[id="row_relayd.tablecheck.host"]').removeClass('hidden');
|
||||
if (code !== '') {
|
||||
$('tr[id="row_relayd.tablecheck.code"]').removeClass('hidden');
|
||||
$('tr[id="row_relayd.tablecheck.digest"]').addClass('hidden');
|
||||
} else if (digest !== '') {
|
||||
$('tr[id="row_relayd.tablecheck.code"]').addClass('hidden');
|
||||
$('tr[id="row_relayd.tablecheck.digest"]').removeClass('hidden');
|
||||
} else {
|
||||
$('tr[id="row_relayd.tablecheck.code"]').removeClass('hidden');
|
||||
$('tr[id="row_relayd.tablecheck.digest"]').removeClass('hidden');
|
||||
}
|
||||
$('tr[id="row_relayd.tablecheck.ssl"]').removeClass('hidden');
|
||||
break;
|
||||
}
|
||||
};
|
||||
switch (tablechecktype) {
|
||||
case 'send':
|
||||
$('tr[id="row_relayd.tablecheck.data"]').removeClass('hidden');
|
||||
$('tr[id="row_relayd.tablecheck.expect"]').removeClass('hidden');
|
||||
$('tr[id="row_relayd.tablecheck.ssl"]').removeClass('hidden');
|
||||
break;
|
||||
case 'script':
|
||||
$('tr[id="row_relayd.tablecheck.path"]').removeClass('hidden');
|
||||
break;
|
||||
case 'http':
|
||||
var code = $('#relayd\\.tablecheck\\.code').val();
|
||||
var digest = $('#relayd\\.tablecheck\\.digest').val();
|
||||
$('tr[id="row_relayd.tablecheck.path"]').removeClass('hidden');
|
||||
$('tr[id="row_relayd.tablecheck.host"]').removeClass('hidden');
|
||||
if (code !== '') {
|
||||
$('tr[id="row_relayd.tablecheck.code"]').removeClass('hidden');
|
||||
$('tr[id="row_relayd.tablecheck.digest"]').addClass('hidden');
|
||||
} else if (digest !== '') {
|
||||
$('tr[id="row_relayd.tablecheck.code"]').addClass('hidden');
|
||||
$('tr[id="row_relayd.tablecheck.digest"]').removeClass('hidden');
|
||||
} else {
|
||||
$('tr[id="row_relayd.tablecheck.code"]').removeClass('hidden');
|
||||
$('tr[id="row_relayd.tablecheck.digest"]').removeClass('hidden');
|
||||
}
|
||||
$('tr[id="row_relayd.tablecheck.ssl"]').removeClass('hidden');
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
$('#DialogEditTableCheck').on('shown.bs.modal', function() {ShowHideTCFields();});
|
||||
$('#relayd\\.tablecheck\\.type').on('changed.bs.select', function(e) {ShowHideTCFields();});
|
||||
$('#relayd\\.tablecheck\\.code').on('input', function() {ShowHideTCFields();});
|
||||
$('#relayd\\.tablecheck\\.digest').on('input', function() {ShowHideTCFields();});
|
||||
$('#DialogEditTableCheck').on('shown.bs.modal', function() {ShowHideTCFields();});
|
||||
$('#relayd\\.tablecheck\\.type').on('changed.bs.select', function(e) {ShowHideTCFields();});
|
||||
$('#relayd\\.tablecheck\\.code').on('input', function() {ShowHideTCFields();});
|
||||
$('#relayd\\.tablecheck\\.digest').on('input', function() {ShowHideTCFields();});
|
||||
});
|
||||
</script>
|
||||
|
||||
<div class="alert alert-info hidden" role="alert" id="configChangedMsg">
|
||||
<button class="btn btn-primary pull-right" id="btnApplyConfig" type="button"><b>{{ lang._('Apply changes') }}</b> <i id="btnApplyConfigProgress"></i></button>
|
||||
{{ lang._('The Relayd configuration has been changed') }} <br /> {{ lang._('You must apply the changes in order for them to take effect.')}}
|
||||
</div>
|
||||
<div class="alert alert-info hidden" role="alert" id="responseMsg"></div>
|
||||
<ul class="nav nav-tabs" role="tablist" id="maintabs">
|
||||
<li class="active"><a data-toggle="tab" href="#general">{{ lang._('General Settings') }}</a></li>
|
||||
@@ -213,7 +216,16 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||
</ul>
|
||||
<div class="tab-content content-box tab-content">
|
||||
<div id="general" class="tab-pane fade in active">
|
||||
{{ partial("layout_partials/base_form",['fields':formGeneralSettings,'id':'frm_GeneralSettings','apply_btn_id':'btn_ApplyGeneralSettings'])}}
|
||||
{{ partial("layout_partials/base_form",['fields':formGeneralSettings,'id':'frm_GeneralSettings'])}}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped table-condensed table-responsive">
|
||||
<tr>
|
||||
<td>
|
||||
<button class="btn btn-primary" id="btnSaveGeneral" type="button"><b>{{ lang._('Save changes') }}</b> <i id="btnSaveGeneralProgress"></i></button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div id="host" class="tab-pane fade in">
|
||||
<table id="grid-host" class="table table-condensed table-hover table-striped table-responsive" data-editDialog="DialogEditHost">
|
||||
@@ -331,13 +343,13 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<!-- <div class="col-md-12">
|
||||
<hr/>
|
||||
<button class="btn btn-primary" id="btnConfigTest" type="button"><b>{{ lang._('Test Configuration') }}</b> <i id="btnConfigTestProgress"></i></button>
|
||||
<button class="btn btn-primary" id="btnReload" type="button"><b>{{ lang._('Reload Configuration') }}</b> <i id="btnReloadProgress"></i></button>
|
||||
<button class="btn btn-primary" id="btnApplyConfig" type="button"><b>{{ lang._('Apply Configuration') }}</b> <i id="btnApplyConfigProgress"></i></button>
|
||||
<br/>
|
||||
<br/>
|
||||
</div>
|
||||
-->
|
||||
</div>
|
||||
{# include dialogs #}
|
||||
{{ partial("layout_partials/base_dialog",['fields':formDialogEditHost, 'id':'DialogEditHost', 'label':'Edit Host'])}}
|
||||
|
||||
@@ -29,55 +29,55 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||
<script type="text/javascript">
|
||||
$( document ).ready(function() {
|
||||
updateServiceControlUI('relayd');
|
||||
// get status and build the table body
|
||||
// get status and build the table body
|
||||
$('#btnRefresh').unbind('click').click(function() {
|
||||
ajaxCall(url = "/api/relayd/status/sum", sendData={}, callback = function(result, status) {
|
||||
if (status == "success" && result.result === 'ok') {
|
||||
$('#tableStatus > tbody').empty();
|
||||
$('#tableStatus > tbody').attr('style', 'display:none;');
|
||||
/* create a table row for each host and combine
|
||||
virtualserver/table fields afterwards via rowspan */
|
||||
$.each(result.rows, function (vkey, virtualserver) {
|
||||
var vrowspan = 0;
|
||||
var trowspan = [];
|
||||
var html = '<tr class="vrow"><td id="virtualServer' + vkey + '">';
|
||||
html += getControlButtons(virtualserver.status, virtualserver.id, virtualserver.type);
|
||||
html += virtualserver.name + ' (' + virtualserver.type + '): ' + virtualserver.status + '</td>';
|
||||
var tfirst = true;
|
||||
$.each(virtualserver.tables, function(tkey, table) {
|
||||
trowspan[tkey] = 0;
|
||||
if (tfirst == true) {
|
||||
tfirst = false;
|
||||
} else {
|
||||
html += '<tr>';
|
||||
}
|
||||
html += '<td id="table' + tkey + '">';
|
||||
html += getControlButtons(table.status, tkey, 'table');
|
||||
html += table.name + ' ' + table.status + '</td>';
|
||||
var hfirst = true;
|
||||
$('#tableStatus > tbody').empty();
|
||||
$('#tableStatus > tbody').attr('style', 'display:none;');
|
||||
/* create a table row for each host and combine
|
||||
virtualserver/table fields afterwards via rowspan */
|
||||
$.each(result.rows, function (vkey, virtualserver) {
|
||||
var vrowspan = 0;
|
||||
var trowspan = [];
|
||||
var html = '<tr class="vrow"><td id="virtualServer' + vkey + '">';
|
||||
html += getControlButtons(virtualserver.status, virtualserver.id, virtualserver.type);
|
||||
html += virtualserver.name + ' (' + virtualserver.type + '): ' + virtualserver.status + '</td>';
|
||||
var tfirst = true;
|
||||
$.each(virtualserver.tables, function(tkey, table) {
|
||||
trowspan[tkey] = 0;
|
||||
if (tfirst == true) {
|
||||
tfirst = false;
|
||||
} else {
|
||||
html += '<tr>';
|
||||
}
|
||||
html += '<td id="table' + tkey + '">';
|
||||
html += getControlButtons(table.status, tkey, 'table');
|
||||
html += table.name + ' ' + table.status + '</td>';
|
||||
var hfirst = true;
|
||||
$.each(table.hosts, function(hkey, host) {
|
||||
if (hfirst == true) {
|
||||
hfirst = false;
|
||||
if (hfirst == true) {
|
||||
hfirst = false;
|
||||
} else {
|
||||
html += '<tr>';
|
||||
html += '<tr>';
|
||||
}
|
||||
vrowspan++;
|
||||
trowspan[tkey]++;
|
||||
html += '<td>';
|
||||
html += getControlButtons(host.status, hkey, 'host');
|
||||
html += host.name + ' ' + host.status + '</td></tr>';
|
||||
vrowspan++;
|
||||
trowspan[tkey]++;
|
||||
html += '<td>';
|
||||
html += getControlButtons(host.status, hkey, 'host');
|
||||
html += host.name + ' ' + host.status + '</td></tr>';
|
||||
});
|
||||
// dummy host for disabled tables
|
||||
if (hfirst == true) {
|
||||
vrowspan++;
|
||||
html += '<td></td>';
|
||||
vrowspan++;
|
||||
html += '<td></td>';
|
||||
}
|
||||
});
|
||||
|
||||
$('#tableStatus > tbody').append(html);
|
||||
$('#virtualServer' + vkey).attr('rowspan', vrowspan);
|
||||
$.each(trowspan, function(tid, trowspan) {
|
||||
$('#table' + tid).attr('rowspan', trowspan);
|
||||
$('#table' + tid).attr('rowspan', trowspan);
|
||||
});
|
||||
$('#tableStatus > tbody > tr.vrow > td').css('border-top', '2px solid #ddd');
|
||||
$('#tableStatus > tbody').fadeIn();
|
||||
@@ -85,10 +85,11 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||
} else {
|
||||
$("#tableStatus").html("<tr><td><br/>{{ lang._('The status could not be fetched. Is Relayd running?') }}</td></tr>");
|
||||
}
|
||||
$('#btnRefresh').blur();
|
||||
});
|
||||
});
|
||||
|
||||
// initial load
|
||||
// initial load
|
||||
$("#btnRefresh").click();
|
||||
|
||||
});
|
||||
@@ -143,7 +144,7 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||
<tr>
|
||||
<td>
|
||||
<div class="pull-right">
|
||||
<button class="btn btn-primary" id="btnRefresh" type="button"><b>{{ lang._('Refresh') }}</b> <span class="fa fa-refresh"> </span></button>
|
||||
<button class="btn btn-primary" id="btnRefresh" type="button"><b>{{ lang._('Refresh') }}</b> <span id="btnRefreshProgress" class="fa fa-refresh"> </span></button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -65,7 +65,7 @@ class RelaydTest extends \PHPUnit\Framework\TestCase
|
||||
$response = self::$setRelayd->getAction('general');
|
||||
$testConfig['general'] = $response['relayd']['general'];
|
||||
|
||||
$this->assertEquals($response['result'], 'ok');
|
||||
$this->assertEquals($response['status'], 'ok');
|
||||
$this->assertArrayHasKey('enabled', $response['relayd']['general']);
|
||||
|
||||
return $testConfig;
|
||||
@@ -100,7 +100,7 @@ class RelaydTest extends \PHPUnit\Framework\TestCase
|
||||
foreach (array_reverse($this->nodeTypes) as $nodeType) {
|
||||
foreach ($testConfig[$nodeType] as $node) {
|
||||
$response = self::$setRelayd->delAction($nodeType, $node['uuid']);
|
||||
$this->assertEquals($response['result'], 'ok');
|
||||
$this->assertEquals($response['status'], 'ok');
|
||||
}
|
||||
}
|
||||
// need an assertion here to succeed this test on empty config
|
||||
@@ -128,6 +128,18 @@ class RelaydTest extends \PHPUnit\Framework\TestCase
|
||||
$this->assertEquals($response['status'], 'ok');
|
||||
}
|
||||
|
||||
/**
|
||||
* test dirtyAction
|
||||
* @depends testSetGeneral
|
||||
*/
|
||||
public function testDirtyAction()
|
||||
{
|
||||
$this->assertInstanceOf('\OPNsense\Relayd\Api\SettingsController', self::$setRelayd);
|
||||
$response = self::$setRelayd->dirtyAction();
|
||||
$this->assertEquals($response['status'], 'ok');
|
||||
$this->assertEquals($response['relayd']['dirty'], true);
|
||||
}
|
||||
|
||||
/**
|
||||
* test setAction for hosts
|
||||
* @depends testReset
|
||||
@@ -156,7 +168,7 @@ class RelaydTest extends \PHPUnit\Framework\TestCase
|
||||
// create host for ServiceControllerTest
|
||||
$_POST = array('relayd' => ['host' => ['name' => 'testHost', 'address' => '127.0.0.1']]);
|
||||
$response = self::$setRelayd->setAction('host');
|
||||
$this->assertEquals($response['result'], 'ok');
|
||||
$this->assertEquals($response['status'], 'ok');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -241,7 +253,7 @@ class RelaydTest extends \PHPUnit\Framework\TestCase
|
||||
'code' => '403',
|
||||
'ssl' => '1']]);
|
||||
$response = self::$setRelayd->setAction('tablecheck');
|
||||
$this->assertEquals($response['result'], 'ok');
|
||||
$this->assertEquals($response['status'], 'ok');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -267,7 +279,7 @@ class RelaydTest extends \PHPUnit\Framework\TestCase
|
||||
'protocol' => ['name' => 'testProtocol', 'type' => 'tcp', 'options' => 'nodelay, socket buffer 65536']
|
||||
]);
|
||||
$response = self::$setRelayd->setAction('protocol');
|
||||
$this->assertEquals($response['result'], 'ok');
|
||||
$this->assertEquals($response['status'], 'ok');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -360,7 +372,7 @@ class RelaydTest extends \PHPUnit\Framework\TestCase
|
||||
'protocol' => $protocolUuid
|
||||
]]);
|
||||
$response = self::$setRelayd->setAction('virtualserver');
|
||||
$this->assertEquals($response['result'], 'ok');
|
||||
$this->assertEquals($response['status'], 'ok');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -377,6 +389,10 @@ class RelaydTest extends \PHPUnit\Framework\TestCase
|
||||
$svcRelayd = new \OPNsense\Relayd\Api\ServiceController;
|
||||
$_SERVER['REQUEST_METHOD'] = 'POST';
|
||||
|
||||
// stop possibly running service
|
||||
$response = $svcRelayd->stopAction();
|
||||
$this->assertEquals($response['response'], "OK\n\n");
|
||||
|
||||
// generate template and test it by Relayd
|
||||
$response = $svcRelayd->configtestAction();
|
||||
$this->assertEquals($response['template'], 'OK');
|
||||
@@ -404,10 +420,6 @@ class RelaydTest extends \PHPUnit\Framework\TestCase
|
||||
$response = $svcRelayd->reconfigureAction();
|
||||
$this->assertEquals($response['status'], 'ok');
|
||||
|
||||
// start
|
||||
$response = $svcRelayd->startAction();
|
||||
$this->assertEquals($response['response'], "OK\n\n");
|
||||
|
||||
// status
|
||||
$response = $svcRelayd->statusAction();
|
||||
$this->assertEquals($response['status'], 'running');
|
||||
|
||||
@@ -1,29 +1,38 @@
|
||||
[start]
|
||||
command:/usr/local/etc/rc.d/relayd start
|
||||
command:/usr/local/etc/rc.d/os-relayd start
|
||||
type:script
|
||||
message:starting relayd
|
||||
|
||||
[stop]
|
||||
command:/usr/local/etc/rc.d/relayd stop
|
||||
command:/usr/local/etc/rc.d/os-relayd stop
|
||||
type:script
|
||||
message:stopping relayd
|
||||
|
||||
[status]
|
||||
command:/usr/local/etc/rc.d/relayd status; exit 0
|
||||
command:/usr/local/etc/rc.d/os-relayd status; exit 0
|
||||
type:script_output
|
||||
message:get relayd status
|
||||
|
||||
[restart]
|
||||
command:/usr/local/etc/rc.d/relayd restart
|
||||
command:/usr/local/etc/rc.d/os-relayd restart
|
||||
type:script
|
||||
message:restarting relayd
|
||||
|
||||
[reload]
|
||||
command:/usr/local/etc/rc.d/relayd reload
|
||||
command:/usr/local/etc/rc.d/os-relayd reload
|
||||
type:script
|
||||
message:reload relayd configuration
|
||||
|
||||
[configtest]
|
||||
command: /usr/local/sbin/relayd -n 2>&1 || exit 0
|
||||
command: /usr/local/sbin/relayd -n 2>&1; exit 0
|
||||
type:script_output
|
||||
message:testing relayd configuration
|
||||
|
||||
[summary]
|
||||
command: /usr/local/sbin/relayctl show summary; exit 0
|
||||
type:script_output
|
||||
|
||||
[toggle]
|
||||
command: /usr/local/sbin/relayctl
|
||||
parameters:%s %s %s
|
||||
type:script_output
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
relayd.conf:/usr/local/etc/relayd.conf
|
||||
rc.conf.d:/etc/rc.conf.d/relayd
|
||||
rc.conf.d:/etc/rc.conf.d/osrelayd
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# DO NOT EDIT THIS FILE -- OPNsense auto-generated file
|
||||
{% if helpers.exists('OPNsense.relayd.general.enabled') and OPNsense.relayd.general.enabled|default("0") == "1" %}
|
||||
relayd_enable="YES"
|
||||
osrelayd_enable="YES"
|
||||
{% else %}
|
||||
relayd_enable="NO"
|
||||
osrelayd_enable="NO"
|
||||
{% endif %}
|
||||
|
||||
Reference in New Issue
Block a user