root/luci/trunk/applications/luci-diag-devinfo/luasrc/controller/luci_diag/devinfo_common.lua

Revision 9507, 5.5 KB (checked in by jow, 7 months ago)

remove .i18n annotations from controller files

  • Property svn:keywords set to Id
Line 
1--[[
2
3Luci diag - Diagnostics controller module
4(c) 2009 Daniel Dickinson
5
6Licensed under the Apache License, Version 2.0 (the "License");
7you may not use this file except in compliance with the License.
8You may obtain a copy of the License at
9
10        http://www.apache.org/licenses/LICENSE-2.0
11
12]]--
13
14module("luci.controller.luci_diag.devinfo_common", package.seeall)
15
16require("luci.i18n")
17require("luci.util")
18require("luci.sys")
19require("luci.cbi")
20require("luci.model.uci")
21
22local translate = luci.i18n.translate
23local DummyValue = luci.cbi.DummyValue
24local SimpleSection = luci.cbi.SimpleSection
25
26function index()
27    return -- no-op
28end
29
30function run_processes(outnets, cmdfunc)
31   i = next(outnets, nil)
32   while (i) do
33      outnets[i]["output"] = luci.sys.exec(cmdfunc(outnets, i))
34      i = next(outnets, i)
35   end
36end
37
38function parse_output(devmap, outnets, haslink, type, mini, debug)
39   local curnet = next(outnets, nil)
40
41   while (curnet) do
42      local output = outnets[curnet]["output"]
43      local subnet = outnets[curnet]["subnet"]
44      local ports = outnets[curnet]["ports"]
45      local interface = outnets[curnet]["interface"]
46      local netdevs = {}
47      devlines = luci.util.split(output)
48      if not devlines then
49     devlines = {}
50     table.insert(devlines, output)
51      end
52       
53      local j = nil
54      j = next(devlines, j)
55     
56      local found_a_device = false
57     
58      while (j) do
59     if devlines[j] and ( devlines[j] ~= "" ) then
60        found_a_device = true
61        local devtable
62        local row = {}
63        devtable = luci.util.split(devlines[j], ' | ')
64        row["ip"] = devtable[1]
65        if (not mini) then
66           row["mac"] = devtable[2]
67        end
68        if ( devtable[4] == 'unknown' ) then 
69           row["vendor"] = devtable[3]
70        else
71           row["vendor"] = devtable[4]
72        end
73        row["type"] = devtable[5]
74        if (not mini) then
75           row["model"] = devtable[6]
76        end
77        if (haslink) then
78           row["config_page"] = devtable[7]
79        end
80       
81        if (debug) then
82           row["raw"] = devlines[j]
83        end
84        table.insert(netdevs, row)
85     end
86     j = next(devlines, j)
87      end
88      if not found_a_device then
89     local row = {}
90     row["ip"] = curnet
91     if (not mini) then
92        row["mac"] = ""
93     end
94     if (type == "smap") then
95        row["vendor"] = luci.i18n.translate("No SIP devices")
96     else
97        row["vendor"] = luci.i18n.translate("No devices detected")
98     end
99     row["type"] = luci.i18n.translate("check other networks")
100     if (not mini) then
101        row["model"] = ""
102     end
103     if (haslink) then
104        row["config_page"] = ""
105     end
106     if (debug) then
107        row["raw"] = output
108     end
109     table.insert(netdevs, row)
110      end   
111      local s
112      if (type == "smap") then
113     if (mini) then
114        s = devmap:section(luci.cbi.Table, netdevs, luci.i18n.translate("SIP devices discovered for") .. " " .. curnet)
115     else
116        local interfacestring = ""
117        if ( interface ~= "" ) then
118           interfacestring = ", " .. interface
119        end
120        s = devmap:section(luci.cbi.Table, netdevs, luci.i18n.translate("SIP devices discovered for") .. " " .. curnet .. " (" .. subnet .. ":" .. ports .. interfacestring .. ")")
121     end
122     s.template = "diag/smapsection"
123      else
124     if (mini) then
125        s = devmap:section(luci.cbi.Table, netdevs, luci.i18n.translate("Devices discovered for") .. " " .. curnet)
126     else
127        local interfacestring = ""
128        if ( interface ~= "" ) then
129           interfacestring = ", " .. interface
130        end
131        s = devmap:section(luci.cbi.Table, netdevs, luci.i18n.translate("Devices discovered for") .. " " .. curnet .. " (" .. subnet .. interfacestring .. ")")
132     end
133      end
134      s:option(DummyValue, "ip", translate("IP Address"))
135      if (not mini) then
136     s:option(DummyValue, "mac", translate("MAC Address"))
137      end
138      s:option(DummyValue, "vendor", translate("Vendor"))
139      s:option(DummyValue, "type", translate("Device Type"))
140      if (not mini) then
141     s:option(DummyValue, "model", translate("Model"))
142      end
143      if (haslink) then
144     s:option(DummyValue, "config_page", translate("Link to Device"))
145      end
146      if (debug) then
147     s:option(DummyValue, "raw", translate("Raw"))
148      end
149      curnet = next(outnets, curnet)
150   end
151end
152
153function get_network_device(interface)
154   local state = luci.model.uci.cursor_state()
155   state:load("network")
156   local dev
157   
158   return state:get("network", interface, "ifname")
159end
160
161
162function cbi_add_networks(field)
163    uci.cursor():foreach("network", "interface",
164        function (section)
165            if section[".name"] ~= "loopback" then
166                field:value(section[".name"])
167            end
168        end
169    )
170    field.titleref = luci.dispatcher.build_url("admin", "network", "network")
171end
172
173function config_devinfo_scan(map, scannet)
174   local o
175   o = scannet:option(luci.cbi.Flag, "enable", translate("Enable"))
176   o.optional = false
177   o.rmempty = false
178
179   o = scannet:option(luci.cbi.Value, "interface", translate("Interface"))
180   o.optional = false
181   luci.controller.luci_diag.devinfo_common.cbi_add_networks(o)
182   
183   local scansubnet
184   scansubnet = scannet:option(luci.cbi.Value, "subnet", translate("Subnet"))
185   scansubnet.optional = false
186   
187   o = scannet:option(luci.cbi.Value, "timeout", translate("Timeout"), translate("Time to wait for responses in seconds (default 10)"))
188   o.optional = true
189   
190   o = scannet:option(luci.cbi.Value, "repeat_count", translate("Repeat Count"), translate("Number of times to send requests (default 1)"))
191   o.optional = true
192   
193   o = scannet:option(luci.cbi.Value, "sleepreq", translate("Sleep Between Requests"), translate("Milliseconds to sleep between requests (default 100)"))
194   o.optional = true
195end
Note: See TracBrowser for help on using the browser.