Added an automatism which will retrive Router-Coordinates from the old Netmon system

Submitted by Jan Kraus on July 9, 2016, 1:47 p.m.

Details

Message ID 1468072031-16965-1-git-send-email-mayosemmel@gmail.com
State Superseded, archived
Headers show

Commit Message

Jan Kraus July 9, 2016, 1:47 p.m.
Signed-off-by: Jan Kraus <mayosemmel@gmail.com>
---
 src/packages/fff/fff-sysupgrade/Makefile           |  6 +--
 .../files/usr/lib/micron.d/fff-sysupgrade          |  1 +
 .../files/usr/sbin/copy_netmon_coordinates.sh      | 56 ++++++++++++++++++++++
 3 files changed, 60 insertions(+), 3 deletions(-)
 create mode 100644 src/packages/fff/fff-sysupgrade/files/usr/lib/micron.d/fff-sysupgrade
 create mode 100755 src/packages/fff/fff-sysupgrade/files/usr/sbin/copy_netmon_coordinates.sh

Patch hide | download patch | download mbox

diff --git a/src/packages/fff/fff-sysupgrade/Makefile b/src/packages/fff/fff-sysupgrade/Makefile
index ded9852..e790c82 100644
--- a/src/packages/fff/fff-sysupgrade/Makefile
+++ b/src/packages/fff/fff-sysupgrade/Makefile
@@ -1,8 +1,8 @@ 
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=fff-sysupgrade
-PKG_VERSION:=0.0.1
-PKG_RELEASE:=1
+PKG_VERSION:=0.0.2
+PKG_RELEASE:=2
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/fff-sysupgrade
 
@@ -13,7 +13,7 @@  define Package/fff-sysupgrade
     CATEGORY:=Freifunk
     TITLE:=Freifunk-Franken sysupgrade
     URL:=http://www.freifunk-franken.de
-    DEPENDS:=+fff-boardname
+    DEPENDS:=+fff-boardname +micrond
 endef
 
 define Package/fff-sysupgrade/description
diff --git a/src/packages/fff/fff-sysupgrade/files/usr/lib/micron.d/fff-sysupgrade b/src/packages/fff/fff-sysupgrade/files/usr/lib/micron.d/fff-sysupgrade
new file mode 100644
index 0000000..312972f
--- /dev/null
+++ b/src/packages/fff/fff-sysupgrade/files/usr/lib/micron.d/fff-sysupgrade
@@ -0,0 +1 @@ 
+*/5 * * * * /usr/sbin/copy_netmon_coordinates.sh
\ No newline at end of file
diff --git a/src/packages/fff/fff-sysupgrade/files/usr/sbin/copy_netmon_coordinates.sh b/src/packages/fff/fff-sysupgrade/files/usr/sbin/copy_netmon_coordinates.sh
new file mode 100755
index 0000000..3e2c22f
--- /dev/null
+++ b/src/packages/fff/fff-sysupgrade/files/usr/sbin/copy_netmon_coordinates.sh
@@ -0,0 +1,56 @@ 
+#!/bin/sh
+
+delete_myself()
+{
+	echo "This Script will be deleted now!"
+	rm -f /usr/lib/micron.d/fff-sysupgrade
+	rm -f "$0"
+	exit 0
+}
+
+#Get Mac Address of br-mesh if already up
+if ! mac=$( cat /sys/class/net/br-mesh/address ); then
+	echo "Interface br-mesh is not available!"
+	exit 1
+fi
+
+#Check if Coordinates are already set
+if uci get system.@system[0].latitude && uci get system.@system[0].longitude; then
+	echo "Coordinates are already set."
+	delete_myself
+fi
+
+#Get Router from Netmon Database
+xml_data=$( wget -q -O - "http://fe80::ff:feee:1%br-mesh/api/rest/api.php?rquest=router&mac=${mac//:}" 2>&1)
+
+if [ -z "$xml_data" ]; then
+	echo "xml_data is not set"
+	exit 1
+elif echo "$xml_data"|grep "HTTP/1.1 404 Not Found" ;then
+	echo "This Router is not present in the Netmon Database."
+	delete_myself
+fi
+
+#Reduce XML_DATA to Router only
+xml_data=$( echo $xml_data |grep -o '<router>.*<\/router>' |sed -e 's/<user>.*<\/user>//g' |sed -e 's/<chipset>.*<\/chipset>//g' |sed -e 's/<chipset>.*<\/chipset>//g' )
+
+#Get needed Variables
+hostname=$( echo $xml_data |grep -o  '<hostname>.*<\/hostname>'|sed -e 's/<\/\?hostname>//g' )
+description=$( echo $xml_data |grep -o  '<description>.*<\/description>'|sed -e 's/<\/\?description>//g' )
+latitude=$( echo $xml_data |grep -o  '<latitude>.*<\/latitude>'|sed -e 's/<\/\?latitude>//g' )
+longitude=$( echo $xml_data |grep -o  '<longitude>.*<\/longitude>'|sed -e 's/<\/\?longitude>//g' )
+
+uci set system.@system[0]=system
+echo "Setting hostname $hostname"
+uci set system.@system[0].hostname="$hostname"
+echo "Setting description $description"
+uci set system.@system[0].description="$description"
+echo "Setting latitude $latitude"
+uci set system.@system[0].latitude="$latitude"
+echo "Setting longitude $longitude"
+uci set system.@system[0].longitude="$longitude"
+uci commit
+
+echo "Coordinates are now copied from Netmon. Router will be rebooted."
+reboot
+exit 0
\ No newline at end of file

Comments

Tim Niemeyer July 9, 2016, 3:58 p.m.
Hi

Ich habs nicht getestet, aber schaut soweit gut aus:

Reviewed-by: Tim Niemeyer <tim@tn-x.org>

Tim

Am Samstag, den 09.07.2016, 15:47 +0200 schrieb Jan Kraus:
> Signed-off-by: Jan Kraus <mayosemmel@gmail.com>
> ---
>  src/packages/fff/fff-sysupgrade/Makefile           |  6 +--
>  .../files/usr/lib/micron.d/fff-sysupgrade          |  1 +
>  .../files/usr/sbin/copy_netmon_coordinates.sh      | 56 ++++++++++++++++++++++
>  3 files changed, 60 insertions(+), 3 deletions(-)
>  create mode 100644 src/packages/fff/fff-sysupgrade/files/usr/lib/micron.d/fff-sysupgrade
>  create mode 100755 src/packages/fff/fff-sysupgrade/files/usr/sbin/copy_netmon_coordinates.sh
> 
> diff --git a/src/packages/fff/fff-sysupgrade/Makefile b/src/packages/fff/fff-sysupgrade/Makefile
> index ded9852..e790c82 100644
> --- a/src/packages/fff/fff-sysupgrade/Makefile
> +++ b/src/packages/fff/fff-sysupgrade/Makefile
> @@ -1,8 +1,8 @@
>  include $(TOPDIR)/rules.mk
>  
>  PKG_NAME:=fff-sysupgrade
> -PKG_VERSION:=0.0.1
> -PKG_RELEASE:=1
> +PKG_VERSION:=0.0.2
> +PKG_RELEASE:=2
>  
>  PKG_BUILD_DIR:=$(BUILD_DIR)/fff-sysupgrade
>  
> @@ -13,7 +13,7 @@ define Package/fff-sysupgrade
>      CATEGORY:=Freifunk
>      TITLE:=Freifunk-Franken sysupgrade
>      URL:=http://www.freifunk-franken.de
> -    DEPENDS:=+fff-boardname
> +    DEPENDS:=+fff-boardname +micrond
>  endef
>  
>  define Package/fff-sysupgrade/description
> diff --git a/src/packages/fff/fff-sysupgrade/files/usr/lib/micron.d/fff-sysupgrade b/src/packages/fff/fff-sysupgrade/files/usr/lib/micron.d/fff-sysupgrade
> new file mode 100644
> index 0000000..312972f
> --- /dev/null
> +++ b/src/packages/fff/fff-sysupgrade/files/usr/lib/micron.d/fff-sysupgrade
> @@ -0,0 +1 @@
> +*/5 * * * * /usr/sbin/copy_netmon_coordinates.sh
> \ No newline at end of file
> diff --git a/src/packages/fff/fff-sysupgrade/files/usr/sbin/copy_netmon_coordinates.sh b/src/packages/fff/fff-sysupgrade/files/usr/sbin/copy_netmon_coordinates.sh
> new file mode 100755
> index 0000000..3e2c22f
> --- /dev/null
> +++ b/src/packages/fff/fff-sysupgrade/files/usr/sbin/copy_netmon_coordinates.sh
> @@ -0,0 +1,56 @@
> +#!/bin/sh
> +
> +delete_myself()
> +{
> +	echo "This Script will be deleted now!"
> +	rm -f /usr/lib/micron.d/fff-sysupgrade
> +	rm -f "$0"
> +	exit 0
> +}
> +
> +#Get Mac Address of br-mesh if already up
> +if ! mac=$( cat /sys/class/net/br-mesh/address ); then
> +	echo "Interface br-mesh is not available!"
> +	exit 1
> +fi
> +
> +#Check if Coordinates are already set
> +if uci get system.@system[0].latitude && uci get system.@system[0].longitude; then
> +	echo "Coordinates are already set."
> +	delete_myself
> +fi
> +
> +#Get Router from Netmon Database
> +xml_data=$( wget -q -O - "http://fe80::ff:feee:1%br-mesh/api/rest/api.php?rquest=router&mac=${mac//:}" 2>&1)
> +
> +if [ -z "$xml_data" ]; then
> +	echo "xml_data is not set"
> +	exit 1
> +elif echo "$xml_data"|grep "HTTP/1.1 404 Not Found" ;then
> +	echo "This Router is not present in the Netmon Database."
> +	delete_myself
> +fi
> +
> +#Reduce XML_DATA to Router only
> +xml_data=$( echo $xml_data |grep -o '<router>.*<\/router>' |sed -e 's/<user>.*<\/user>//g' |sed -e 's/<chipset>.*<\/chipset>//g' |sed -e 's/<chipset>.*<\/chipset>//g' )
> +
> +#Get needed Variables
> +hostname=$( echo $xml_data |grep -o  '<hostname>.*<\/hostname>'|sed -e 's/<\/\?hostname>//g' )
> +description=$( echo $xml_data |grep -o  '<description>.*<\/description>'|sed -e 's/<\/\?description>//g' )
> +latitude=$( echo $xml_data |grep -o  '<latitude>.*<\/latitude>'|sed -e 's/<\/\?latitude>//g' )
> +longitude=$( echo $xml_data |grep -o  '<longitude>.*<\/longitude>'|sed -e 's/<\/\?longitude>//g' )
> +
> +uci set system.@system[0]=system
> +echo "Setting hostname $hostname"
> +uci set system.@system[0].hostname="$hostname"
> +echo "Setting description $description"
> +uci set system.@system[0].description="$description"
> +echo "Setting latitude $latitude"
> +uci set system.@system[0].latitude="$latitude"
> +echo "Setting longitude $longitude"
> +uci set system.@system[0].longitude="$longitude"
> +uci commit
> +
> +echo "Coordinates are now copied from Netmon. Router will be rebooted."
> +reboot
> +exit 0
> \ No newline at end of file
> -- 
> 2.1.4
>
Jan-Tarek Butt July 11, 2016, 9:11 a.m.
On 07/09/16 17:58, Tim Niemeyer wrote:
> Hi
> 
> Ich habs nicht getestet, aber schaut soweit gut aus:
> 
Vorsichtig...

Wir hatten das damals bei Freifunk Nordwest auch gemacht.
Netmon liefert wohl über die API 0/0 als default wert zurrück
 was bei uns dazu geführt hat das einige 100 Router vor der
Niegerianischen Küste lagen.

vg
Tarek
Jan Kraus July 14, 2016, 9:30 a.m.
Hi,

ich habe gerade mal versucht das zu reproduzieren.
Wenn ich einen nicht zugeordneten Router per API suche bekomme ich einen
Error 404.
In welcher Situation tritt das Problem mit 0/0 denn auf?

Grüße Jan

Am Montag, den 11.07.2016, 11:11 +0200 schrieb Jan-Tarek Butt:
> 
> On 07/09/16 17:58, Tim Niemeyer wrote:
> > Hi
> > 
> > Ich habs nicht getestet, aber schaut soweit gut aus:
> > 
> Vorsichtig...
> 
> Wir hatten das damals bei Freifunk Nordwest auch gemacht.
> Netmon liefert wohl über die API 0/0 als default wert zurrück
>  was bei uns dazu geführt hat das einige 100 Router vor der
> Niegerianischen Küste lagen.
> 
> vg
> Tarek
> 
> -- 
> franken-dev mailing list
> franken-dev@freifunk.net
> http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net
Jan-Tarek Butt July 14, 2016, 10:58 a.m.
Ich habe mal eike von Freifunk Nordwest dazu genommen er hat es damals
gebaut und kann dazu sicherlich ein paar worte sagen.

cheers
Tarek

On 07/14/16 11:30, mayosemmel wrote:
> Hi,
> 
> ich habe gerade mal versucht das zu reproduzieren.
> Wenn ich einen nicht zugeordneten Router per API suche bekomme ich einen
> Error 404.
> In welcher Situation tritt das Problem mit 0/0 denn auf?
> 
> Grüße Jan
> 
> Am Montag, den 11.07.2016, 11:11 +0200 schrieb Jan-Tarek Butt:
>>
>> On 07/09/16 17:58, Tim Niemeyer wrote:
>>> Hi
>>>
>>> Ich habs nicht getestet, aber schaut soweit gut aus:
>>>
>> Vorsichtig...
>>
>> Wir hatten das damals bei Freifunk Nordwest auch gemacht.
>> Netmon liefert wohl über die API 0/0 als default wert zurrück
>>  was bei uns dazu geführt hat das einige 100 Router vor der
>> Niegerianischen Küste lagen.
>>
>> vg
>> Tarek
>>
>> -- 
>> franken-dev mailing list
>> franken-dev@freifunk.net
>> http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net
>