modules/admin-full: Add swap info to admin_status page if swap is available, #533
authorManuel Munz <freifunk@somakoma.de>
Wed, 30 Jan 2013 13:36:20 +0000 (13:36 +0000)
committerManuel Munz <freifunk@somakoma.de>
Wed, 30 Jan 2013 13:36:20 +0000 (13:36 +0000)
libs/sys/luasrc/sys.lua
modules/admin-full/luasrc/view/admin_status/index.htm

index 18622da..6628524 100644 (file)
@@ -176,6 +176,9 @@ function sysinfo()
        local memfree = tonumber(meminfo:match("MemFree:%s*(%d+)"))
        local membuffers = tonumber(meminfo:match("Buffers:%s*(%d+)"))
        local bogomips = tonumber(cpuinfo:match("[Bb]ogo[Mm][Ii][Pp][Ss].-: ([^\n]+)")) or 0
        local memfree = tonumber(meminfo:match("MemFree:%s*(%d+)"))
        local membuffers = tonumber(meminfo:match("Buffers:%s*(%d+)"))
        local bogomips = tonumber(cpuinfo:match("[Bb]ogo[Mm][Ii][Pp][Ss].-: ([^\n]+)")) or 0
+       local swaptotal = tonumber(meminfo:match("SwapTotal:%s*(%d+)"))
+       local swapcached = tonumber(meminfo:match("SwapCached:%s*(%d+)"))
+       local swapfree = tonumber(meminfo:match("SwapFree:%s*(%d+)"))
 
        local system =
                cpuinfo:match("system type\t+: ([^\n]+)") or
 
        local system =
                cpuinfo:match("system type\t+: ([^\n]+)") or
@@ -190,7 +193,7 @@ function sysinfo()
                nixio.uname().machine or
                system
 
                nixio.uname().machine or
                system
 
-       return system, model, memtotal, memcached, membuffers, memfree, bogomips
+       return system, model, memtotal, memcached, membuffers, memfree, bogomips, swaptotal, swapcached, swapfree
 end
 
 --- Retrieves the output of the "logread" command.
 end
 
 --- Retrieves the output of the "logread" command.
index f8707c0..bb85517 100644 (file)
@@ -19,14 +19,17 @@ You may obtain a copy of the License at
        local has_dhcp = luci.fs.access("/etc/config/dhcp")
        local has_wifi = luci.fs.stat("/etc/config/wireless")
              has_wifi = has_wifi and has_wifi.size > 0
        local has_dhcp = luci.fs.access("/etc/config/dhcp")
        local has_wifi = luci.fs.stat("/etc/config/wireless")
              has_wifi = has_wifi and has_wifi.size > 0
+       local _, _, memtotal, memcached, membuffers, memfree, _, swaptotal, swapcached, swapfree = luci.sys.sysinfo()
+       local has_swap
+       if swaptotal > 0 then
+               has_swap = 1
+       end
 
        if luci.http.formvalue("status") == "1" then
                local ntm = require "luci.model.network".init()
                local wan = ntm:get_wannet()
                local wan6 = ntm:get_wan6net()
 
 
        if luci.http.formvalue("status") == "1" then
                local ntm = require "luci.model.network".init()
                local wan = ntm:get_wannet()
                local wan6 = ntm:get_wan6net()
 
-               local _, _, memtotal, memcached, membuffers, memfree = luci.sys.sysinfo()
-
                local conn_count = tonumber((
                        luci.sys.exec("wc -l /proc/net/nf_conntrack") or
                        luci.sys.exec("wc -l /proc/net/ip_conntrack") or
                local conn_count = tonumber((
                        luci.sys.exec("wc -l /proc/net/nf_conntrack") or
                        luci.sys.exec("wc -l /proc/net/ip_conntrack") or
@@ -45,6 +48,9 @@ You may obtain a copy of the License at
                        memcached  = memcached,
                        membuffers = membuffers,
                        memfree    = memfree,
                        memcached  = memcached,
                        membuffers = membuffers,
                        memfree    = memfree,
+                       swaptotal  = swaptotal,
+                       swapcached = swapcached,
+                       swapfree   = swapfree,
                        connmax    = conn_max,
                        conncount  = conn_count,
                        leases     = luci.tools.status.dhcp_leases(),
                        connmax    = conn_max,
                        conncount  = conn_count,
                        leases     = luci.tools.status.dhcp_leases(),
@@ -494,6 +500,22 @@ You may obtain a copy of the License at
                                        info.membuffers + " <%:kB%>", info.memtotal + " <%:kB%>"
                                );
 
                                        info.membuffers + " <%:kB%>", info.memtotal + " <%:kB%>"
                                );
 
+                       if (e = document.getElementById('swapcache'))
+                               e.innerHTML = progressbar(
+                                       info.swapcached + " <%:kB%>", info.swaptotal + " <%:kB%>"
+                               );
+
+                       if (e = document.getElementById('swaptotal'))
+                               e.innerHTML = progressbar(
+                                       (info.swapfree + info.swapcached) + " <%:kB%>",
+                                       info.swaptotal + " <%:kB%>"
+                               );
+
+                       if (e = document.getElementById('swapfree'))
+                               e.innerHTML = progressbar(
+                                       info.swapfree + " <%:kB%>", info.swaptotal + " <%:kB%>"
+                               );
+
                        if (e = document.getElementById('conns'))
                                e.innerHTML = progressbar(info.conncount, info.connmax);
 
                        if (e = document.getElementById('conns'))
                                e.innerHTML = progressbar(info.conncount, info.connmax);
 
@@ -531,6 +553,18 @@ You may obtain a copy of the License at
        </table>
 </fieldset>
 
        </table>
 </fieldset>
 
+<% if has_swap then %>
+<fieldset class="cbi-section">
+       <legend><%:Swap%></legend>
+
+       <table width="100%" cellspacing="10">
+               <tr><td width="33%"><%:Total Available%></td><td id="swaptotal">-</td></tr>
+               <tr><td width="33%"><%:Free%></td><td id="swapfree">-</td></tr>
+               <tr><td width="33%"><%:Cached%></td><td id="swapcache">-</td></tr>
+       </table>
+</fieldset>
+<% end %>
+
 <fieldset class="cbi-section">
        <legend><%:Network%></legend>
 
 <fieldset class="cbi-section">
        <legend><%:Network%></legend>