Rework LuCI build system
[project/luci.git] / applications / luci-statistics / luasrc / statistics / datatree.lua
diff --git a/applications/luci-statistics/luasrc/statistics/datatree.lua b/applications/luci-statistics/luasrc/statistics/datatree.lua
deleted file mode 100644 (file)
index 850b83a..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
---[[
-
-Luci statistics - rrd data tree builder
-(c) 2008 Freifunk Leipzig / Jo-Philipp Wich <xm@leipzig.freifunk.net>
-
-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
-
-               http://www.apache.org/licenses/LICENSE-2.0
-
-$Id$
-
-]]--
-
-module("luci.statistics.datatree", package.seeall)
-
-local util = require("luci.util")
-local sys  = require("luci.sys")
-local fs   = require("nixio.fs")
-local uci  = require("luci.model.uci").cursor()
-local sections = uci:get_all("luci_statistics")
-
-
-Instance = util.class()
-
-function Instance.__init__( self, host )
-       self._host    = host or sections.collectd.Hostname or sys.hostname()
-       self._libdir  = sections.collectd.PluginDir        or "/usr/lib/collectd"
-       self._rrddir  = sections.collectd_rrdtool.DataDir  or "/tmp/rrd"
-
-       self._libdir  = self._libdir:gsub("/$","")
-       self._rrddir  = self._rrddir:gsub("/$","")
-       self._plugins = { }
-
-       self:_scan()
-end
-
-function Instance._mkpath( self, plugin, pinstance )
-       local dir = self._rrddir .. "/" .. self._host
-
-       if type(plugin) == "string" and plugin:len() > 0 then
-               dir = dir .. "/" .. plugin
-
-               if type(pinstance) == "string" and pinstance:len() > 0 then
-                       dir = dir .. "-" .. pinstance
-               end
-       end
-
-       return dir
-end
-
-function Instance._ls( self, ... )
-       local ditr = fs.dir(self:_mkpath(...))
-       if ditr then
-               local dirs = { }
-               while true do
-                       local d = ditr()
-                       if not d then break end
-                       dirs[#dirs+1] = d
-               end
-               return dirs
-       end
-end
-
-function Instance._notzero( self, table )
-       for k in pairs(table) do
-               return true
-       end
-
-       return false
-end
-
-function Instance._scan( self )
-       local dirs = self:_ls()
-       if not dirs then
-               return
-       end
-
---     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 == "dir"
-               then
-                       local plugin = dir:gsub("%-.+$", "")
-                       if not self._plugins[plugin] then
-                               self._plugins[plugin] = { }
-                       end
-               end
-       end
-
-       for plugin, instances in pairs( self._plugins ) do
-
-               local dirs = self:_ls()
-
-               if type(dirs) == "table" then
-                       for i, dir in ipairs(dirs) do
-                               if dir:find( plugin .. "%-" ) or dir == plugin then
-                                       local instance = ""
-
-                                       if dir ~= plugin then
-                                               instance = dir:gsub( plugin .. "%-", "", 1 )
-                                       end
-
-                                       instances[instance] = { }
-                               end
-                       end
-               end
-
-               for instance, data_instances in pairs( instances ) do
-
-                       dirs = self:_ls(plugin, instance)
-
-                       if type(dirs) == "table" then
-                               for i, file in ipairs(dirs) do
-                                       if file:find("%.rrd") then
-                                               file = file:gsub("%.rrd","")
-
-                                               local data_type
-                                               local data_instance
-
-                                               if file:find("%-") then
-                                                       data_type     = file:gsub( "%-.+","" )
-                                                       data_instance = file:gsub( "[^%-]-%-", "", 1 )
-                                               else
-                                                       data_type     = file
-                                                       data_instance = ""
-                                               end
-
-                                               if not data_instances[data_type] then
-                                                       data_instances[data_type] = { data_instance }
-                                               else
-                                                       table.insert( data_instances[data_type], data_instance )
-                                               end
-                                       end
-                               end
-                       end
-               end
-       end
-end
-
-
-function Instance.plugins( self )
-       local rv = { }
-
-       for plugin, val in pairs( self._plugins ) do
-               if self:_notzero( val ) then
-                       table.insert( rv, plugin )
-               end
-       end
-
-       return rv
-end
-
-function Instance.plugin_instances( self, plugin )
-       local rv = { }
-
-       for instance, val in pairs( self._plugins[plugin] ) do
-               table.insert( rv, instance )
-       end
-
-       return rv
-end
-
-function Instance.data_types( self, plugin, instance )
-       local rv = { }
-       local p  = self._plugins[plugin]
-
-       if type(p) == "table" and type(p[instance]) == "table" then
-               for type, val in pairs(p[instance]) do
-                       table.insert( rv, type )
-               end
-       end
-
-       return rv
-end
-
-function Instance.data_instances( self, plugin, instance, dtype )
-       local rv = { }
-       local p  = self._plugins[plugin]
-
-       if type(p) == "table" and type(p[instance]) == "table" and type(p[instance][dtype]) == "table" then
-               for i, instance in ipairs(p[instance][dtype]) do
-                       table.insert( rv, instance )
-               end
-       end
-
-       return rv
-end
-
-function Instance.host_instances( self )
-       local hosts_path = fs.glob(self._rrddir..'/*')
-       local hosts = { }
-
-       if hosts_path then
-               local path
-               for path in hosts_path do
-                       hosts[#hosts+1] = fs.basename(path)
-               end
-       end
-
-       return hosts
-end
-