diff options
author | Mika Havela <mika.havela@gmail.com> | 2009-07-08 09:50:09 +0000 |
---|---|---|
committer | Mika Havela <mika.havela@gmail.com> | 2009-07-08 09:50:09 +0000 |
commit | c94678d57e8b0e52587b309b9b129805434044ad (patch) | |
tree | b3fc99ad9d6dac12180a97450cf0dd9d8feab75d | |
parent | edeb226c2a079510abd99e86fd9a6304de0e6246 (diff) | |
download | acf-rrdtool-c94678d57e8b0e52587b309b9b129805434044ad.tar.bz2 acf-rrdtool-c94678d57e8b0e52587b309b9b129805434044ad.tar.xz |
List available graphs and display selected graph
Still missing functionallity to create the needed table that holds information on how to create the graphics.
-rw-r--r-- | rrdtool-controller.lua | 4 | ||||
-rw-r--r-- | rrdtool-model.lua | 42 | ||||
-rw-r--r-- | rrdtool.roles | 4 |
3 files changed, 48 insertions, 2 deletions
diff --git a/rrdtool-controller.lua b/rrdtool-controller.lua index e4dfcf1..2ea79b0 100644 --- a/rrdtool-controller.lua +++ b/rrdtool-controller.lua @@ -45,3 +45,7 @@ end function listgraphs(self) return self.model.list_graphs() end + +function viewgraph(self) + return self.model.view_graph(self, self.clientdata.group, self.clientdata.id) +end diff --git a/rrdtool-model.lua b/rrdtool-model.lua index fa47e02..e0143ee 100644 --- a/rrdtool-model.lua +++ b/rrdtool-model.lua @@ -191,3 +191,45 @@ If you specify path, it should be " .. tostring(databases) .."/" return configfile end + +function list_graphs() + local graphs = {} + + --TODO: Read config-files and create a table of it. + + return graphs +end + +function view_graph(self, graph_grp, graph_id) + local general_settings = { + filenameextention=".png", + graph_width="800", + } + + local graphs = list_graphs() + local settings = graphs[tostring(graph_grp)]["value"][tonumber(self.clientdata.id)] + local filename = "/"..tostring(graph_grp).."_"..tostring(graph_id) .. + (settings.filenameextention or ".png") + settings.value = tostring(filename) + + --TODO: Loop the defaultsettings and put it in the settings table if there is missing some information + + local cmd = "/usr/bin/rrdtool graph /usr/share/acf/www" .. tostring(filename) .. " " + for k,v in pairs(settings.option) do + if (v) and (#v > 0) then + cmd = cmd .. "--".. format.escapespecialcharacters(k) .. " " .. + format.escapespecialcharacters(v) .. " " + end + end + cmd = cmd .. tostring(settings.variables) + settings.cmd_query = cmd + local f = io.popen( tostring(cmd) .. " 2>&1" ) + settings.cmd_result = f:read("*a") or "" + f:close() + + -- Display the image in it's original size (if possible) + settings.graph = {} + settings.graph.width,settings.graph.height = string.match(settings.cmd_result, "^(%d+)x(%d+)") + + return settings +end diff --git a/rrdtool.roles b/rrdtool.roles index fc39fff..a7de826 100644 --- a/rrdtool.roles +++ b/rrdtool.roles @@ -1,4 +1,4 @@ -USER=rrdtool:status,rrdtool:welcome,rrdtool:startstop,rrdtool:rrdinfo,rrdtool:listgraphs +USER=rrdtool:status,rrdtool:welcome,rrdtool:startstop,rrdtool:rrdinfo,rrdtool:listgraphs,rrdtool:viewgraph EDITOR=rrdtool:config,rrdtool:listrrd EXPERT=rrdtool:expert -ADMIN=rrdtool:status,rrdtool:welcome,rrdtool:startstop,rrdtool:config,rrdtool:listrrd,rrdtool:expert,rrdtool:delete,rrdtool:createrrd,rrdtool:rrdinfo,rrdtool:listgraphs +ADMIN=rrdtool:status,rrdtool:welcome,rrdtool:startstop,rrdtool:config,rrdtool:listrrd,rrdtool:expert,rrdtool:delete,rrdtool:createrrd,rrdtool:rrdinfo,rrdtool:listgraphs,rrdtool:viewgraph |