module(..., package.seeall) -- Load libraries require("modelfunctions") --require("fs") --require("format") --require("posix") --require("validator") -- Set variables local configfile = "/etc/quagga/zebra.conf" local processname = "zebra" local packagename = "quagga" local bgpconfigfile = "/etc/quagga/bgpd.conf" local bgpprocessname = "bgpd" -- ################################################################################ -- LOCAL FUNCTIONS --[[ local function get_routes() local cmd_output_result, cmd_output_error local cmd = "/sbin/route -n 2>/dev/null" local f = io.popen( cmd ) local cmd_output_result = f:read("*a") return cmd_output_result,cmd_output_error end local function get_iproute() local cmd_output_result, cmd_output_error local cmd = "/bin/ip route 2>/dev/null" local f = io.popen( cmd ) local cmd_output_result = f:read("*a") return cmd_output_result,cmd_output_error end local function get_bgpinfo() local cmd_output_result, cmd_output_error 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 process_status_text(procname) local t = procps.pidof(procname) if (t) and (#t > 0) then return "Enabled" else return "Disabled" end end --]] -- ################################################################################ -- PUBLIC FUNCTIONS function startstop_service(action) return modelfunctions.startstop_service(processname, action) end function getstatus() return modelfunctions.getstatus(processname, packagename, "Quaga Status") end function getconfigfile() return modelfunctions.getfiledetails(configfile) end function setconfigfile(filedetails) filedetails.value.filename.value = configfile return modelfunctions.setfiledetails(filedetails) end function bgpstartstop_service(action) return modelfunctions.startstop_service(bgpprocessname, action) end function getbgpstatus() return modelfunctions.getstatus(bgpprocessname, packagename, "BGP Status") --[[ 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 --[[ function getconfig() local config = {} return config end --]] function getbgpconfigfile() return modelfunctions.getfiledetails(bgpconfigfile) end function setbgpconfigfile(filedetails) filedetails.value.filename.value = bgpconfigfile return modelfunctions.setfiledetails(filedetails) end