summaryrefslogtreecommitdiffstats
path: root/quagga-model.lua
diff options
context:
space:
mode:
Diffstat (limited to 'quagga-model.lua')
-rw-r--r--quagga-model.lua49
1 files changed, 15 insertions, 34 deletions
diff --git a/quagga-model.lua b/quagga-model.lua
index 279a1a2..fa88a04 100644
--- a/quagga-model.lua
+++ b/quagga-model.lua
@@ -1,5 +1,6 @@
module(..., package.seeall)
+-- Load libraries
require("fs")
require("procps")
require("getopts")
@@ -7,28 +8,19 @@ require("format")
require("posix")
require("daemoncontrol")
require("validator")
+require("processinfo")
+require("socket")
+-- Set variables
local configfile = "/etc/quagga/bgpd.conf"
local processname = "bgpd"
local packagename = "quagga"
local baseurl = "/etc/quagga/"
-
local descr = {
}
-local function get_version()
- local cmd_output_result, cmd_output_error
- local cmd = "/sbin/apk_version -vs " .. packagename .." 2>/dev/null"
- local f = io.popen( cmd )
- local cmdresult = f:read("*l")
- if (cmdresult) and (#cmdresult > 0) then
- cmd_output_result = string.match(cmdresult,"^%S*") or "Unknown"
- else
- cmd_output_error = "Program not installed"
- end
- f:close()
- return cmd_output_result,cmd_output_error
-end
+-- ################################################################################
+-- LOCAL FUNCTIONS
local function get_routes()
local cmd_output_result, cmd_output_error
@@ -51,24 +43,11 @@ local function get_bgpinfo()
local cmd = "/usr/sbin/bgpd --version 2>/dev/null"
local f = io.popen( cmd )
local cmd_output_result = f:read("*a")
+ -- bgpdport=179
return cmd_output_result,cmd_output_error
end
-local function autostarts()
- local cmd_output_result, cmd_output_error
- local cmd = "/sbin/rc_status | egrep '^S' | egrep '" .. processname .."' 2>/dev/null"
- local f = io.popen( cmd )
- local cmdresult = f:read("*a")
- if (cmdresult) and (#cmdresult > 0) then
- cmd_output_result = "Process will autostart at next boot (at sequence '" .. string.match(cmdresult,"^%a+(%d%d)") .. "')"
- else
- cmd_output_error = "Not programmed to autostart"
- end
- f:close()
- return cmd_output_result,cmd_output_error
-end
-
-function process_status_text(procname)
+local function process_status_text(procname)
local t = procps.pidof(procname)
if (t) and (#t > 0) then
return "Enabled"
@@ -85,13 +64,13 @@ function startstop_service ( self, action )
local cmdresult,cmdmessage,cmderror,cmdaction = daemoncontrol.daemoncontrol(processname, cmd)
action.descr=cmdmessage
action.errtxt=cmderror
- -- Reporting back (true|false, the original acition)
return cmdresult,action
end
function getstatus()
local status = {}
- local value, errtxt = get_version()
+
+ local value, errtxt = processinfo.package_version(packagename)
status.version = cfe({ name = "version",
label="Program version",
value=value,
@@ -102,28 +81,29 @@ function getstatus()
label="Program status",
value=process_status_text(processname),
})
- local autostart_sequense, autostart_errtxt = autostarts()
+
+ local autostart_sequense, autostart_errtxt = processinfo.process_botsequence(processname)
status.autostart = cfe({ name="autostart",
label="Autostart sequence",
value=autostart_sequense,
errtxt=autostart_errtxt,
})
- -- THIS IS WHERE WE PRESENT THE OUTPUT FROM TELNET
status.iproute = cfe({ name="iproute",
label="ip route",
value=get_iproute(),
})
+
status.routes = cfe({ name="routes",
label="route -n",
value=get_routes(),
})
+
status.bgpstats = cfe({ name="bgpstats",
label="BGP version",
value=get_bgpinfo(),
})
-
return status
end
@@ -149,6 +129,7 @@ function get_logfile ()
return file
end
+
function getconfig()
local config = {}
return config