[RFC] nodewatcher: consolidate uci calls

Tobias Klaus tk+ff at meskal.net
Mi Jul 5 13:07:25 CEST 2017


Hey Christian,

vielen Dank, dass du die Arbeit da weitergemacht hast, wo ich aufgehört 
habe("toll, da kommt ja nix im Monitoring...."). Ich werde deine Anmerkungen 
dann bei Gelegenheit mal in ein v2 gießen.

Grundsätzlich hab ich noch ein zwei Fragen an euch:

Ich habe mich bei der "Konfiguration" ohne uci an den aktuellen Stand 
gehalten, dass eine /etc/config/-Datei über eine gesourcte Datei Datei 
abgebildet wird. Das finde ich eigentlich unsinnig; Ich würde lieber schauen 
ob uci als Programm vorhanden ist und falls nein, einfach _eine_ Datei mit 
allen Variablen sourcen. Das finde ich übersichtlicher, hat da jemand was 
dagegen?

Sollen wir eine solche exemplarische config-Datei daneben legen, die auf den 
Knoten _nicht_ installiert wird, aber die klar macht welche Variablen zu 
vergeben sind? Quasi als Doku?

Danke schon mal
Tobias


Am Mittwoch, 5. Juli 2017, 11:58:42 CEST schrieb Christian Dresel:
> Korrektur
> 
> On 05.07.2017 11:43, Christian Dresel wrote:
> > 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>
> 
> sollte man irgendwas mitschicken da es das Monitoring anzeigt (erste
> Zeile unter der Map)
> 
> > <firmware_community>
> 
> sollte man ebenfalls was mitschicken, da es neben der Hood in Klammer
> angezeigt wird
> 
> > <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
> 
> Korrektur siehe oben 3. und 4. macht durchaus auch Sinn.
> 
> mfg
> 
> Christian
> 
> > 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"




Mehr Informationen über die Mailingliste franken-dev