api/alfred: Optimize delete queries for IPv6

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
This commit is contained in:
Adrian Schmutzler 2018-03-15 13:36:28 +01:00
parent 68dff475d2
commit d1fd5e2bf9
1 changed files with 3 additions and 4 deletions

View File

@ -190,12 +190,11 @@ def import_nodewatcher_xml(mysql, mac, xml, banned, netifdict):
else: else:
mysql.execute("DELETE FROM router_netif WHERE router = %s",(router_id,)) mysql.execute("DELETE FROM router_netif WHERE router = %s",(router_id,))
if akeys: if akeys:
adata = mysql.fetchall("SELECT ipv6 FROM router_ipv6 WHERE router = %s AND netif = 'br-mesh'",(router_id,),"ipv6") adata = mysql.fetchall("SELECT netif, ipv6 FROM router_ipv6 WHERE router = %s",(router_id,))
for a in adata: for a in adata:
if a in akeys: if a["netif"]=='br-mesh' and a["ipv6"] in akeys:
continue continue
mysql.execute("DELETE FROM router_ipv6 WHERE router = %s AND netif = 'br-mesh' AND ipv6 = %s",(router_id,a,)) mysql.execute("DELETE FROM router_ipv6 WHERE router = %s AND netif = %s AND ipv6 = %s",(router_id,a["netif"],a["ipv6"],))
mysql.execute("DELETE FROM router_ipv6 WHERE router = %s AND netif <> 'br-mesh'",(router_id,))
else: else:
mysql.execute("DELETE FROM router_ipv6 WHERE router = %s",(router_id,)) mysql.execute("DELETE FROM router_ipv6 WHERE router = %s",(router_id,))