[RFC] nodewatcher: consolidate uci calls

Christian Dresel fff at chrisi01.de
Mi Jul 5 11:43:31 CEST 2017


Hallo Tobias

Danke für deine Arbeit :) Das hab ich schon ewig gebraucht bin aber nie
dazu gekommen ;) Jetzt wirds leicher aber ich hab paar Sachen die das
Monitoring so nicht frisst bzw. fehlt:

Folgendes wird nicht ausgelesen und deshalb leer rumgeschickt:
<distname>
<distversion>
<firmware_version>
<firmware_community>
<firmware_revision>
<openwrt_core_revision>
<openwrt_feeds_packages_revision>

natürlich macht einiges (eigentlich alles außer die ersten 2 das könnte
man ganz gut füllen denk ich) auf x86 wenig Sinn ;) Da das Monitoring
die Daten aber einfach nicht gefressen hat, hab ich das mal mit Müll
gefüllt. Wäre natürlich toll wenn diese Daten keine Pflicht für das
Monitoring sind. Ich hab es jetzt nicht mehr ausprobiert ob es ohne
geht, wenn sie zwingend benötigt werden sollte hier aber wohl eher das
Monitoring gefixt werden.

Leider ging es dann trotzdem noch nicht, das Problem war bei mir dann
anschließend:

<cpu>Mobile AMD Sempron(tm) Processor 2100+</cpu>

Ich vermute durch die Leerzeichen und Sonderzeichen und Kram, nimmt es
das Monitoring so nicht an. Nachdem ich dort einfach eine 1
reingeschrieben habe, tut es nun endlich :)
Müsste man das evtl. auch so machen?:
<cpu><![CDATA[Mobile AMD Sempron(tm) Processor 2100+]]></cpu>
bin mir da grad nicht ganz sicher?

mfg

Christian

On 04.07.2017 00:37, Tobias Klaus wrote:
> * this makes it easier to reuse on decentral gateways
> * fix errors if nodewatcher is not run on openwrt/lede
> ---
>  .../fff/fff-nodewatcher/files/usr/sbin/nodewatcher | 29 ++++++++++++++--------
>  1 file changed, 18 insertions(+), 11 deletions(-)
> 
> diff --git a/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher b/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
> index f9d6e65..296b421 100755
> --- a/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
> +++ b/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
> @@ -20,6 +20,17 @@ else
>      . "$(dirname "$0")/nodewatcher_config"
>  fi
>  
> +if [ -f /etc/config/system ];then
> +    description="$(uci get system. at system[0].description)"
> +    latitude="$(uci get system. at system[0].latitude)"
> +    longitude="$(uci get system. at system[0].longitude)"
> +    position_comment="$(uci get system. at system[0].position_comment)"
> +    contact="$(uci get system. at system[0].contact)"
> +    hood="$(uci -q get "system. at system[0].hood")"
> +else
> +    . "$(dirname "$0")/system_config"
> +fi
> +
>  if [ "$SCRIPT_ERROR_LEVEL" -gt "1" ]; then
>      err() {
>          echo "$1" >> "$SCRIPT_LOGFILE"
> @@ -56,20 +67,15 @@ crawl() {
>      #Get system data from other locations
>      err "$(date): Collecting basic system status data"
>      hostname="$(cat /proc/sys/kernel/hostname)"
> -    description="$(uci get system. at system[0].description)"
>      if [ -n "$description" ]; then
>          description="<description><![CDATA[$description]]></description>"
>      fi
> -    latitude="$(uci get system. at system[0].latitude)"
> -    longitude="$(uci get system. at system[0].longitude)"
>      if [ -n "$longitude" -a -n "$latitude" ]; then
>          geo="<geo><lat>$latitude</lat><lng>$longitude</lng></geo>";
>      fi
> -    position_comment="$(uci get system. at system[0].position_comment)"
>      if [ -n "$position_comment" ]; then
>          position_comment="<position_comment><![CDATA[$position_comment]]></position_comment>"
>      fi
> -    contact="$(uci get system. at system[0].contact)"
>      if [ -n "$contact" ]; then
>          contact="<contact>$contact</contact>"
>      fi
> @@ -86,7 +92,7 @@ crawl() {
>          /system type/ { printf "<chipset>"$2"</chipset>" }
>          /platform/ { printf "<chipset>"$2"</chipset>" }
>      ' /proc/cpuinfo)
> -    model="<model>$(cat /var/sysinfo/model)</model>"
> +    test -f /var/sysinfo/model && model="<model>$(cat /var/sysinfo/model)</model>"
>      local_time="$(date +%s)"
>      load=$(awk '{ printf "<loadavg>"$3"</loadavg><processes>"$4"</processes>" }' /proc/loadavg)
>  
> @@ -117,7 +123,7 @@ crawl() {
>      #DISTRIB_CODENAME="attitude_adjustment"
>      #DISTRIB_TARGET="atheros/generic"
>      #DISTRIB_DESCRIPTION="OpenWrt Attitude Adjustment 12.09-rc1"
> -    . /etc/openwrt_release
> +    test -f /etc/openwrt_release && . /etc/openwrt_release
>      distname=$DISTRIB_ID
>      distversion=$DISTRIB_RELEASE
>  
> @@ -126,7 +132,8 @@ crawl() {
>      #BUILD_DATE="build date: Di 29. Jan 19:33:34 CET 2013"
>      #OPENWRT_CORE_REVISION="35298"
>      #OPENWRT_FEEDS_PACKAGES_REVISION="35298"
> -    . /etc/firmware_release
> +
> +    test -f /etc/firmware_release  && . /etc/firmware_release
>  
>      SYSTEM_DATA="<status>online</status>"
>      SYSTEM_DATA=$SYSTEM_DATA"$status_text"
> @@ -135,10 +142,10 @@ crawl() {
>      SYSTEM_DATA=$SYSTEM_DATA"${geo}"
>      SYSTEM_DATA=$SYSTEM_DATA"${position_comment}"
>      SYSTEM_DATA=$SYSTEM_DATA"${contact}"
> -    if [ "$(uci -q get "system. at system[0].hood")" ] 
> +    if [ "${hood}" ]
>      then                                                                                                                         
> -        SYSTEM_DATA=$SYSTEM_DATA"<hood>$(uci -q get "system. at system[0].hood")</hood>"                                            
> -    fi  
> +        SYSTEM_DATA=$SYSTEM_DATA"<hood>${hood}</hood>"
> +    fi
>      SYSTEM_DATA=$SYSTEM_DATA"<distname>$distname</distname>"
>      SYSTEM_DATA=$SYSTEM_DATA"<distversion>$distversion</distversion>"
>      SYSTEM_DATA=$SYSTEM_DATA"$cpu"
> 

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 819 bytes
Beschreibung: OpenPGP digital signature
URL         : <http://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20170705/d8e7780e/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev