diff options
Diffstat (limited to 'lava-master/scripts')
-rwxr-xr-x | lava-master/scripts/setup.sh | 74 | ||||
-rwxr-xr-x | lava-master/scripts/start.sh | 37 | ||||
-rwxr-xr-x | lava-master/scripts/stop.sh | 10 |
3 files changed, 121 insertions, 0 deletions
diff --git a/lava-master/scripts/setup.sh b/lava-master/scripts/setup.sh new file mode 100755 index 0000000..011a9c7 --- /dev/null +++ b/lava-master/scripts/setup.sh @@ -0,0 +1,74 @@ +#!/bin/bash + +if [ -e /root/lava-users ];then + for ut in $(ls /root/lava-users) + do + # User is the filename + USER=$ut + . /root/lava-users/$ut + if [ -z "$PASSWORD" -o "$PASSWORD" = "$TOKEN" ];then + echo "Generating password..." + #Could be very long, should be avoided + PASSWORD=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1) + fi + echo "Adding username $USER DEBUG(with $TOKEN / $PASSWORD)" + lava-server manage users add --passwd $PASSWORD $USER || exit 1 + if [ ! -z "$TOKEN" ];then + lava-server manage tokens add --user $USER --secret $TOKEN || exit 1 + fi + done +fi + +if [ -e /root/lava-callback-tokens ];then + for ct in $(ls /root/lava-callback-tokens) + do + . /root/lava-callback-tokens/$ct + if [ -z "$USER" ];then + echo "Missing USER" + exit 1 + fi + if [ -z "$TOKEN" ];then + echo "Missing TOKEN for $USER" + exit 1 + fi + if [ -z "$DESCRIPTION" ];then + echo "Missing DESCRIPTION for $USER" + exit 1 + fi + echo "Adding $USER ($DESCRIPTION) DEBUG($TOKEN)" + lava-server manage tokens add --user $USER --secret $TOKEN --description $DESCRIPTION || exit 1 + done +fi + +# This directory is used for storing device-types already added +mkdir -p /root/.lavadocker/ +if [ -e /root/device-types ];then + for i in $(ls /root/device-types/*yaml) + do + cp /root/device-types/$i /etc/lava-server/dispatcher-config/device-types/ + devicetype=$(basename $i) + lava-server manage device-types add $devicetype || exit 1 + touch /root/.lavadocker/devicetype-$devicetype + done +fi + +for worker in $(ls /root/devices/) +do + echo "Adding worker $worker" + lava-server manage workers add $worker || exit $? + for device in $(ls /root/devices/$worker/) + do + devicename=$(echo $device | sed 's,.jinja2,,') + devicetype=$(grep -h extends /root/devices/$worker/$device| grep -o '[a-zA-Z0-9_-]*.jinja2' | sed 's,.jinja2,,') + if [ -e /root/.lavadocker/devicetype-$devicetype ];then + echo "Skip devicetype $devicetype" + else + echo "Add devicetype $devicetype" + lava-server manage device-types add $devicetype || exit $? + touch /root/.lavadocker/devicetype-$devicetype + fi + echo "Add device $devicename on $worker" + cp /root/devices/$worker/$device /etc/lava-server/dispatcher-config/devices/ || exit $? + lava-server manage devices add --device-type $devicetype --worker $worker $devicename || exit $? + done +done diff --git a/lava-master/scripts/start.sh b/lava-master/scripts/start.sh new file mode 100755 index 0000000..f4cc4eb --- /dev/null +++ b/lava-master/scripts/start.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +postgres-ready () { + echo "Waiting for lavaserver database to be active" + while (( $(ps -ef | grep -v grep | grep postgres | grep lavaserver | wc -l) == 0 )) + do + echo -n "." + sleep 1 + done + echo + echo "[ ok ] LAVA server ready" +} + +start () { + echo "Starting $1" + if (( $(ps -ef | grep -v grep | grep -v add_device | grep -v dispatcher-config | grep "$1" | wc -l) > 0 )) + then + echo "$1 appears to be running" + else + service "$1" start + fi +} + +#remove lava-pid files incase the image is stored without first stopping the services +rm -f /var/run/lava-*.pid 2> /dev/null + +start postgresql +start apache2 +start lava-server +start lava-master +start lava-coordinator +start lava-slave +start lava-server-gunicorn +start tftpd-hpa + +postgres-ready +service apache2 reload #added after the website not running a few times on boot diff --git a/lava-master/scripts/stop.sh b/lava-master/scripts/stop.sh new file mode 100755 index 0000000..ccf30fb --- /dev/null +++ b/lava-master/scripts/stop.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +service lava-master stop +service lava-slave stop +service lava-server stop +service lava-coordinator stop +service lava-server-gunicorn stop +service apache2 stop +service postgresql stop +service tftpd-hpa stop |