configurehood/nodewatcher: Also process hood ID in addition to name

So far, the Monitoring evaluates hoods based on their names.

This introduces several problems, most prominently a hood
re-creation if it is renamed at the KeyXchange.

Since we have unique hood IDs in the KeyXchange and the
Monitoring retrieves those via hoods.php, it is logical use this
information instead of relying on string comparison.

This requires the hood files to contain an additional field "id".
While this has not been implemented, the changes in this patch
will still work and just write empty data to the uci field and
alfred data.

For local hoods, the "id" in the hood file will remain unset.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Reviewed-by: Robert Langhammer <rlanghammer@web.de>
Reviewed-by: Fabian Bläse <fabian@blaese.de>
This commit is contained in:
Adrian Schmutzler 2018-11-23 16:56:43 +01:00
parent 665377ab68
commit ef00054916
4 changed files with 8 additions and 4 deletions

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=fff-hoods
PKG_VERSION:=4
PKG_VERSION:=5
PKG_RELEASE:=1
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)

View File

@ -95,6 +95,7 @@ else
rm -f "$hoodfilewww" # delete this, so wrong hood file is not broadcasted anymore
uci -q del "system.@system[0].hood"
uci -q del "system.@system[0].hoodid"
uci -q commit system
reload_config
@ -125,6 +126,7 @@ if [ -s "$hoodfiletmp" ]; then
json_select hood
json_get_var hood name
json_get_var hoodid id
[ -n "$mesh_id" ] || json_get_var mesh_id mesh_id
[ -n "$mesh_bssid" ] || json_get_var mesh_bssid mesh_bssid
[ -n "$mesh_essid" ] || json_get_var mesh_essid mesh_essid
@ -146,8 +148,9 @@ if [ -s "$hoodfiletmp" ]; then
exit 0
fi
echo "Setting hood name: $hood"
echo "Setting hood name: $hood (ID $hoodid)"
uci -q set "system.@system[0].hood=$hood"
uci -q set "system.@system[0].hoodid=$hoodid"
uci -q commit system
reload_config

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=fff-nodewatcher
PKG_VERSION:=50
PKG_VERSION:=51
PKG_RELEASE:=1
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)

View File

@ -12,7 +12,7 @@ if ! lock -n "$lockfile"; then
fi
trap "lock -u \"$lockfile\"" INT TERM EXIT
SCRIPT_VERSION="50"
SCRIPT_VERSION="51"
#Get the configuration from the uci configuration file
#If it does not exists, then get it from a normal bash file with variables.
@ -147,6 +147,7 @@ crawl() {
SYSTEM_DATA=$SYSTEM_DATA"${position_comment}"
SYSTEM_DATA=$SYSTEM_DATA"${contact}"
SYSTEM_DATA=$SYSTEM_DATA"<hood>$(uci -q get "system.@system[0].hood")</hood>"
SYSTEM_DATA=$SYSTEM_DATA"<hoodid>$(uci -q get "system.@system[0].hoodid")</hoodid>"
SYSTEM_DATA=$SYSTEM_DATA"<distname>$distname</distname>"
SYSTEM_DATA=$SYSTEM_DATA"<distversion>$distversion</distversion>"
SYSTEM_DATA=$SYSTEM_DATA"$cpu"