forked from freifunk-franken/firmware
fff-nodewatcher: remove configurator
Signed-off-by: Tim Niemeyer <tim.niemeyer@mastersword.de> Reviewed-by: Tobias Klaus <tk+ff@meskal.net>
This commit is contained in:
parent
6920c9f694
commit
34b11267e5
|
@ -1,24 +0,0 @@
|
|||
config 'script'
|
||||
option 'error_level' '0'
|
||||
option 'logfile' '/var/log/configurator.log'
|
||||
option 'version' '1'
|
||||
option 'sync_hostname' '1'
|
||||
|
||||
config 'api'
|
||||
option 'ipv4_address' '1'
|
||||
option 'ipv6_interface' 'br-mesh'
|
||||
option 'ipv6_address' 'fe80::ff:feee:1'
|
||||
option 'timeout' '5'
|
||||
option 'retry' '5'
|
||||
option 'api_key' '1'
|
||||
|
||||
config 'crawl'
|
||||
option 'method' 'hash'
|
||||
option 'nickname' '1'
|
||||
option 'password' '1'
|
||||
option 'login_string' '1'
|
||||
option 'router_id' '1'
|
||||
option 'update_hash' '1'
|
||||
|
||||
config 'netmon'
|
||||
option 'autoadd_ipv6_address' '1'
|
|
@ -1,4 +0,0 @@
|
|||
#!/bin/sh
|
||||
[ "$ACTION" = "ifup" -a "$INTERFACE" = "wan" ] && {
|
||||
/usr/sbin/configurator
|
||||
}
|
|
@ -1,2 +1 @@
|
|||
*/5 * * * * sleep $(/usr/bin/random 0 29); /usr/sbin/nodewatcher; sleep $(/usr/bin/random 0 209); /usr/sbin/configurator
|
||||
*/30 * * * * sleep $(/usr/bin/random 0 1790); /usr/sbin/syncHostname
|
||||
*/5 * * * * sleep $(/usr/bin/random 0 29); /usr/sbin/nodewatcher
|
||||
|
|
|
@ -1,132 +0,0 @@
|
|||
#!/bin/sh
|
||||
# Netmon Configurator (C) 2010-2012 Freifunk Oldenburg
|
||||
# Lizenz: GPL v3
|
||||
|
||||
test -f /tmp/started || exit
|
||||
|
||||
#Get the configuration from the uci configuration file
|
||||
#If it does not exists, then get it from a normal bash file with variables.
|
||||
if [ -f /etc/config/configurator ];then
|
||||
API_IPV4_ADRESS=`uci get configurator.@api[0].ipv4_address`
|
||||
API_IPV6_ADRESS=`uci get configurator.@api[0].ipv6_address`
|
||||
API_IPV6_INTERFACE=`uci get configurator.@api[0].ipv6_interface`
|
||||
API_TIMEOUT=`uci get configurator.@api[0].timeout`
|
||||
API_RETRY=`uci get configurator.@api[0].retry`
|
||||
SCRIPT_ERROR_LEVEL=`uci get configurator.@script[0].error_level`
|
||||
SCRIPT_LOGFILE=`uci get configurator.@script[0].logfile`
|
||||
CRAWL_METHOD=`uci get configurator.@crawl[0].method`
|
||||
CRAWL_ROUTER_ID=`uci get configurator.@crawl[0].router_id`
|
||||
CRAWL_UPDATE_HASH=`uci get configurator.@crawl[0].update_hash`
|
||||
CRAWL_NICKNAME=`uci get configurator.@crawl[0].nickname`
|
||||
CRAWL_PASSWORD=`uci get configurator.@crawl[0].password`
|
||||
AUTOADD_IPV6_ADDRESS=`uci get configurator.@netmon[0].autoadd_ipv6_address`
|
||||
else
|
||||
. `dirname $0`/configurator_config
|
||||
fi
|
||||
|
||||
API_RETRY=$(($API_RETRY - 1))
|
||||
|
||||
if [ "$API_IPV4_ADRESS" != "1" ]; then
|
||||
netmon_api=$API_IPV4_ADRESS
|
||||
else
|
||||
netmon_api="[$API_IPV6_ADRESS"%"$API_IPV6_INTERFACE]"
|
||||
fi
|
||||
|
||||
if [ "$SCRIPT_ERROR_LEVEL" -gt "1" ]; then
|
||||
err() {
|
||||
echo "$(date) [configurator]: $1" >> $SCRIPT_LOGFILE
|
||||
}
|
||||
else
|
||||
err() {
|
||||
:
|
||||
}
|
||||
fi
|
||||
|
||||
assign_router() {
|
||||
hostname=`cat /proc/sys/kernel/hostname`
|
||||
|
||||
#Choose right login String
|
||||
#Here maybe a ; to much at the end..??
|
||||
login_strings=$(awk '{ mac=toupper($1); gsub(":", "", mac); printf mac ";" }' /sys/class/net/br-mesh/address /sys/class/net/eth0/address /sys/class/net/ath0/address 2> /dev/null)
|
||||
ergebnis=$(wget -T $API_TIMEOUT -q -O - "http://$netmon_api/api_csv_configurator.php?section=test_login_strings&login_strings=$login_strings")
|
||||
router_auto_assign_login_string=${ergebnis#*;}
|
||||
ergebnis=${ergebnis%;*}
|
||||
if [ "$ergebnis" = "error" ]; then
|
||||
router_auto_assign_login_string=${login_strings%%;*}
|
||||
err "A router with this login string does not exist: $login_strings"
|
||||
err "Using $router_auto_assign_login_string as login string"
|
||||
fi
|
||||
|
||||
#Try to assign Router with choosen login string
|
||||
ergebnis=$(wget -T $API_TIMEOUT -q -O - "http://$netmon_api/api_csv_configurator.php?section=router_auto_assign&router_auto_assign_login_string=$router_auto_assign_login_string&hostname=$hostname")
|
||||
ret=${ergebnis%%;*}
|
||||
errstr=${ergebnis#*;}
|
||||
errstr=${errstr%%;*}
|
||||
if [ "$ret" != "success" ]; then
|
||||
err "The router has not been assigned to a router in Netmon"
|
||||
err "Failure on router_auto_assign: $errstr. Exiting"
|
||||
exit 0
|
||||
elif [ "$ret" = "success" ]; then
|
||||
update_hash=${ergebnis%;*;*}
|
||||
update_hash=${update_hash##*;}
|
||||
api_key=${ergebnis##*;}
|
||||
#write new config
|
||||
uci set configurator.@crawl[0].router_id=$errstr
|
||||
uci set configurator.@crawl[0].update_hash=$update_hash
|
||||
uci set configurator.@api[0].api_key=$api_key
|
||||
#set also new router id for nodewatcher
|
||||
#uci set nodewatcher.@crawl[0].router_id=$errstr
|
||||
|
||||
err "The router $errstr has been assigned with a router in Netmon"
|
||||
uci commit
|
||||
|
||||
CRAWL_METHOD=`uci get configurator.@crawl[0].method`
|
||||
CRAWL_ROUTER_ID=$errstr
|
||||
CRAWL_UPDATE_HASH=$update_hash
|
||||
CRAWL_NICKNAME=`uci get configurator.@crawl[0].nickname`
|
||||
CRAWL_PASSWORD=`uci get configurator.@crawl[0].password`
|
||||
fi
|
||||
}
|
||||
|
||||
autoadd_ipv6_address() {
|
||||
err "Doing IPv6 autoadd"
|
||||
ipv6_link_local_addr=$(ip addr show dev br-mesh scope link | awk '/inet6/{print $2}')
|
||||
ipv6_link_local_netmask=${ipv6_link_local_addr##*/}
|
||||
ipv6_link_local_addr=${ipv6_link_local_addr%%/*}
|
||||
ergebnis=$(wget -T $API_TIMEOUT -q -O - "http://$netmon_api/api_csv_configurator.php?section=autoadd_ipv6_address&authentificationmethod=$CRAWL_METHOD&nickname=$CRAWL_NICKNAME&password=$CRAWL_PASSWORD&router_auto_update_hash=$CRAWL_UPDATE_HASH&router_id=$CRAWL_ROUTER_ID&networkinterface_name=br-mesh&ip=$ipv6_link_local_addr&netmask=$ipv6_link_local_netmask&ipv=6")
|
||||
ret=${ergebnis%%,*}
|
||||
if [ "$ret" = "success" ]; then
|
||||
uci set configurator.@netmon[0].autoadd_ipv6_address='0'
|
||||
uci commit
|
||||
err "The IPv6 address of the router $CRAWL_ROUTER_ID has been added to the router in Netmon"
|
||||
err "IPv6 Autoadd has been disabled cause it is no longer necesarry"
|
||||
else
|
||||
routerid=${ergebnis##*,}
|
||||
if [ "$routerid" = "$CRAWL_ROUTER_ID" ]; then
|
||||
err "The IPv6 address already exists in Netmon on this router. Maybe because of a previos assignment"
|
||||
uci set configurator.@netmon[0].autoadd_ipv6_address='0'
|
||||
uci commit
|
||||
err "IPv6 Autoadd has been disabled cause it is no longer necesarry"
|
||||
else
|
||||
err "The IPv6 address already exists in Netmon on another router $routerid"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "$CRAWL_METHOD" = "login" ]; then
|
||||
err "Authentification method is: username and passwort"
|
||||
elif [ "$CRAWL_METHOD" = "hash" ]; then
|
||||
err "Authentification method: autoassign and hash"
|
||||
err "Checking if the router is already assigned to a router in Netmon"
|
||||
if [ "$CRAWL_UPDATE_HASH" = "1" ]; then
|
||||
err "The router is not assigned to a router in Netmon"
|
||||
err "Trying to assign the router"
|
||||
assign_router
|
||||
else
|
||||
err "The router is already assigned to a router in Netmon"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$AUTOADD_IPV6_ADDRESS" = "1" ]; then
|
||||
autoadd_ipv6_address
|
||||
fi
|
|
@ -1,80 +0,0 @@
|
|||
#!/bin/sh
|
||||
# Netmon Configurator (C) 2010-2012 Freifunk Oldenburg
|
||||
# Lizenz: GPL v3
|
||||
|
||||
test -f /tmp/started || exit
|
||||
|
||||
#Get the configuration from the uci configuration file
|
||||
#If it does not exists, then get it from a normal bash file with variables.
|
||||
if [ -f /etc/config/configurator ];then
|
||||
API_IPV4_ADRESS=`uci get configurator.@api[0].ipv4_address`
|
||||
API_IPV6_ADRESS=`uci get configurator.@api[0].ipv6_address`
|
||||
API_IPV6_INTERFACE=`uci get configurator.@api[0].ipv6_interface`
|
||||
API_TIMEOUT=`uci get configurator.@api[0].timeout`
|
||||
SCRIPT_ERROR_LEVEL=`uci get configurator.@script[0].error_level`
|
||||
SCRIPT_LOGFILE=`uci get configurator.@script[0].logfile`
|
||||
SCRIPT_SYNC_HOSTNAME=`uci get configurator.@script[0].sync_hostname`
|
||||
CRAWL_METHOD=`uci get configurator.@crawl[0].method`
|
||||
CRAWL_ROUTER_ID=`uci get configurator.@crawl[0].router_id`
|
||||
CRAWL_UPDATE_HASH=`uci get configurator.@crawl[0].update_hash`
|
||||
CRAWL_NICKNAME=`uci get configurator.@crawl[0].nickname`
|
||||
CRAWL_PASSWORD=`uci get configurator.@crawl[0].password`
|
||||
else
|
||||
. `dirname $0`/configurator_config
|
||||
fi
|
||||
|
||||
if [ "$API_IPV4_ADRESS" != "1" ]; then
|
||||
netmon_api=$API_IPV4_ADRESS
|
||||
else
|
||||
netmon_api="[$API_IPV6_ADRESS"%"$API_IPV6_INTERFACE]"
|
||||
fi
|
||||
|
||||
if [ "$SCRIPT_ERROR_LEVEL" -gt "1" ]; then
|
||||
err() {
|
||||
echo "$(date) [configurator]: $1" >> $SCRIPT_LOGFILE
|
||||
}
|
||||
else
|
||||
err() {
|
||||
:
|
||||
}
|
||||
fi
|
||||
|
||||
sync_hostname() {
|
||||
err "Syncing hostname"
|
||||
api_return=$(wget -T $API_TIMEOUT -q -O - "http://$netmon_api/api_csv_configurator.php?section=get_hostname&authentificationmethod=$CRAWL_METHOD&nickname=$CRAWL_NICKNAME&password=$CRAWL_PASSWORD&router_auto_update_hash=$CRAWL_UPDATE_HASH&router_id=$CRAWL_ROUTER_ID")
|
||||
ret=${api_return%%,*}
|
||||
if [ "$ret" != "success" ]; then
|
||||
err "Ther was an error fetching the hostname"
|
||||
exit 0
|
||||
elif [ "$ret" = "success" ]; then
|
||||
netmon_hostname=${api_return%,*}
|
||||
netmon_hostname=${netmon_hostname#*,}
|
||||
|
||||
#check for valid hostname as specified in rfc 1123
|
||||
#see http://stackoverflow.com/a/3824105
|
||||
regex='^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])'
|
||||
regex=$regex'(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$'
|
||||
if [ "${#netmon_hostname}" -le "255" ]; then
|
||||
if echo -n $netmon_hostname | egrep -q "$regex"; then
|
||||
if [ "$netmon_hostname" != "`cat /proc/sys/kernel/hostname`" ]; then
|
||||
err "Setting new hostname: $netmon_hostname"
|
||||
uci set system.@system[0].hostname=$netmon_hostname
|
||||
uci commit
|
||||
echo $netmon_hostname > /proc/sys/kernel/hostname
|
||||
else
|
||||
err "Hostname is up to date"
|
||||
fi
|
||||
else
|
||||
err "Hostname ist malformed"
|
||||
exit 0
|
||||
fi
|
||||
else
|
||||
err "Hostname exceeds the maximum length of 255 characters"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "$SCRIPT_SYNC_HOSTNAME" = "1" ]; then
|
||||
sync_hostname
|
||||
fi
|
Loading…
Reference in New Issue