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

Adrian Schmutzler freifunk at adrianschmutzler.de
Fr Nov 23 16:56:43 CET 2018


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 at adrianschmutzler.de>
---
 src/packages/fff/fff-hoods/Makefile                         | 2 +-
 src/packages/fff/fff-hoods/files/usr/sbin/configurehood     | 5 ++++-
 src/packages/fff/fff-nodewatcher/Makefile                   | 2 +-
 src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher | 3 ++-
 4 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/packages/fff/fff-hoods/Makefile b/src/packages/fff/fff-hoods/Makefile
index 5233e611..264d28ab 100644
--- a/src/packages/fff/fff-hoods/Makefile
+++ b/src/packages/fff/fff-hoods/Makefile
@@ -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)
diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
index e31ba219..de60c21d 100755
--- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
+++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
@@ -95,6 +95,7 @@ else
 			rm -f "$hoodfilewww" # delete this, so wrong hood file is not broadcasted anymore
 
 			uci -q del "system. at system[0].hood"
+			uci -q del "system. at 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. at system[0].hood=$hood"
+		uci -q set "system. at system[0].hoodid=$hoodid"
 		uci -q commit system
 		reload_config
 
diff --git a/src/packages/fff/fff-nodewatcher/Makefile b/src/packages/fff/fff-nodewatcher/Makefile
index 927c6293..3c66a0ae 100644
--- a/src/packages/fff/fff-nodewatcher/Makefile
+++ b/src/packages/fff/fff-nodewatcher/Makefile
@@ -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)
diff --git a/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher b/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
index 9486fbc8..9d96b07b 100755
--- a/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
+++ b/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
@@ -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. at system[0].hood")</hood>"
+    SYSTEM_DATA=$SYSTEM_DATA"<hoodid>$(uci -q get "system. at system[0].hoodid")</hoodid>"
     SYSTEM_DATA=$SYSTEM_DATA"<distname>$distname</distname>"
     SYSTEM_DATA=$SYSTEM_DATA"<distversion>$distversion</distversion>"
     SYSTEM_DATA=$SYSTEM_DATA"$cpu"
-- 
2.11.0



Mehr Informationen über die Mailingliste franken-dev