Find a file
Stefan Laudemann b3c629264a Changes try-except-blocks around maybe_nody_by_*() calls to only catch KeyError exceptions.
Semantically, all the implemented error handling for the try-except-
blocks around calls to "maybe_node_by_mac()" or "maybe_node_by_id()" in
nodedb.py only handle the case that a particular MAC address cannot be
found in the list of known nodes. If such a MAC address cannot be found
in this list, the methods properly indicate this by raising a KeyError.
However, all the try-except-block generically catch all exceptions and
thus may cover other problems. But not only that problems might be
covered by this, generic try-except-blocks make finding errors and de-
bugging quite painful.
Hence, these try-except-blocks should only catch KeyErrors or at least
have an error handling that differs from other exceptions.
2015-02-01 13:50:01 +01:00
nodedb create nodedb/ directory 2013-11-23 22:11:46 +01:00
.gitignore bugs 2014-05-31 14:53:38 +02:00
alfred.py alfred.py: use gzip (requires alfred-json v0.2) 2014-07-05 20:23:06 +02:00
aliases.json_sample move vpn flag to aliases 2012-06-12 02:12:48 +02:00
bat2nodes.py simplify mark_gateway 2014-09-23 09:23:27 +02:00
batman.py simplify mark_gateway 2014-09-23 09:23:27 +02:00
d3mapbuilder.py count clients, instead of nodes 2014-08-17 18:53:09 +02:00
ffhlwiki.py fix file format generated by ffhlwiki.py 2013-02-02 01:25:02 +01:00
GlobalRRD.py Modularize global and node rrd definitions and graphings 2014-02-16 16:54:10 +01:00
LICENSE add LICENSE 2012-06-16 02:50:02 +02:00
link.py lots of changes to support inter-node vpn links 2012-06-11 23:53:45 +02:00
mkmap.sh mkmap.sh: enable alfred 2014-02-07 11:03:27 +01:00
node.py firstseen 2014-09-20 21:17:15 +02:00
nodedb.py Changes try-except-blocks around maybe_nody_by_*() calls to only catch KeyError exceptions. 2015-02-01 13:50:01 +01:00
NodeRRD.py fix rrd 2014-08-17 19:10:19 +02:00
README.md Syntax 2014-06-21 20:18:41 +02:00
RRD.py RRD: Fix updating of DS 2014-08-17 21:01:50 +02:00
rrddb.py global rrd: Count online nodes instead of nodes in state 2014-09-22 23:34:21 +02:00

Data for Freifunk Map, Graph and Node List

ffmap-backend gathers information on the batman network by invoking batctl and batadv-vis as root (via sudo) and has this information placed into a target directory as the file "nodes.json" and also updates the directory "nodes" with graphical representations of uptimes and the number of clients connecting.

The target directory is suggested to host all information for interpreting those node descriptions, e.g. as provided by https://github.com/ffnord/ffmap-d3.git . When executed without root privileges, we suggest to grant sudo permissions within wrappers of those binaries, so no further changes are required in other scripts:

$ cat < $HOME/batctl
#!/bin/sh
exec sudo /usr/sbin/batctl $*
EOCAT

and analogously for batadv-vis. The entry for /etc/sudoers could be whateveruser ALL=(ALL:ALL) NOPASSWD: /usr/sbin/batctl,/usr/sbin/batadv-vis,/usr/sbin/alfred-json

The destination directory can be made directly available through apache:

$ cat /etc/apache2/site-enabled/000-default
...
        
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        
...

$ cat /etc/apache2/conf.d/freifunk
Alias /map /home/ffmap/www/
Alias /firmware /home/freifunk/autoupdates/

To execute, run ./mkmap.sh ../www The script expects above described sudo-wrappers in the $HOME directory of the user executing the script. If those are not available, an error will occurr if not executed as root. Also, the tool realpath optionally allows to execute the script from anywhere in the directory tree.

For the script's regular execution add the following to the crontab:

*/5 * * * * /home/ffmap/ffmap-backend/mkmap.sh /home/ffmap/www