summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMika Havela <mika.havela@gmail.com>2009-07-08 09:50:09 +0000
committerMika Havela <mika.havela@gmail.com>2009-07-08 09:50:09 +0000
commitc94678d57e8b0e52587b309b9b129805434044ad (patch)
treeb3fc99ad9d6dac12180a97450cf0dd9d8feab75d
parentedeb226c2a079510abd99e86fd9a6304de0e6246 (diff)
downloadacf-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.lua4
-rw-r--r--rrdtool-model.lua42
-rw-r--r--rrdtool.roles4
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