statistics.html/gws.html: Show gwinfo version of gateways
This requires changes to the MySQL database! Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
This commit is contained in:
parent
0bdb90d020
commit
f26f01f73c
|
@ -13,6 +13,7 @@ mysql.execute("""
|
|||
`id` smallint(5) UNSIGNED NOT NULL,
|
||||
`name` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
|
||||
`stats_page` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,
|
||||
`version` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
|
||||
`last_contact` datetime NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
""")
|
||||
|
|
|
@ -16,17 +16,20 @@ def import_gw_data(mysql, gw_data):
|
|||
if "hostname" in gw_data and "netifs" in gw_data:
|
||||
time = utcnow().strftime('%Y-%m-%d %H:%M:%S')
|
||||
stats_page = gw_data.get("stats_page","")
|
||||
version = gw_data.get("version","")
|
||||
|
||||
# Make None if empty (gw_data.get() only checks for existing key)
|
||||
if not stats_page:
|
||||
stats_page = None
|
||||
if not version:
|
||||
version = None
|
||||
newid = mysql.findone("SELECT id FROM gw WHERE name = %s LIMIT 1",(gw_data["hostname"],),"id")
|
||||
if newid:
|
||||
mysql.execute("""
|
||||
UPDATE gw
|
||||
SET stats_page = %s, last_contact = %s
|
||||
SET stats_page = %s, version = %s, last_contact = %s
|
||||
WHERE id = %s
|
||||
""",(stats_page,time,newid,))
|
||||
""",(stats_page,version,time,newid,))
|
||||
mysql.execute("""
|
||||
UPDATE gw_netif
|
||||
SET ipv4 = NULL, ipv6 = NULL, dhcpstart = NULL, dhcpend = NULL
|
||||
|
@ -34,9 +37,9 @@ def import_gw_data(mysql, gw_data):
|
|||
""",(newid,))
|
||||
else:
|
||||
mysql.execute("""
|
||||
INSERT INTO gw (name, stats_page, last_contact)
|
||||
VALUES (%s, %s, %s)
|
||||
""",(gw_data["hostname"],stats_page,time,))
|
||||
INSERT INTO gw (name, stats_page, version, last_contact)
|
||||
VALUES (%s, %s, %s, %s)
|
||||
""",(gw_data["hostname"],stats_page,version,time,))
|
||||
newid = mysql.cursor().lastrowid
|
||||
|
||||
nmacs = {}
|
||||
|
|
|
@ -250,7 +250,7 @@ def hoods_gws(mysql):
|
|||
|
||||
def gateways(mysql):
|
||||
macs = mysql.fetchall("""
|
||||
SELECT router_gw.mac, gw.name, gw.id AS gw, gw_netif.netif
|
||||
SELECT router_gw.mac, gw.name, gw.id AS gw, gw.version, gw_netif.netif
|
||||
FROM router
|
||||
INNER JOIN router_gw ON router.id = router_gw.router
|
||||
LEFT JOIN (gw_netif INNER JOIN gw ON gw_netif.gw = gw.id)
|
||||
|
@ -279,7 +279,7 @@ def gateways(mysql):
|
|||
result = OrderedDict()
|
||||
for m in macs:
|
||||
if not m["gw"] in result:
|
||||
result[m["gw"]] = {"name":m["name"],"macs":[],"selected":{},"others":{}}
|
||||
result[m["gw"]] = {"name":m["name"],"version":m["version"],"macs":[],"selected":{},"others":{}}
|
||||
result[m["gw"]]["macs"].append(m["mac"])
|
||||
for rs in selected:
|
||||
result[rs["gw"]]["selected"][rs["status"]] = rs["count"]
|
||||
|
@ -394,7 +394,7 @@ def gws_info(mysql,selecthood=None):
|
|||
tup = ()
|
||||
|
||||
data = mysql.fetchdict("""
|
||||
SELECT router_gw.mac AS mac, gw.name AS gw, stats_page, n1.netif AS gwif, n2.netif AS batif, n2.mac AS batmac, n2.ipv4 AS ipv4, n2.ipv6 AS ipv6, n2.dhcpstart AS dhcpstart, n2.dhcpend AS dhcpend
|
||||
SELECT router_gw.mac AS mac, gw.name AS gw, stats_page, version, n1.netif AS gwif, n2.netif AS batif, n2.mac AS batmac, n2.ipv4 AS ipv4, n2.ipv6 AS ipv6, n2.dhcpstart AS dhcpstart, n2.dhcpend AS dhcpend
|
||||
FROM router
|
||||
INNER JOIN router_gw ON router.id = router_gw.router
|
||||
LEFT JOIN (
|
||||
|
|
|
@ -67,7 +67,7 @@
|
|||
<tbody>
|
||||
{%- for gw, value in gws.items() %}
|
||||
<tr>
|
||||
<td class="firstrow"><p style="margin:0">{{ value["name"] }}</p></td>
|
||||
<td class="firstrow"><p style="margin:0">{{ value["name"] }}{%- if value["version"] %} <span style="font-size:12px">({{ value["version"] }})</span>{%- endif %}</p></td>
|
||||
<td class="success" data-order="{{ (value["selected"]["online"] or 0) + (value["others"]["online"] or 0) }}"><span style="font-weight:bold">{{ value["selected"]["online"] or 0 }}</span> / {{ value["others"]["online"] or 0 }}</td>
|
||||
<td class="danger" data-order="{{ (value["selected"]["offline"] or 0) + (value["others"]["offline"] or 0) }}"><span style="font-weight:bold">{{ value["selected"]["offline"] or 0 }}</span> / {{ value["others"]["offline"] or 0 }}</td>
|
||||
<td class="warning" data-order="{{ (value["selected"]["unknown"] or 0) + (value["others"]["unknown"] or 0) }}"><span style="font-weight:bold">{{ value["selected"]["unknown"] or 0 }}</span> / {{ value["others"]["unknown"] or 0 }}</td>
|
||||
|
|
|
@ -206,6 +206,7 @@
|
|||
{%- for a in gws_admin %}
|
||||
<tr><th>Admin</th><td>{{ a }}</td></tr>
|
||||
{%- endfor %}
|
||||
<tr><th>gwinfo version</th><td>{{ gws_info[selectgwint]["version"] if gws_info[selectgwint]["version"] else "< 1.4 or custom" }}</td></tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue