Progressing towards nodewatcher v3

Development is continuing on the next version of nodewatcher, the modular provisioning, deployment and monitoring platform targeted at community wireless mesh networks worldwide. Since the last update there have been many improvements to the codebase, bringing the platform closer to the first production deployment in wlan slovenia network.

Code has been successfully migrated to use the latest Django 1.7. Due to this change the data import system from the old nodewatcher v2, currently deployed in our network, has been rewritten so that it is now much easier to perform v2-to-v3 migrations. This will enable use to deploy the final system with ease. The firmware generation system has been updated and frontend support has been added for managing builds and reporting on their status. Multiple devices have been tested and currently there are already a few devices running in the mesh network that have been configured and generated using the new platform. During this testing a lot of generator-related bugs have been fixed and device support has been improved.

Hold-down period has been implemented for IP resource allocation pools. This enables the allocation system to hold allocated ranges even after they have been freed in order to prevent immediate address reuse which could lead to conflicts. A module for map-based visualization has been implemented using Leaflet and OpenStreetMap, making it easy for other modules to extend the map with their own visualizations (for example, currently the OLSR routing plugin colors links between nodes based on the value of the routing metric). This is similar to the client-side routing topology rendering which also supports such extensibility.

Frontend support for managing user public keys used for authentication to nodes has been added. Our OpenWrt telemetry agent has been improved with additional reporting functions. Server-side monitoring processors and validators have been updated and their performance has been improved. To improve interoperability between different node database solutions, we are participating in an effort to create a common JSON schema for exchanging various node data. In order to reduce the management overhead, the Docker images used for production deployments and development have now been unified, so that the development environment is now equal to the production one.

Next steps will bring more frontend support, further debugging, documentation and production readiness.