From aff09ec85031849e3f626f19e776e42953310363 Mon Sep 17 00:00:00 2001 From: Ted Trask Date: Fri, 11 Jul 2008 20:46:35 +0000 Subject: Updated quagga to separate quagga functions from bgp functions. Implemented status, startstop, and expert. git-svn-id: svn://svn.alpinelinux.org/acf/quagga/trunk@1296 ab2d0c66-481e-0410-8bed-d214d4d58bed --- quagga-controller.lua | 118 +++++++------------------------------------------- 1 file changed, 15 insertions(+), 103 deletions(-) (limited to 'quagga-controller.lua') diff --git a/quagga-controller.lua b/quagga-controller.lua index 728377e..e2bb4b3 100644 --- a/quagga-controller.lua +++ b/quagga-controller.lua @@ -1,118 +1,30 @@ module(..., package.seeall) -- Load libraries -require("format") - --- Set variables -local newrecordtxt = "[New]" - --- ################################################################################ --- LOCAL FUNCTIONS - -local function displaycmdmanagement(pidofstatus) - -- Add a management buttons - local management = {} - management.start = cfe({ name="cmdmanagement", - label="Program control-panel", - value="Start", - type="submit", - descr="When starting or restarting BGP, the web-page will freeze for some reason!", - }) - management.stop = cfe({ name="cmdmanagement", - label="Program control-panel", - value="Stop", - type="submit", - }) - management.restart = cfe({ name="cmdmanagement", - label="Program control-panel", - value="Restart", - type="submit", - }) - -- next CFE can be used to present the result of the previous action - management.actionresult = cfe({ name="actionresult", - label="Previous action result", - }) - - -- Disable management buttons based on if the process is running or not - if (pidofstatus) then - management.start.disabled = "yes" - else - management.stop.disabled = "yes" - management.restart.disabled = "yes" - end - - return management -end - --- ################################################################################ --- PUBLIC FUNCTIONS +require("controllerfunctions") default_action = "status" function status(self) - return { status=self.model.getstatus() } + return self.model.getstatus() end -function expert(self) - local modifications = self.clientdata.filecontent or "" - if ( self.clientdata.cmdsave ) then - modifications = self.model:update_filecontent(modifications) - end - local url = self.conf.script .. self.conf.prefix .. self.conf.controller - - -- Start/Stop/Restart process - local cmdmanagement, actionresult - if ( self.clientdata.cmdmanagement) then - cmdmanagement = cfe({ - name="cmdmanagement", - label="Previous action result", - action=cfe({ - name="cmdmanagement", - value=string.lower(self.clientdata.cmdmanagement), -- This row contains start/stop/restart (one of these commands) - }), - }) - actionresult, cmdmanagement = self.model:startstop_service( cmdmanagement.action ) - end - - local status=self.model.getstatus() - local file = self.model:get_filedetails() - - -- Add buttons - file.cmdsave = cfe ({ - name="cmdsave", - label="Apply settings", - value="Apply", - type="submit", - }) - if (self.clientdata.cmdsave) then - file.cmdsave.descr="* Changes has been saved!" - end +function startstop(self) + return controllerfunctions.handle_startstop(self, self.model.startstop_service, self.model.getstatus, self.clientdata) +end - -- Management buttons (Hide/show buttons - local pidofstatus - if (string.lower(status.status.value) == "enabled" ) then pidofstatus = true end - management = displaycmdmanagement(pidofstatus) - if (actionresult) then - management.actionresult.descr=cmdmanagement.descr - management.actionresult.errtxt=cmdmanagement.errtxt - end - - return ( { - status = status, - file = file, - modifications = modifications, - management = management, - url = url, } ) +function expert(self) + return controllerfunctions.handle_form(self, self.model.getconfigfile, self.model.setconfigfile, self.clientdata, "Save", "Edit Quagga Config", "Quagga Configuration Saved") end -function logfile(self) +function bgpstatus(self) + return self.model.getbgpstatus() +end - local status=self.model.getstatus() - local logfile = self.model:get_logfile() +function bgpstartstop(self) + return controllerfunctions.handle_startstop(self, self.model.bgpstartstop_service, self.model.getbgpstatus, self.clientdata) +end - return ({ - status = status, - logfile = logfile, - url = url, - }) +function bgpexpert(self) + return controllerfunctions.handle_form(self, self.model.getbgpconfigfile, self.model.setbgpconfigfile, self.clientdata, "Save", "Edit BGP Config", "BGP Configuration Saved") end -- cgit v1.2.3