Meshviewer - Fehler beim Extrahieren der Alfred Daten (fehlerhafte nodes.json)

Moin FF’er,

ich komme derzeit bei unserem Meshviewer nicht weiter. Wir verwenden die letzte Version von @tcatm in Zusammenhang mit dem Kontenformular der Hamburger Freifunker.

Die aus Alfred gewonnenen Daten sind hier zu finden.

Das Problem was nun auftritt, zeigt sich zunächst in fehlenden Statistiken sowie Mesh-Verbindungen und GW Einträgen im MV. Auch werden nicht alle Nodes im MV angezeigt oder aber dessen Online Status ist nicht korrekt.

Schaut man unter die Haube in die nodes.json so stellt man fest, dass bestimmt Einträge einfach fehlen.

[quote]Vergleicht man unsere nodes.json mit der aus Hamburg, dann fällt folgendes auf:

  • bei uns ist nur der Node FF-Westerroenfeld-1 korrekt hinterlegt
  • bei allen anderen Daten in unserer nodes.json fehlen folgende Datensätze:
    „mac“, „mesh“, „other“, „addresses“, „system“, „hardware“, „node_id“,„software“, „firmware“, „base“, „autoupdater“, „fastd“.[/quote]

Hier das Ganze mal in bunt:

Die nodes.json wird mit zwei aliases.json Datei zusätzlich befüllt.

Die Erste generiert sich aus den Knotenformulardaten, die Zweite aus statischen Einträgen zu den Gateways.

generate_aliases.py

python2 ./generate_aliases.py /home/fastdform/keys > var/www/html/meshviewer/build/data/aliases.json

Eine Knotenformulardatei sieht so aus:

[code]# Knotenname: xxxxx

Ansprechpartner: xx

Kontakt: xx@xx.xx

Koordinaten: xx.xxxx xx.xxxx

MAC: xx:xx:xx:xx:xx

Token: xxxxxxxxxxxxxxxxxxxx

key „xxxxxxxxxx“;[/code]

Die nodes.json wird so generiert:

#!/bin/bash -e cd /root/ffmap-backend #Download der Aliases welche aus dem Knotenformular generiert wurde wget -q -O aliases.json "http://mesh.ffnord.net/data/aliases.json" ./backend.py -d /opt/srv-cgi/ -m bat-ffnord:/var/run/alfred.bat-ffnord.sock -a /root/ffmap-backend/alias-gw.json -a /root/ffmap-backend/aliases.json --vpn fe:ed:be:ff:ff:00 --vpn fe:ed:be:ef:ff:01

Die aliases-gw.json sieht so aus:

[ { "node_id": "nord-gw0", "hostname": "nord-gw0", "network": { "mesh": { "bat-ffnord": { "interfaces": { "tunnel": [ "fe:ed:be:ef:ff:00" ] } } } } }, { "node_id": "nord-gw2", "hostname": "nord-gw2", "network": { "mesh": { "bat-ffnord": { "interfaces": { "tunnel": [ "fe:ed:be:ef:ff:01" ] } } } } } ]

Anmerkung:
Diese Datei wurde erst erstellt, nachdem die Optionen „–vpn fe:ed:be:ff:ff:00 --vpn fe:ed:be:ef:ff:01“ im backend.py keine Wirkung zeigten.

Die Frage ist nun, wie bekomme ich das alles so hin, dass folgende Probleme behoben werden:

  1. Anzeige aller Nodes im MV mit korrektem Online Status
  2. Anzeige der MESH Verbindungen
  3. Inklusion der fehlenden Datensätze in die nodes.json (siehe oben)
  4. Markierung der GW-Server als Gateways

Ich bin für jede Hilfe dankbar und reiche gern jede nur fehlende Info nach.

Fast alle Probleme konnten dank der Hilfe von @kantorkel behoben werden.

Abhilfe schaffte ein update auf ein angepasstes Backend und eine neue Version der generate_aliases.py.

Alles zu finden im dev branch der Hamburger.

Letztes bleibendes Problem ist die Markierung der GW-Server als Gateways in Alfred. Scheinbar wird nur der 2. Gateway korrekt als GW geflaggt. Der erste nicht…