From patchwork Fri Nov 23 15:56:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: configurehood/nodewatcher: Also process hood ID in addition to name From: Adrian Schmutzler X-Patchwork-Id: 951 Message-Id: <20181123155643.28878-1-freifunk@adrianschmutzler.de> To: franken-dev@freifunk.net Date: Fri, 23 Nov 2018 16:56:43 +0100 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 Reviewed-by: Fabian Bläse Reviewed-by: Fabian Bläse > --- 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.@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 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"$(uci -q get "system.@system[0].hood")" + SYSTEM_DATA=$SYSTEM_DATA"$(uci -q get "system.@system[0].hoodid")" SYSTEM_DATA=$SYSTEM_DATA"$distname" SYSTEM_DATA=$SYSTEM_DATA"$distversion" SYSTEM_DATA=$SYSTEM_DATA"$cpu"