Geronimo: Unterschied zwischen den Versionen
Erscheinungsbild
Inhalt gelöscht Inhalt hinzugefügt
Leo (Diskussion | Beiträge) →Geronimo v2: link zur API korrigiert |
Lars (Diskussion | Beiträge) Ersetze irreführende Versionsnummer durch HTTP-API-Verweis |
||
| (6 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
| Zeile 10: | Zeile 10: | ||
Geronimo ist ein zentrales Framework für die Sammlung und Verteilung Opennet-relevanter Informationen. Der Fokus liegt auf der Verwendbarkeit durch Dienste. |
Geronimo ist ein zentrales Framework für die Sammlung und Verteilung Opennet-relevanter Informationen. Der Fokus liegt auf der Verwendbarkeit durch Dienste. |
||
Status: |
|||
Geronimo v1 ist aktuell in Betrieb. Geronimo v2 ist in Entwicklung. |
|||
* Geronimo (alt, auslaufender Betrieb, keine HTTP-API) wird genutzt von: |
|||
** alte [[Openlayers|Karte]]: https://opennet-initiative.de/map |
|||
== Geronimo v2 == |
|||
** Wiki: https://on-i.de/wiki/Extension:APData |
|||
* Vorgedanken und Funktionsumfang: [[Geronimo/Planungv2]] |
|||
* [[Geronimo/v2|Geronimo]] (neu, mit HTTP-API, aktiv in Betrieb und Entwicklung) wird genutzt von: |
|||
* [https://dev.on-i.de/query?status=accepted&status=assigned&status=new&status=reopened&component=on_geronimo&col=id&col=summary&col=status&col=type&col=priority&col=milestone&col=component&desc=1&order=status Tickets] |
|||
** API zur Abfrage von Routing- und Geräteinformationen: https://api.opennet-initiative.de/ |
|||
** neue [[Openlayers|Karte]]: https://map.opennet-initiative.de/ |
|||
=== Erreichbarkeit === |
|||
** Kartendarstellung auf der Status-Seite jedes AP |
|||
Der Dienst ist über die Basis-URL http://api.opennet-initiative.de/api/v1/accesspoint/ zu erreichen. |
|||
=== Funktionsumfang === |
|||
Aktuell werden folgende Datenquellen eingelesen: |
|||
* Wiki (AP-Liste mit Besitzern und Positionen) |
|||
* ondataservice (Hardware, Firmware, Systemzustand, Netzwerkschnittstellen) |
|||
Geplante weitere Datenquellen: |
|||
* olsr (Links und Verbindungsqualität) |
|||
* lastseen (Zeitstempel der letzten Sichtbarkeit eines Knotens) |
|||
==Nutzer== |
|||
Die folgenden Dienste beziehen die Daten aus der API |
|||
* [[Openlayers]] - die Kartenanwendung |
|||
=== Server-Einrichtung === |
|||
Aktuell läuft ein experimenteller API-Dienst unter dem Nutzer-Account ''web-api'' auf [[Server/yurika]]. In seinem Nutzer-Account läuft ein Django-Server auf Port 8000 (aktuell im manuellen Betrieb), der von dem lokalen apache-Webserver via Proxy-Modul abgefragt wird. |
|||
Die Installation ist in readme.md beschrieben. |
|||
== Geronimo v1 == |
|||
Geronimo ist ein zentrales Informationsframework, das insbesondere die Kartendarstellung unterstützt. |
|||
* Datenquelle [[Ondataservice]] (per [[OLSR]] AP Infos sammeln) |
|||
* Karten-Darstellung mit verbesserter [[Openlayers]] Karte |
|||
* Export nach [[Freifunk]] Nodelist API per ''geronimo_freifunknodelist.sh'' |
|||
=== Ziele === |
|||
* Vereinheitlichung der Daten (AP namen, Daten , ...) |
|||
* Zusammenfassung aller Informationsquellen (OLSR, ondataservice, Wiki, ...) |
|||
* lose Kopplung (REST API, Erweiterbarkeit, ...) |
|||
* flexible Datengenerierung |
|||
* Speicherung Langzeitinfos |
|||
=== To do === |
|||
* <s>Ablösung der Minikarte (Anzeigen der Nachbarn)</s> |
|||
* <s>Datenmenge reduzieren </s> |
|||
* <s>leere Felder weglassen in final weglassen</s> |
|||
* UGW Erreichbarkeit je AP berechnen und anzeigen |
|||
* Wiki auswerten |
|||
** ein ressourcenschonender Wiki-Reader ist in der Entwicklung |
|||
** Ansprechpartner, Standort, Foto des APs aus Wiki finden |
|||
** [[:Vorlage:accesspoint]] für verteilte Wartung der Daten einführen |
|||
* Kanal/SSID Ansicht für Links |
|||
** zur Zeit nicht sinnvoll machbar, da viele APs keine Daten per [[OLSR]] liefern, was wohl an veralteter Firmware liegt |
|||
* UGW Erreichbarkeit eines Knotens |
|||
* Formatierung mit pylint prüfen |
|||
* Code cleanup |
|||
* Openlayers schrumpfen |
|||
* Wifidog Funkkegel anpassbar machen |
|||
* Zeitliche Dimension einführen, ggF. rrdtools dadurch ersetzen oder anzapfen |
|||
=== Architektur === |
|||
Der Quellcode liegt in einem [https://dev.opennet-initiative.de/browser/on_geronimo GIT Repository] und ist komplett in Python geschrieben. Er gliedert sich in zwei Hauptmodule: |
|||
* geronimo.py - Backend, das die Daten zusammensammelt |
|||
* geronimoCGI.py - HTTP Frontend ([http://cherrypy.org CherryPy]), dass an Apache gekoppelt wird |
|||
Der Datenaustausch erfolgt über die Dateien nodes.cache, links.cache (Pickle Framework) und die interne Repräsentation über einfache Objekte (siehe primitives.py). Die Backend Module, welche die Daten einsammeln liegen unter /helpers (zur Zeit nur Wiki, ondataservice DB und OLSR lastseen CSV) und diese werden über config.ini mit den richtigen Pfaden versorgt. |
|||
Das Frontend liefert derzeit geoJSON und kann wie folgt aufgerufen werden: |
|||
<pre> |
|||
http://www.opennet-initiative.de/api/node/neighbours?ip=192.168.1.59 |
|||
http://www.opennet-initiative.de/api/nodes/online/ |
|||
http://www.opennet-initiative.de/api/nodes/offline/ |
|||
http://www.opennet-initiative.de/api/links/online/ |
|||
</pre> |
|||
Letztere können auch mit einer Suchbox mit Mercator Koordinaten gefiltert werden |
|||
<pre> |
|||
http://www.opennet-initiative.de/api/links/online?bbox=11.925507659912,54.040317086552,12.314492340088,54.119673430674 |
|||
</pre> |
|||
Das ganze wird durch eine verbesserte Version der [[Openlayers]] Karte im Browser angezeigt und liegt unter ./src/www. |
|||
=== Datenfluss === |
|||
Ein cronjob ruft regelmäßig geronimo.py auf. Dort wird zunächst das lastseen Verzeichnis gelesen und ermittelt welche APs wann online waren. Danach wird eine Liste der APs aus dem Wiki generiert ([[Opennet Nodes]]) und alle APs mit wichtigen Details aus [[ondataservice]] ergänzt. Zum Schluss wird das ganze in die Cache Dateien geschrieben. |
|||
Wenn nun per Openlayers dir Karte angezeigt wird, wird die aktuelle BBOX bestimmt und ein Call auf den API-Services gemacht (je Layer). Über WSGI und Cherrypy wird dann aus der geronimoCGI.py dann der entsprechende Einstiegspunkt gewählt und abgearbeitet. Dabei werden die Cache-Dateien gelesen und je nach Anforderung nachgefiltert, sowie als JSON formatiert und ausgegeben. Openlayers parst dieses wieder auf Client-Seite und wendet basierend auf den Eigenschaften der Objekte die definierten Stile an. |
|||
=== Server-Installation === |
|||
Der Dienst läuft derzeit auf dem WWW Server ([[Server/on-v6]]) und ist unter '''/var/www/geronimo/src''' zu finden. |
|||
In der '''config.ini''' sind die Pfade entsprechend der lokalen Einrichtung zu setzen. Das Unterverzeichnis ./www muss dann dem '''Apache''' zugänglich und über diesen statisch freigegeben werden. Außerdem muss eine zusätzliche URL (z.Z. www.on-i.de/api/) per WSGI mit geronimoCGI.py verknüpft werden. Diese öffentliche URL muss anschließend in ./www/index.html als BASE_URL=* eingetragen werden. |
|||
== Siehe auch == |
== Siehe auch == |
||
Aktuelle Version vom 3. Februar 2025, 14:10 Uhr
| Team |
Geronimo |
| Treffen: nur bei Bedarf |
| Geronimo |
| Mitglieder: Matthias M., Lars |
| Kontakt: admin@opennet-initiative.de |
Überblick
Geronimo ist ein zentrales Framework für die Sammlung und Verteilung Opennet-relevanter Informationen. Der Fokus liegt auf der Verwendbarkeit durch Dienste.
Status:
- Geronimo (alt, auslaufender Betrieb, keine HTTP-API) wird genutzt von:
- Geronimo (neu, mit HTTP-API, aktiv in Betrieb und Entwicklung) wird genutzt von:
- API zur Abfrage von Routing- und Geräteinformationen: https://api.opennet-initiative.de/
- neue Karte: https://map.opennet-initiative.de/
- Kartendarstellung auf der Status-Seite jedes AP