1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
module(..., package.seeall)
local list_redir = function (self)
self.conf.action = "status"
self.conf.type = "redir"
error (self.conf)
end
mvc = {}
mvc.on_load = function(self, parent)
if (self.worker[self.conf.action] == nil ) or ( self.conf.action == "init" ) then
self.worker[self.conf.action] = list_redir(self)
end
end
function status(self)
return { status=self.model.getstatus() }
end
function config(self)
local cmdresult = {}
local cmderrors = {}
if ( self.clientdata.cmddaemon) then
startstop = self.model:startstop_service( self.clientdata.cmddaemon )
end
if ( self.clientdata.cmdsave) then
local variables="-O -l -S -s -b -L -R" -- Advanced-config options
--local variables="-R" -- Guided-config options
for var in string.gmatch(variables, "%S+") do
-- Send nil instead of "" causes the parameter to be removed/deleted/empty/unset
if (self.clientdata[var] == "") then self.clientdata[var] = nil end
cmdresult[var],cmderrors[var] = self.model:setconfigs("SYSLOGD_OPTS",var,self.clientdata[var])
end
end
local status = self.model.getstatus()
local config, errors = self.model.getconfig()
local url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller
local cmderrors_str = ""
for k,v in pairs(cmderrors) do
if (type(v) ~= "table") then
cmderrors_str = v.. "\n" .. cmderrors_str
else
for kk,vv in pairs(v) do
cmderrors_str = tostring(vv) .. "\n" .. tostring(cmderrors_str)
end
end
end
if (cmderrors_str == "") then cmderrors_str = nil end
return {
status = status,
startstop = startstop,
clientdata = self.clientdata,
cmdresult = cmdresult,
config = config,
errors = errors,
cmderrors = cmderrors_str,
url = url, }
end
function expert(self)
local modifications = self.clientdata.modifications or ""
if ( self.clientdata.cmdsave) then
modifications = self.model:update_filecontent(modifications)
end
if ( self.clientdata.cmddaemon) then
startstop = self.model:startstop_service( self.clientdata.cmddaemon )
end
local status = self.model.getstatus()
local url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller
return { file = self.model:get_filedetails(),
status = status,
startstop = startstop,
clientdata = self.clientdata,
url = url, }
end
|