summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorroot <root@trask19.(none)>2009-06-04 15:00:46 +0000
committerroot <root@trask19.(none)>2009-06-04 15:00:46 +0000
commit38be13224a35c42f11267a4c81220fb6a5f04adb (patch)
tree86dcf183246981697d9bc6cad89f1d6451e29d67
parent9509dd4d07458af65e03b3487a11dff2bb053976 (diff)
downloadacf-core-38be13224a35c42f11267a4c81220fb6a5f04adb.tar.bz2
acf-core-38be13224a35c42f11267a4c81220fb6a5f04adb.tar.xz
Changed status to use openrc status, changed startstop to enable all actions regardless of status.
-rw-r--r--app/startstop-html.lsp14
-rw-r--r--lib/controllerfunctions.lua7
-rw-r--r--lib/modelfunctions.lua27
-rw-r--r--lib/processinfo.lua11
4 files changed, 26 insertions, 33 deletions
diff --git a/app/startstop-html.lsp b/app/startstop-html.lsp
index 924f14d..c98208b 100644
--- a/app/startstop-html.lsp
+++ b/app/startstop-html.lsp
@@ -1,12 +1,5 @@
<% local data, viewlibrary, page_info = ... %>
-<% local reverseactions = {}
-data.value.actions = data.value.actions or {}
-local actions = data.value.actions.value or {"start", "stop", "restart"}
-for i,act in ipairs(actions) do
- reverseactions[act] = i
-end %>
-
<H1>Management</H1>
<% if data.value.result then %>
@@ -21,10 +14,9 @@ end %>
<form action="<%= html.html_escape(page_info.script .. page_info.prefix .. page_info.controller .. "/" .. page_info.action) %>" method="POST">
<DT>Program control-panel</DT>
<DD>
-<% if reverseactions.start then %><input class="submit" type="submit" name="action" value="Start" <% if data.value.status.value== "Running" then io.write("disabled") end %>><% end %>
-<% if reverseactions.stop then %><input class="submit" type="submit" name="action" value="Stop" <% if data.value.status.value== "Stopped" then io.write("disabled") end %>><% end %>
-<% if reverseactions.restart then %><input class="submit" type="submit" name="action" value="Restart" <% if data.value.status.value== "Stopped" then io.write("disabled") end %>><% end %>
-<% if reverseactions.reload then %><input class="submit" type="submit" name="action" value="Reload" <% if data.value.status.value== "Stopped" then io.write("disabled") end %>><% end %>
+<% for i,act in ipairs(data.value.actions.value) do %>
+ <input class="submit" type="submit" name="action" value="<%= act %>">
+<% end %>
</DD>
</form>
</DL>
diff --git a/lib/controllerfunctions.lua b/lib/controllerfunctions.lua
index dbdfd19..ef910d2 100644
--- a/lib/controllerfunctions.lua
+++ b/lib/controllerfunctions.lua
@@ -77,14 +77,9 @@ function handle_form(self, getFunction, setFunction, clientdata, option, label,
return form
end
-function handle_startstop(self, startstopfunction, getstatusfunction, clientdata)
+function handle_startstop(self, startstopfunction, clientdata)
local result = startstopfunction(clientdata.action)
result.value.result = self:redirect_to_referrer(result.value.result)
-
- local status = getstatusfunction()
- if status.value.status then status = status.value.status end
- result.value.status = status
-
return result
end
diff --git a/lib/modelfunctions.lua b/lib/modelfunctions.lua
index 1314b42..70f1412 100644
--- a/lib/modelfunctions.lua
+++ b/lib/modelfunctions.lua
@@ -7,22 +7,33 @@ require("processinfo")
function getenabled(processname)
local result = cfe({ label = "Program status", name=processname })
- local t = processinfo.pidof(processname)
- if (t) and (#t > 0) then
- result.value = "Running"
+ result.value, result.errtxt = processinfo.daemoncontrol(processname, "status")
+ if string.find(result.value, ": not found") then
+ result.value = ""
+ result.errtxt = "Program not installed"
else
- result.value = "Stopped"
+ result.value = string.gsub(result.value, "* status: ", "")
+ result.value = string.gsub(result.value, "^%l", string.upper)
end
return result
end
function startstop_service(servicename, action, actions)
- -- action is validated against actions in daemoncontrol
local result = {}
- result.actions = cfe({ type="list", value=actions or {"start", "stop", "restart"}, label="Start/Stop actions" })
+ actions = actions or {"Start", "Stop", "Restart"}
+ result.actions = cfe({ type="list", value=actions, label="Start/Stop actions" })
+
if action then
- local cmdmessage,cmderror = processinfo.daemoncontrol(servicename, action, result.actions.value)
- result.result = cfe({ value=cmdmessage or "", errtxt=cmderror, label="Start/Stop result" })
+ local reverseactions = {}
+ for i,act in ipairs(actions) do reverseactions[string.lower(act)] = i end
+ result.result = cfe({ label="Start/Stop result" })
+ if reverseactions[string.lower(action)] then
+ local cmdresult, errtxt = processinfo.daemoncontrol(servicename, action)
+ result.result.value = cmdresult
+ result.result.errtxt = errtxt
+ else
+ result.result.errtxt = "Unknown command!"
+ end
end
return cfe({ type="group", value=result, label="Start/Stop result" })
end
diff --git a/lib/processinfo.lua b/lib/processinfo.lua
index edf5ab6..b75f55f 100644
--- a/lib/processinfo.lua
+++ b/lib/processinfo.lua
@@ -106,16 +106,13 @@ function delete_runlevels(servicename, runlevels)
return cmdresult,cmderrors
end
-function daemoncontrol (process, action, actions)
- actions = actions or {"start", "stop", "restart"}
- local reverseactions = {}
- for i,act in ipairs(actions) do reverseactions[string.lower(act)] = i end
+function daemoncontrol (process, action)
local cmdresult = ""
local cmderrors
if not process then
cmderrors = "Invalid service name"
- elseif reverseactions[string.lower(action)] then
+ else
local file = io.popen( "PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin /etc/init.d/" ..
format.escapespecialcharacters(process) .. " " .. format.escapespecialcharacters(string.lower(action)) .. " 2>&1" )
if file ~= nil then
@@ -123,10 +120,8 @@ function daemoncontrol (process, action, actions)
file:close()
end
posix.sleep(2) -- Wait for the process to start|stop
- else
- cmderrors = "Unknown command!"
end
- return cmdresult,cmderrors,actions
+ return cmdresult,cmderrors
end
-- the following methods are available: