* luci/app/statistics:
authorJo-Philipp Wich <jow@openwrt.org>
Wed, 29 Oct 2008 03:59:37 +0000 (03:59 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Wed, 29 Oct 2008 03:59:37 +0000 (03:59 +0000)
- build datatree from rrd directory structure, allows "virtual" plugins
- flush index cache on statistics reload
- whitespace cleanup in config generator

applications/luci-statistics/luasrc/statistics/datatree.lua
applications/luci-statistics/root/etc/init.d/luci_statistics
applications/luci-statistics/root/usr/bin/stat-genconfig

index 637fcf4..6a6cbd0 100644 (file)
@@ -7,7 +7,7 @@ Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at
 
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at
 
-        http://www.apache.org/licenses/LICENSE-2.0
+               http://www.apache.org/licenses/LICENSE-2.0
 
 $Id$
 
 
 $Id$
 
@@ -19,7 +19,7 @@ local util = require("luci.util")
 local sys  = require("luci.sys")
 local fs   = require("luci.fs")
 local uci  = require("luci.model.uci").cursor()
 local sys  = require("luci.sys")
 local fs   = require("luci.fs")
 local uci  = require("luci.model.uci").cursor()
-local sections = uci:get_all( "luci_statistics" )
+local sections = uci:get_all("luci_statistics")
 
 
 Instance = util.class()
 
 
 Instance = util.class()
@@ -59,13 +59,25 @@ function Instance._notzero( self, table )
 end
 
 function Instance._scan( self )
 end
 
 function Instance._scan( self )
-       local dir = fs.dir( self._libdir )
-       if not dir then
+       local dirs = fs.dir( self:_mkpath() )
+       if not dirs then
                return
        end
                return
        end
-       for i, plugin in ipairs( dir ) do
-               if plugin:match("%w+.so") then
-                       self._plugins[ plugin:gsub(".so", "") ] = { }
+
+--     for i, plugin in ipairs( dirs ) do
+--             if plugin:match("%w+.so") then
+--                     self._plugins[ plugin:gsub("%.so$", "") ] = { }
+--             end
+--     end
+
+       for _, dir in ipairs(dirs) do
+               if dir ~= "." and dir ~= ".." and
+                  fs.stat(self:_mkpath(dir)).type == "directory"
+               then
+                       local plugin = dir:gsub("%-.+$", "")
+                       if not self._plugins[plugin] then
+                               self._plugins[plugin] = { }
+                       end
                end
        end
 
                end
        end
 
index 55999a8..e4da1d5 100755 (executable)
@@ -17,6 +17,9 @@ start() {
                imagepath="$(uci get luci_statistics.rrdtool.image_path)"
                ln -s ${imagepath:-/tmp/rrdimg}/ /www/rrdimg
        fi
                imagepath="$(uci get luci_statistics.rrdtool.image_path)"
                ln -s ${imagepath:-/tmp/rrdimg}/ /www/rrdimg
        fi
+
+    ### flush LuCI index cache
+    test -f /var/luci-indexcache && rm /var/luci-indexcache
 }
 
 restart() {
 }
 
 restart() {
index b62005c..e179cdb 100755 (executable)
@@ -9,7 +9,7 @@ Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at
 
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at
 
-        http://www.apache.org/licenses/LICENSE-2.0
+               http://www.apache.org/licenses/LICENSE-2.0
 
 $Id$
 
 
 $Id$
 
@@ -96,15 +96,15 @@ function config_exec( c )
 
                                cmd = sections[s].cmdline
 
 
                                cmd = sections[s].cmdline
 
-                if cmd then
-                    cmd   = cmd:gsub("^%s+", ""):gsub("%s+$", "")
-                    user  = sections[s].cmduser  or "nobody"
-                    group = sections[s].cmdgroup
+                               if cmd then
+                                       cmd   = cmd:gsub("^%s+", ""):gsub("%s+$", "")
+                                       user  = sections[s].cmduser  or "nobody"
+                                       group = sections[s].cmdgroup
 
 
-                    str = str .. "\t" .. key .. ' "' ..
-                        user .. ( group and ":" .. group or "" ) .. '" "' ..
-                        cmd:gsub('%s+', '" "') .. '"\n'
-                end
+                                       str = str .. "\t" .. key .. ' "' ..
+                                               user .. ( group and ":" .. group or "" ) .. '" "' ..
+                                               cmd:gsub('%s+', '" "') .. '"\n'
+                               end
                        end
                end
        end
                        end
                end
        end
@@ -162,9 +162,9 @@ function config_network( c )
                                                str = str .. "\t" .. key .. " " .. host .. "\n"
                                        end
                                end
                                                str = str .. "\t" .. key .. " " .. host .. "\n"
                                        end
                                end
-                        end
-                end
-        end
+                                               end
+                               end
+               end
 
        return str .. _string( c["TimeToLive"], "TimeToLive" )
                   .. _string( c["CacheFlush"], "CacheFlush" )
 
        return str .. _string( c["TimeToLive"], "TimeToLive" )
                   .. _string( c["CacheFlush"], "CacheFlush" )