Find a file
Jan-Philipp Litza 6fc1423124 Make handling of node attributes more flexible.
This commit makes Nodes special dicts that return None-like objects for
inexistent keys, making it a dynamic attribute store.

Also, it removes the D3MapBuilder and moves its logic to the Node and
Link classes' newly introduced export() method. Only they need to be
changed to populate the final nodes.json with more attributes.
2014-07-06 20:03:10 +02: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 Make handling of node attributes more flexible. 2014-07-06 20:03:10 +02:00
aliases.json_sample move vpn flag to aliases 2012-06-12 02:12:48 +02:00
bat2nodes.py Make handling of node attributes more flexible. 2014-07-06 20:03:10 +02:00
batman.py bugs 2014-05-31 14:53:38 +02:00
ffhlwiki.py Make handling of node attributes more flexible. 2014-07-06 20:03:10 +02:00
GlobalRRD.py Modularize global and node rrd definitions and graphings 2014-02-16 16:54:10 +01:00
hostid.py add hostid module with mac_to_hostid function 2012-12-23 23:08:58 +01:00
json_encoder.py Make handling of node attributes more flexible. 2014-07-06 20:03:10 +02:00
LICENSE add LICENSE 2012-06-16 02:50:02 +02:00
link.py Make handling of node attributes more flexible. 2014-07-06 20:03:10 +02:00
mkmap.sh mkmap.sh: enable alfred 2014-02-07 11:03:27 +01:00
node.py Make handling of node attributes more flexible. 2014-07-06 20:03:10 +02:00
nodedb.py Make handling of node attributes more flexible. 2014-07-06 20:03:10 +02:00
NodeRRD.py Modularize global and node rrd definitions and graphings 2014-02-16 16:54:10 +01:00
README.md Syntax 2014-06-21 20:18:41 +02:00
RRD.py Offload rrdtool calls and model to separate module 2014-02-16 16:52:59 +01:00
rrd.py Modularize global and node rrd definitions and graphings 2014-02-16 16:54:10 +01: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