From b8f561127a2ba09f3c2e49194d8d63b6960023b2 Mon Sep 17 00:00:00 2001 From: Corentin LABBE Date: Mon, 16 Jul 2018 14:26:44 +0200 Subject: Split dockerfile in two images The process of building LAVA is hard to maintain. But since we need to be able to go back in time (or just stay longer with a specific version) we need a way to keep a LAVA version. For achieving this, we build a minimal image with just LAVA and tag it with the version of LAVA inside. --- lava-master-base/Dockerfile | 56 +++++++++++++++ lava-master-base/scripts/lava-logs | 97 ++++++++++++++++++++++++++ lava-master-base/scripts/lava-master | 97 ++++++++++++++++++++++++++ lava-master-base/scripts/lava-server-gunicorn | 99 +++++++++++++++++++++++++++ lava-master-base/scripts/lava-slave | 98 ++++++++++++++++++++++++++ lava-master-base/scripts/start.sh | 40 +++++++++++ lava-master-base/scripts/stop.sh | 10 +++ lava-master/Dockerfile | 68 +----------------- lava-master/scripts/lava-logs | 97 -------------------------- lava-master/scripts/lava-master | 97 -------------------------- lava-master/scripts/lava-server-gunicorn | 99 --------------------------- lava-master/scripts/lava-slave | 98 -------------------------- lava-master/scripts/start.sh | 40 ----------- lava-master/scripts/stop.sh | 10 --- lava-slave-base/Dockerfile | 44 ++++++++++++ lava-slave-base/scripts/lava-slave | 98 ++++++++++++++++++++++++++ lava-slave-base/scripts/start.sh | 46 +++++++++++++ lava-slave-base/scripts/stop.sh | 3 + lava-slave/Dockerfile | 49 ++----------- lava-slave/scripts/lava-slave | 98 -------------------------- lava-slave/scripts/start.sh | 46 ------------- lava-slave/scripts/stop.sh | 3 - 22 files changed, 693 insertions(+), 700 deletions(-) create mode 100644 lava-master-base/Dockerfile create mode 100644 lava-master-base/scripts/lava-logs create mode 100644 lava-master-base/scripts/lava-master create mode 100644 lava-master-base/scripts/lava-server-gunicorn create mode 100644 lava-master-base/scripts/lava-slave create mode 100755 lava-master-base/scripts/start.sh create mode 100755 lava-master-base/scripts/stop.sh delete mode 100644 lava-master/scripts/lava-logs delete mode 100644 lava-master/scripts/lava-master delete mode 100644 lava-master/scripts/lava-server-gunicorn delete mode 100644 lava-master/scripts/lava-slave delete mode 100755 lava-master/scripts/start.sh delete mode 100755 lava-master/scripts/stop.sh create mode 100644 lava-slave-base/Dockerfile create mode 100644 lava-slave-base/scripts/lava-slave create mode 100755 lava-slave-base/scripts/start.sh create mode 100755 lava-slave-base/scripts/stop.sh delete mode 100644 lava-slave/scripts/lava-slave delete mode 100755 lava-slave/scripts/start.sh delete mode 100755 lava-slave/scripts/stop.sh diff --git a/lava-master-base/Dockerfile b/lava-master-base/Dockerfile new file mode 100644 index 0000000..ef4ff2f --- /dev/null +++ b/lava-master-base/Dockerfile @@ -0,0 +1,56 @@ +FROM bitnami/minideb:stretch + +RUN echo "deb http://deb.debian.org/debian/ stretch-backports main" >> /etc/apt/sources.list + +RUN apt-get update + +# Install debian packages used by the container +# Configure apache to run the lava server +# Log the hostname used during install for the slave name +RUN echo 'lava-server lava-server/instance-name string lava-docker-instance' | debconf-set-selections \ + && echo 'locales locales/locales_to_be_generated multiselect C.UTF-8 UTF-8, en_US.UTF-8 UTF-8 ' | debconf-set-selections \ + && echo 'locales locales/default_environment_locale select en_US.UTF-8' | debconf-set-selections + +# e2fsprogs is for libguestfs +RUN DEBIAN_FRONTEND=noninteractive apt-get -y install \ + locales \ + postgresql \ + screen \ + sudo \ + wget \ + e2fsprogs \ + gnupg \ + vim + +RUN wget http://images.validation.linaro.org/production-repo/production-repo.key.asc \ + && apt-key add production-repo.key.asc \ + && echo 'deb http://images.validation.linaro.org/production-repo/ stretch-backports main' > /etc/apt/sources.list.d/lava.list \ + && apt-get clean && apt-get update + +RUN service postgresql start \ + && DEBIAN_FRONTEND=noninteractive apt-get -y install lava \ + && sudo -u postgres psql lavaserver -c "DELETE FROM lava_scheduler_app_worker WHERE lava_scheduler_app_worker.hostname = 'example.com';" \ + && service postgresql stop + +RUN a2enmod proxy \ + && a2enmod proxy_http \ + && a2dissite 000-default \ + && a2ensite lava-server + +# Add services helper utilities to start and stop LAVA +COPY scripts/stop.sh . +COPY scripts/start.sh . +COPY scripts/lava-logs /etc/init.d/ +RUN chmod 755 /etc/init.d/lava-logs +COPY scripts/lava-master /etc/init.d/ +RUN chmod 755 /etc/init.d/lava-master +COPY scripts/lava-slave /etc/init.d/ +RUN chmod 755 /etc/init.d/lava-slave +COPY scripts/lava-server-gunicorn /etc/init.d/ +RUN chmod 755 /etc/init.d/lava-server-gunicorn + +RUN dpkg -l | grep lava + +EXPOSE 80 3079 5555 5556 + +CMD /start.sh && while [ true ];do sleep 365d; done diff --git a/lava-master-base/scripts/lava-logs b/lava-master-base/scripts/lava-logs new file mode 100644 index 0000000..69b2f82 --- /dev/null +++ b/lava-master-base/scripts/lava-logs @@ -0,0 +1,97 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: lava-logs +# Required-Start: $time +# Required-Stop: $time +# X-Stop-After: sendsigs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: lava-logs +# Description: lava-logs +### END INIT INFO + +# +# Author: Corentin LABBE +# + +# PATH should only include /usr/* if it runs after the mountnfs.sh script +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC="lava-logs" +NAME=lava-logs +LOGLEVEL=DEBUG + +DAEMON=/usr/bin/lava-server +PIDFILE=/var/run/$NAME.pid +SCRIPTNAME=/etc/init.d/$NAME + +# Exit if the package is not installed +[ -x "$DAEMON" ] || exit 0 + +# Read configuration variable file if it is present +[ -r /etc/default/$NAME ] && . /etc/default/$NAME + +[ -r /etc/lava-server/$NAME ] && . /etc/lava-server/$NAME + +# Define LSB log_* functions. +. /lib/lsb/init-functions + +do_start() +{ + # Return + # 0 if daemon has been started + # 1 if daemon was already running + # other if daemon could not be started or a failure occured + start-stop-daemon --start --quiet --background --pidfile $PIDFILE --exec $DAEMON -- manage lava-logs --level $LOGLEVEL $SOCKET $MASTER_SOCKET $IPV6 $ENCRYPT $MASTER_CERT $SLAVES_CERTS +} + +do_stop() +{ + # Return + # 0 if daemon has been stopped + # 1 if daemon was already stopped + # other if daemon could not be stopped or a failure occurred + start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --exec $DAEMON +} + +case "$1" in + start) + log_daemon_msg "Starting $DESC" "$NAME" + do_start + case "$?" in + 0) + log_end_msg 0 ;; + 1) log_progress_msg "already started" + log_end_msg 0 ;; + *) log_end_msg 1 ;; + esac + + ;; + stop) + log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + case "$?" in + 0) log_end_msg 0 ;; + 1) log_progress_msg "already stopped" + log_end_msg 0 ;; + *) log_end_msg 1 ;; + esac + + ;; + restart|force-reload) + $0 stop + $0 start + ;; + try-restart) + $0 status >/dev/null 2>&1 && $0 restart + ;; + status) + status_of_proc -p $PIDFILE $DAEMON $RSYSLOGD && exit 0 || exit $? + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|try-restart|status}" >&2 + exit 3 + ;; +esac + +: + diff --git a/lava-master-base/scripts/lava-master b/lava-master-base/scripts/lava-master new file mode 100644 index 0000000..3bd75aa --- /dev/null +++ b/lava-master-base/scripts/lava-master @@ -0,0 +1,97 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: lava-master +# Required-Start: $time +# Required-Stop: $time +# X-Stop-After: sendsigs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: lava-master +# Description: lava-master +### END INIT INFO + +# +# Author: Corentin LABBE +# + +# PATH should only include /usr/* if it runs after the mountnfs.sh script +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC="lava-master" +NAME=lava-master +LOGLEVEL=DEBUG + +DAEMON=/usr/bin/lava-server +PIDFILE=/var/run/$NAME.pid +SCRIPTNAME=/etc/init.d/$NAME + +# Exit if the package is not installed +[ -x "$DAEMON" ] || exit 0 + +# Read configuration variable file if it is present +[ -r /etc/default/$NAME ] && . /etc/default/$NAME + +[ -r /etc/lava-server/$NAME ] && . /etc/lava-server/$NAME + +# Define LSB log_* functions. +. /lib/lsb/init-functions + +do_start() +{ + # Return + # 0 if daemon has been started + # 1 if daemon was already running + # other if daemon could not be started or a failure occured + start-stop-daemon --start --quiet --background --pidfile $PIDFILE --exec $DAEMON -- manage lava-master --level $LOGLEVEL $SOCKET $MASTER_SOCKET $IPV6 $ENCRYPT $MASTER_CERT $SLAVES_CERTS +} + +do_stop() +{ + # Return + # 0 if daemon has been stopped + # 1 if daemon was already stopped + # other if daemon could not be stopped or a failure occurred + start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --exec $DAEMON +} + +case "$1" in + start) + log_daemon_msg "Starting $DESC" "$NAME" + do_start + case "$?" in + 0) + log_end_msg 0 ;; + 1) log_progress_msg "already started" + log_end_msg 0 ;; + *) log_end_msg 1 ;; + esac + + ;; + stop) + log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + case "$?" in + 0) log_end_msg 0 ;; + 1) log_progress_msg "already stopped" + log_end_msg 0 ;; + *) log_end_msg 1 ;; + esac + + ;; + restart|force-reload) + $0 stop + $0 start + ;; + try-restart) + $0 status >/dev/null 2>&1 && $0 restart + ;; + status) + status_of_proc -p $PIDFILE $DAEMON $RSYSLOGD && exit 0 || exit $? + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|try-restart|status}" >&2 + exit 3 + ;; +esac + +: + diff --git a/lava-master-base/scripts/lava-server-gunicorn b/lava-master-base/scripts/lava-server-gunicorn new file mode 100644 index 0000000..217ad57 --- /dev/null +++ b/lava-master-base/scripts/lava-server-gunicorn @@ -0,0 +1,99 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: lava-server-gunicorn +# Required-Start: $time +# Required-Stop: $time +# X-Stop-After: sendsigs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: lava-server-gunicorn +# Description: lava-server-gunicorn +### END INIT INFO + +# +# Author: Corentin LABBE +# + +# PATH should only include /usr/* if it runs after the mountnfs.sh script +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC="lava-server-gunicorn" +NAME=lava-server-gunicorn +LOGLEVEL=DEBUG +WORKERS=4 +LOGFILE=/var/log/lava-server/gunicorn.log +RELOAD= +DAEMON=/usr/bin/gunicorn3 +PIDFILE=/var/run/$NAME.pid +SCRIPTNAME=/etc/init.d/$NAME + +# Exit if the package is not installed +[ -x "$DAEMON" ] || exit 0 + +# Read configuration variable file if it is present +[ -r /etc/default/$NAME ] && . /etc/default/$NAME + +[ -r /etc/lava-server/$NAME ] && . /etc/lava-server/$NAME + +# Define LSB log_* functions. +. /lib/lsb/init-functions + +do_start() +{ + # Return + # 0 if daemon has been started + # 1 if daemon was already running + # other if daemon could not be started or a failure occured + start-stop-daemon --start --quiet --background --pidfile $PIDFILE --exec $DAEMON -- lava_server.wsgi --log-level $LOGLEVEL --log-file $LOGFILE -u lavaserver -g lavaserver --workers $WORKERS $RELOAD +} + +do_stop() +{ + # Return + # 0 if daemon has been stopped + # 1 if daemon was already stopped + # other if daemon could not be stopped or a failure occurred + start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --exec $DAEMON +} + +case "$1" in + start) + log_daemon_msg "Starting $DESC" "$NAME" + do_start + case "$?" in + 0) + log_end_msg 0 ;; + 1) log_progress_msg "already started" + log_end_msg 0 ;; + *) log_end_msg 1 ;; + esac + + ;; + stop) + log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + case "$?" in + 0) log_end_msg 0 ;; + 1) log_progress_msg "already stopped" + log_end_msg 0 ;; + *) log_end_msg 1 ;; + esac + + ;; + restart|force-reload) + $0 stop + $0 start + ;; + try-restart) + $0 status >/dev/null 2>&1 && $0 restart + ;; + status) + status_of_proc -p $PIDFILE $DAEMON $RSYSLOGD && exit 0 || exit $? + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|try-restart|status}" >&2 + exit 3 + ;; +esac + +: + diff --git a/lava-master-base/scripts/lava-slave b/lava-master-base/scripts/lava-slave new file mode 100644 index 0000000..3ba00f7 --- /dev/null +++ b/lava-master-base/scripts/lava-slave @@ -0,0 +1,98 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: lava-slave +# Required-Start: $time +# Required-Stop: $time +# X-Stop-After: sendsigs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: lava-slave +# Description: lava-slave +### END INIT INFO + +# +# Author: Corentin LABBE +# + +# PATH should only include /usr/* if it runs after the mountnfs.sh script +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC="lava-slave" +NAME=lava-slave + +DAEMON=/usr/bin/lava-slave +PIDFILE=/var/run/$NAME.pid +SCRIPTNAME=/etc/init.d/$NAME +MASTER_URL=tcp://localhost:5556 +LOGGER_URL=tcp://localhost:5555 +LOGLEVEL=DEBUG + +# Exit if the package is not installed +[ -x "$DAEMON" ] || exit 0 + +# Read configuration variable file if it is present +[ -r /etc/default/$NAME ] && . /etc/default/$NAME +[ -r /etc/lava-dispatcher/$NAME ] && . /etc/lava-dispatcher/$NAME + +# Define LSB log_* functions. +. /lib/lsb/init-functions + +do_start() +{ + # Return + # 0 if daemon has been started + # 1 if daemon was already running + # other if daemon could not be started or a failure occured + start-stop-daemon --start --quiet --background --pidfile $PIDFILE --exec $DAEMON -- --level $LOGLEVEL --master $MASTER_URL --socket-addr $LOGGER_URL $IPV6 $ENCRYPT $MASTER_CERT $SLAVE_CERT $HOSTNAME +} + +do_stop() +{ + # Return + # 0 if daemon has been stopped + # 1 if daemon was already stopped + # other if daemon could not be stopped or a failure occurred + start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --exec $DAEMON +} + +case "$1" in + start) + log_daemon_msg "Starting $DESC" "$NAME" + do_start + case "$?" in + 0) + log_end_msg 0 ;; + 1) log_progress_msg "already started" + log_end_msg 0 ;; + *) log_end_msg 1 ;; + esac + + ;; + stop) + log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + case "$?" in + 0) log_end_msg 0 ;; + 1) log_progress_msg "already stopped" + log_end_msg 0 ;; + *) log_end_msg 1 ;; + esac + + ;; + restart|force-reload) + $0 stop + $0 start + ;; + try-restart) + $0 status >/dev/null 2>&1 && $0 restart + ;; + status) + status_of_proc -p $PIDFILE $DAEMON $RSYSLOGD && exit 0 || exit $? + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|try-restart|status}" >&2 + exit 3 + ;; +esac + +: + diff --git a/lava-master-base/scripts/start.sh b/lava-master-base/scripts/start.sh new file mode 100755 index 0000000..c34fe34 --- /dev/null +++ b/lava-master-base/scripts/start.sh @@ -0,0 +1,40 @@ +#!/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 + +/etc/init.d/postgresql start + +/setup.sh || exit $? + +start apache2 || exit $? +start lava-logs || exit $? +start lava-master || exit $? +start lava-coordinator || exit $? +start lava-slave || exit $? +start lava-server-gunicorn || exit $? +start tftpd-hpa || exit $? + +postgres-ready +service apache2 reload #added after the website not running a few times on boot diff --git a/lava-master-base/scripts/stop.sh b/lava-master-base/scripts/stop.sh new file mode 100755 index 0000000..35d503f --- /dev/null +++ b/lava-master-base/scripts/stop.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +service lava-master stop +service lava-slave stop +service lava-logs stop +service lava-coordinator stop +service lava-server-gunicorn stop +service apache2 stop +/etc/init.d/postgresql stop +service tftpd-hpa stop diff --git a/lava-master/Dockerfile b/lava-master/Dockerfile index 3299922..100b366 100644 --- a/lava-master/Dockerfile +++ b/lava-master/Dockerfile @@ -1,79 +1,13 @@ -FROM bitnami/minideb:stretch - -RUN echo "deb http://ftp.fr.debian.org/debian/ stretch-backports main" >> /etc/apt/sources.list - -RUN apt-get update - -# Install debian packages used by the container -# Configure apache to run the lava server -# Log the hostname used during install for the slave name -RUN echo 'lava-server lava-server/instance-name string lava-docker-instance' | debconf-set-selections \ - && echo 'locales locales/locales_to_be_generated multiselect C.UTF-8 UTF-8, en_US.UTF-8 UTF-8 ' | debconf-set-selections \ - && echo 'locales locales/default_environment_locale select en_US.UTF-8' | debconf-set-selections - -# e2fsprogs is for libguestfs -RUN DEBIAN_FRONTEND=noninteractive apt-get -y install \ - locales \ - postgresql \ - screen \ - sudo \ - wget \ - e2fsprogs \ - gnupg \ - vim - -RUN wget http://images.validation.linaro.org/production-repo/production-repo.key.asc \ - && apt-key add production-repo.key.asc \ - && echo 'deb http://images.validation.linaro.org/production-repo/ stretch-backports main' > /etc/apt/sources.list.d/lava.list \ - && apt-get clean && apt-get update - -RUN DEBIAN_FRONTEND=noninteractive apt-get -y install \ - qemu-system \ - qemu-system-arm \ - qemu-system-i386 \ - ser2net \ - u-boot-tools \ - python-setproctitle - -RUN if [ "$(uname -m)" = "x86_64" -o "$(uname -m)" = "x86" ] ;then apt-get -y install qemu-kvm ; fi - -#RUN service postgresql start \ -# && DEBIAN_FRONTEND=noninteractive apt-get -y install \ -# lava \ -# && /stop.sh - -# Install latest -COPY scripts/build-lava / -RUN bash /build-lava lava-dispatcher 2018.4 2018.4-1 -RUN /etc/init.d/postgresql start && \ - bash /build-lava lava-server 2018.4 2018.4-1 && \ - /etc/init.d/postgresql stop +FROM baylibre/lava-master-base:latest COPY backup / -RUN a2enmod proxy \ - && a2enmod proxy_http \ - && a2dissite 000-default \ - && a2ensite lava-server - COPY configs/tftpd-hpa /etc/default/tftpd-hpa RUN git clone https://github.com/BayLibre/lava-healthchecks.git RUN cp lava-healthchecks/health-checks/* /etc/lava-server/dispatcher-config/health-checks/ COPY health-checks/* /etc/lava-server/dispatcher-config/health-checks/ -# Add services helper utilities to start and stop LAVA -COPY scripts/stop.sh . -COPY scripts/start.sh . -COPY scripts/lava-logs /etc/init.d/ -RUN chmod 755 /etc/init.d/lava-logs -COPY scripts/lava-master /etc/init.d/ -RUN chmod 755 /etc/init.d/lava-master -COPY scripts/lava-slave /etc/init.d/ -RUN chmod 755 /etc/init.d/lava-slave -COPY scripts/lava-server-gunicorn /etc/init.d/ -RUN chmod 755 /etc/init.d/lava-server-gunicorn - COPY devices/ /root/devices/ COPY device-types/ /root/device-types/ COPY users/ /root/lava-users/ diff --git a/lava-master/scripts/lava-logs b/lava-master/scripts/lava-logs deleted file mode 100644 index 69b2f82..0000000 --- a/lava-master/scripts/lava-logs +++ /dev/null @@ -1,97 +0,0 @@ -#! /bin/sh -### BEGIN INIT INFO -# Provides: lava-logs -# Required-Start: $time -# Required-Stop: $time -# X-Stop-After: sendsigs -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: lava-logs -# Description: lava-logs -### END INIT INFO - -# -# Author: Corentin LABBE -# - -# PATH should only include /usr/* if it runs after the mountnfs.sh script -PATH=/sbin:/usr/sbin:/bin:/usr/bin -DESC="lava-logs" -NAME=lava-logs -LOGLEVEL=DEBUG - -DAEMON=/usr/bin/lava-server -PIDFILE=/var/run/$NAME.pid -SCRIPTNAME=/etc/init.d/$NAME - -# Exit if the package is not installed -[ -x "$DAEMON" ] || exit 0 - -# Read configuration variable file if it is present -[ -r /etc/default/$NAME ] && . /etc/default/$NAME - -[ -r /etc/lava-server/$NAME ] && . /etc/lava-server/$NAME - -# Define LSB log_* functions. -. /lib/lsb/init-functions - -do_start() -{ - # Return - # 0 if daemon has been started - # 1 if daemon was already running - # other if daemon could not be started or a failure occured - start-stop-daemon --start --quiet --background --pidfile $PIDFILE --exec $DAEMON -- manage lava-logs --level $LOGLEVEL $SOCKET $MASTER_SOCKET $IPV6 $ENCRYPT $MASTER_CERT $SLAVES_CERTS -} - -do_stop() -{ - # Return - # 0 if daemon has been stopped - # 1 if daemon was already stopped - # other if daemon could not be stopped or a failure occurred - start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --exec $DAEMON -} - -case "$1" in - start) - log_daemon_msg "Starting $DESC" "$NAME" - do_start - case "$?" in - 0) - log_end_msg 0 ;; - 1) log_progress_msg "already started" - log_end_msg 0 ;; - *) log_end_msg 1 ;; - esac - - ;; - stop) - log_daemon_msg "Stopping $DESC" "$NAME" - do_stop - case "$?" in - 0) log_end_msg 0 ;; - 1) log_progress_msg "already stopped" - log_end_msg 0 ;; - *) log_end_msg 1 ;; - esac - - ;; - restart|force-reload) - $0 stop - $0 start - ;; - try-restart) - $0 status >/dev/null 2>&1 && $0 restart - ;; - status) - status_of_proc -p $PIDFILE $DAEMON $RSYSLOGD && exit 0 || exit $? - ;; - *) - echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|try-restart|status}" >&2 - exit 3 - ;; -esac - -: - diff --git a/lava-master/scripts/lava-master b/lava-master/scripts/lava-master deleted file mode 100644 index 3bd75aa..0000000 --- a/lava-master/scripts/lava-master +++ /dev/null @@ -1,97 +0,0 @@ -#! /bin/sh -### BEGIN INIT INFO -# Provides: lava-master -# Required-Start: $time -# Required-Stop: $time -# X-Stop-After: sendsigs -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: lava-master -# Description: lava-master -### END INIT INFO - -# -# Author: Corentin LABBE -# - -# PATH should only include /usr/* if it runs after the mountnfs.sh script -PATH=/sbin:/usr/sbin:/bin:/usr/bin -DESC="lava-master" -NAME=lava-master -LOGLEVEL=DEBUG - -DAEMON=/usr/bin/lava-server -PIDFILE=/var/run/$NAME.pid -SCRIPTNAME=/etc/init.d/$NAME - -# Exit if the package is not installed -[ -x "$DAEMON" ] || exit 0 - -# Read configuration variable file if it is present -[ -r /etc/default/$NAME ] && . /etc/default/$NAME - -[ -r /etc/lava-server/$NAME ] && . /etc/lava-server/$NAME - -# Define LSB log_* functions. -. /lib/lsb/init-functions - -do_start() -{ - # Return - # 0 if daemon has been started - # 1 if daemon was already running - # other if daemon could not be started or a failure occured - start-stop-daemon --start --quiet --background --pidfile $PIDFILE --exec $DAEMON -- manage lava-master --level $LOGLEVEL $SOCKET $MASTER_SOCKET $IPV6 $ENCRYPT $MASTER_CERT $SLAVES_CERTS -} - -do_stop() -{ - # Return - # 0 if daemon has been stopped - # 1 if daemon was already stopped - # other if daemon could not be stopped or a failure occurred - start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --exec $DAEMON -} - -case "$1" in - start) - log_daemon_msg "Starting $DESC" "$NAME" - do_start - case "$?" in - 0) - log_end_msg 0 ;; - 1) log_progress_msg "already started" - log_end_msg 0 ;; - *) log_end_msg 1 ;; - esac - - ;; - stop) - log_daemon_msg "Stopping $DESC" "$NAME" - do_stop - case "$?" in - 0) log_end_msg 0 ;; - 1) log_progress_msg "already stopped" - log_end_msg 0 ;; - *) log_end_msg 1 ;; - esac - - ;; - restart|force-reload) - $0 stop - $0 start - ;; - try-restart) - $0 status >/dev/null 2>&1 && $0 restart - ;; - status) - status_of_proc -p $PIDFILE $DAEMON $RSYSLOGD && exit 0 || exit $? - ;; - *) - echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|try-restart|status}" >&2 - exit 3 - ;; -esac - -: - diff --git a/lava-master/scripts/lava-server-gunicorn b/lava-master/scripts/lava-server-gunicorn deleted file mode 100644 index 217ad57..0000000 --- a/lava-master/scripts/lava-server-gunicorn +++ /dev/null @@ -1,99 +0,0 @@ -#! /bin/sh -### BEGIN INIT INFO -# Provides: lava-server-gunicorn -# Required-Start: $time -# Required-Stop: $time -# X-Stop-After: sendsigs -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: lava-server-gunicorn -# Description: lava-server-gunicorn -### END INIT INFO - -# -# Author: Corentin LABBE -# - -# PATH should only include /usr/* if it runs after the mountnfs.sh script -PATH=/sbin:/usr/sbin:/bin:/usr/bin -DESC="lava-server-gunicorn" -NAME=lava-server-gunicorn -LOGLEVEL=DEBUG -WORKERS=4 -LOGFILE=/var/log/lava-server/gunicorn.log -RELOAD= -DAEMON=/usr/bin/gunicorn3 -PIDFILE=/var/run/$NAME.pid -SCRIPTNAME=/etc/init.d/$NAME - -# Exit if the package is not installed -[ -x "$DAEMON" ] || exit 0 - -# Read configuration variable file if it is present -[ -r /etc/default/$NAME ] && . /etc/default/$NAME - -[ -r /etc/lava-server/$NAME ] && . /etc/lava-server/$NAME - -# Define LSB log_* functions. -. /lib/lsb/init-functions - -do_start() -{ - # Return - # 0 if daemon has been started - # 1 if daemon was already running - # other if daemon could not be started or a failure occured - start-stop-daemon --start --quiet --background --pidfile $PIDFILE --exec $DAEMON -- lava_server.wsgi --log-level $LOGLEVEL --log-file $LOGFILE -u lavaserver -g lavaserver --workers $WORKERS $RELOAD -} - -do_stop() -{ - # Return - # 0 if daemon has been stopped - # 1 if daemon was already stopped - # other if daemon could not be stopped or a failure occurred - start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --exec $DAEMON -} - -case "$1" in - start) - log_daemon_msg "Starting $DESC" "$NAME" - do_start - case "$?" in - 0) - log_end_msg 0 ;; - 1) log_progress_msg "already started" - log_end_msg 0 ;; - *) log_end_msg 1 ;; - esac - - ;; - stop) - log_daemon_msg "Stopping $DESC" "$NAME" - do_stop - case "$?" in - 0) log_end_msg 0 ;; - 1) log_progress_msg "already stopped" - log_end_msg 0 ;; - *) log_end_msg 1 ;; - esac - - ;; - restart|force-reload) - $0 stop - $0 start - ;; - try-restart) - $0 status >/dev/null 2>&1 && $0 restart - ;; - status) - status_of_proc -p $PIDFILE $DAEMON $RSYSLOGD && exit 0 || exit $? - ;; - *) - echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|try-restart|status}" >&2 - exit 3 - ;; -esac - -: - diff --git a/lava-master/scripts/lava-slave b/lava-master/scripts/lava-slave deleted file mode 100644 index 3ba00f7..0000000 --- a/lava-master/scripts/lava-slave +++ /dev/null @@ -1,98 +0,0 @@ -#! /bin/sh -### BEGIN INIT INFO -# Provides: lava-slave -# Required-Start: $time -# Required-Stop: $time -# X-Stop-After: sendsigs -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: lava-slave -# Description: lava-slave -### END INIT INFO - -# -# Author: Corentin LABBE -# - -# PATH should only include /usr/* if it runs after the mountnfs.sh script -PATH=/sbin:/usr/sbin:/bin:/usr/bin -DESC="lava-slave" -NAME=lava-slave - -DAEMON=/usr/bin/lava-slave -PIDFILE=/var/run/$NAME.pid -SCRIPTNAME=/etc/init.d/$NAME -MASTER_URL=tcp://localhost:5556 -LOGGER_URL=tcp://localhost:5555 -LOGLEVEL=DEBUG - -# Exit if the package is not installed -[ -x "$DAEMON" ] || exit 0 - -# Read configuration variable file if it is present -[ -r /etc/default/$NAME ] && . /etc/default/$NAME -[ -r /etc/lava-dispatcher/$NAME ] && . /etc/lava-dispatcher/$NAME - -# Define LSB log_* functions. -. /lib/lsb/init-functions - -do_start() -{ - # Return - # 0 if daemon has been started - # 1 if daemon was already running - # other if daemon could not be started or a failure occured - start-stop-daemon --start --quiet --background --pidfile $PIDFILE --exec $DAEMON -- --level $LOGLEVEL --master $MASTER_URL --socket-addr $LOGGER_URL $IPV6 $ENCRYPT $MASTER_CERT $SLAVE_CERT $HOSTNAME -} - -do_stop() -{ - # Return - # 0 if daemon has been stopped - # 1 if daemon was already stopped - # other if daemon could not be stopped or a failure occurred - start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --exec $DAEMON -} - -case "$1" in - start) - log_daemon_msg "Starting $DESC" "$NAME" - do_start - case "$?" in - 0) - log_end_msg 0 ;; - 1) log_progress_msg "already started" - log_end_msg 0 ;; - *) log_end_msg 1 ;; - esac - - ;; - stop) - log_daemon_msg "Stopping $DESC" "$NAME" - do_stop - case "$?" in - 0) log_end_msg 0 ;; - 1) log_progress_msg "already stopped" - log_end_msg 0 ;; - *) log_end_msg 1 ;; - esac - - ;; - restart|force-reload) - $0 stop - $0 start - ;; - try-restart) - $0 status >/dev/null 2>&1 && $0 restart - ;; - status) - status_of_proc -p $PIDFILE $DAEMON $RSYSLOGD && exit 0 || exit $? - ;; - *) - echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|try-restart|status}" >&2 - exit 3 - ;; -esac - -: - diff --git a/lava-master/scripts/start.sh b/lava-master/scripts/start.sh deleted file mode 100755 index c34fe34..0000000 --- a/lava-master/scripts/start.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/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 - -/etc/init.d/postgresql start - -/setup.sh || exit $? - -start apache2 || exit $? -start lava-logs || exit $? -start lava-master || exit $? -start lava-coordinator || exit $? -start lava-slave || exit $? -start lava-server-gunicorn || exit $? -start tftpd-hpa || exit $? - -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 deleted file mode 100755 index 35d503f..0000000 --- a/lava-master/scripts/stop.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -service lava-master stop -service lava-slave stop -service lava-logs stop -service lava-coordinator stop -service lava-server-gunicorn stop -service apache2 stop -/etc/init.d/postgresql stop -service tftpd-hpa stop diff --git a/lava-slave-base/Dockerfile b/lava-slave-base/Dockerfile new file mode 100644 index 0000000..17286ca --- /dev/null +++ b/lava-slave-base/Dockerfile @@ -0,0 +1,44 @@ +FROM bitnami/minideb:stretch + +RUN apt-get update + +# e2fsprogs is for libguestfs +RUN \ + echo 'lava-server lava-server/instance-name string lava-slave-instance' | debconf-set-selections && \ + echo 'locales locales/locales_to_be_generated multiselect C.UTF-8 UTF-8, en_US.UTF-8 UTF-8 ' | debconf-set-selections && \ + echo 'locales locales/default_environment_locale select en_US.UTF-8' | debconf-set-selections && \ + DEBIAN_FRONTEND=noninteractive apt-get -y install \ + locales \ + vim \ + sudo \ + python-setproctitle \ + tftpd-hpa \ + u-boot-tools \ + device-tree-compiler \ + qemu-system \ + qemu-system-arm \ + qemu-system-i386 \ + xnbd-server \ + e2fsprogs + +RUN if [ "$(uname -m)" = "x86_64" -o "$(uname -m)" = "x86" ] ;then apt-get -y install qemu-kvm ; fi + +RUN DEBIAN_FRONTEND=noninteractive apt-get -y install wget gnupg +RUN wget http://images.validation.linaro.org/production-repo/production-repo.key.asc +RUN apt-key add production-repo.key.asc +RUN echo 'deb http://images.validation.linaro.org/production-repo/ stretch-backports main' > /etc/apt/sources.list.d/lava.list +RUN apt-get clean && apt-get update +RUN DEBIAN_FRONTEND=noninteractive apt-get -y install lava-dispatcher + +COPY scripts/lava-slave /etc/init.d/ +RUN chmod 755 /etc/init.d/lava-slave + +# Add services helper utilities to start and stop LAVA +COPY scripts/stop.sh . +COPY scripts/start.sh . + +RUN dpkg -l |grep lava + +EXPOSE 69/udp 80 + +CMD /start.sh diff --git a/lava-slave-base/scripts/lava-slave b/lava-slave-base/scripts/lava-slave new file mode 100644 index 0000000..3ba00f7 --- /dev/null +++ b/lava-slave-base/scripts/lava-slave @@ -0,0 +1,98 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: lava-slave +# Required-Start: $time +# Required-Stop: $time +# X-Stop-After: sendsigs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: lava-slave +# Description: lava-slave +### END INIT INFO + +# +# Author: Corentin LABBE +# + +# PATH should only include /usr/* if it runs after the mountnfs.sh script +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC="lava-slave" +NAME=lava-slave + +DAEMON=/usr/bin/lava-slave +PIDFILE=/var/run/$NAME.pid +SCRIPTNAME=/etc/init.d/$NAME +MASTER_URL=tcp://localhost:5556 +LOGGER_URL=tcp://localhost:5555 +LOGLEVEL=DEBUG + +# Exit if the package is not installed +[ -x "$DAEMON" ] || exit 0 + +# Read configuration variable file if it is present +[ -r /etc/default/$NAME ] && . /etc/default/$NAME +[ -r /etc/lava-dispatcher/$NAME ] && . /etc/lava-dispatcher/$NAME + +# Define LSB log_* functions. +. /lib/lsb/init-functions + +do_start() +{ + # Return + # 0 if daemon has been started + # 1 if daemon was already running + # other if daemon could not be started or a failure occured + start-stop-daemon --start --quiet --background --pidfile $PIDFILE --exec $DAEMON -- --level $LOGLEVEL --master $MASTER_URL --socket-addr $LOGGER_URL $IPV6 $ENCRYPT $MASTER_CERT $SLAVE_CERT $HOSTNAME +} + +do_stop() +{ + # Return + # 0 if daemon has been stopped + # 1 if daemon was already stopped + # other if daemon could not be stopped or a failure occurred + start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --exec $DAEMON +} + +case "$1" in + start) + log_daemon_msg "Starting $DESC" "$NAME" + do_start + case "$?" in + 0) + log_end_msg 0 ;; + 1) log_progress_msg "already started" + log_end_msg 0 ;; + *) log_end_msg 1 ;; + esac + + ;; + stop) + log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + case "$?" in + 0) log_end_msg 0 ;; + 1) log_progress_msg "already stopped" + log_end_msg 0 ;; + *) log_end_msg 1 ;; + esac + + ;; + restart|force-reload) + $0 stop + $0 start + ;; + try-restart) + $0 status >/dev/null 2>&1 && $0 restart + ;; + status) + status_of_proc -p $PIDFILE $DAEMON $RSYSLOGD && exit 0 || exit $? + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|try-restart|status}" >&2 + exit 3 + ;; +esac + +: + diff --git a/lava-slave-base/scripts/start.sh b/lava-slave-base/scripts/start.sh new file mode 100755 index 0000000..21b6903 --- /dev/null +++ b/lava-slave-base/scripts/start.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +/setup.sh || exit $? + +# Set LAVA Master IP +if [[ -n "$LAVA_MASTER" ]]; then + sed -i -e "s/{LAVA_MASTER}/$LAVA_MASTER/g" /etc/lava-dispatcher/lava-slave +fi + +service tftpd-hpa start || exit 4 +if [ -s /etc/ser2net.conf ];then + service ser2net start || exit 7 +fi + +touch /var/run/conmux-registry +/usr/sbin/conmux-registry 63000 /var/run/conmux-registry& +sleep 2 +for item in $(ls /etc/conmux/*cf) +do + echo "Add $item" + # On some OS, the rights/user from host are not duplicated on guest + grep -o '/dev/[a-zA-Z0-9_-]*' $item | xargs chown uucp + /usr/sbin/conmux $item & +done + +HAVE_SCREEN=0 +while read screenboard +do + echo "Start screen for $screenboard" + TERM=xterm screen -d -m -S $screenboard /dev/$screenboard 115200 -ixoff -ixon || exit 9 + HAVE_SCREEN=1 +done < /root/lava-screen.conf +if [ $HAVE_SCREEN -eq 1 ];then + sed -i 's,UsePAM.*yes,UsePAM no,' /etc/ssh/sshd_config || exit 10 + service ssh start || exit 11 +fi + + +# start an http file server for boot/transfer_overlay support +(cd /var/lib/lava/dispatcher; python -m SimpleHTTPServer 80) & + +# FIXME lava-slave does not run if old pid is present +rm -f /var/run/lava-slave.pid +service lava-slave start || exit 5 + +sleep 3650d diff --git a/lava-slave-base/scripts/stop.sh b/lava-slave-base/scripts/stop.sh new file mode 100755 index 0000000..0f18456 --- /dev/null +++ b/lava-slave-base/scripts/stop.sh @@ -0,0 +1,3 @@ +#!/bin/bash +service tftpd-hpa stop +service lava-slave stop diff --git a/lava-slave/Dockerfile b/lava-slave/Dockerfile index 4bd14b4..95c4d83 100644 --- a/lava-slave/Dockerfile +++ b/lava-slave/Dockerfile @@ -1,40 +1,6 @@ -FROM bitnami/minideb:stretch +FROM baylibre/lava-slave-base:latest -RUN apt-get update - -# e2fsprogs is for libguestfs -RUN \ - echo 'lava-server lava-server/instance-name string lava-slave-instance' | debconf-set-selections && \ - echo 'locales locales/locales_to_be_generated multiselect C.UTF-8 UTF-8, en_US.UTF-8 UTF-8 ' | debconf-set-selections && \ - echo 'locales locales/default_environment_locale select en_US.UTF-8' | debconf-set-selections && \ - DEBIAN_FRONTEND=noninteractive apt-get -y install \ - locales \ - vim \ - sudo \ - cu \ - conmux \ - python-setproctitle \ - tftpd-hpa \ - u-boot-tools \ - device-tree-compiler \ - qemu-system \ - qemu-system-arm \ - qemu-system-i386 \ - xnbd-server \ - e2fsprogs - -RUN if [ "$(uname -m)" = "x86_64" -o "$(uname -m)" = "x86" ] ;then apt-get -y install qemu-kvm ; fi - -# Uncomment the following for having the latest package (you need to comment all build-lava below) -#RUN DEBIAN_FRONTEND=noninteractive apt-get -y install wget gnupg \ -# && wget http://images.validation.linaro.org/production-repo/production-repo.key.asc \ -# && apt-key add production-repo.key.asc \ -# && echo 'deb http://images.validation.linaro.org/production-repo/ stretch-backports main' > /etc/apt/sources.list.d/lava.list \ -# && apt-get clean && apt-get update -#RUN DEBIAN_FRONTEND=noninteractive apt-get -y install lava-dispatcher - -COPY scripts/build-lava / -RUN sh /build-lava lava-dispatcher 2018.4 2018.4-1 +RUN DEBIAN_FRONTEND=noninteractive apt-get -y install cu conmux COPY configs/lava-slave /etc/lava-dispatcher/lava-slave @@ -44,8 +10,8 @@ COPY scripts/cu-loop /usr/local/bin/ COPY conmux/ /etc/conmux/ # Caution to not use any port between the Linux dynamic port range: 32768-60999 -RUN sed -i 's,XNBD_PORT_RANGE_MIN.*,XNBD_PORT_RANGE_MIN=61950,' /usr/lib/python3/dist-packages/lava_dispatcher/utils/constants.py -RUN sed -i 's,XNBD_PORT_RANGE_MAX.*,XNBD_PORT_RANGE_MAX=62000,' /usr/lib/python3/dist-packages/lava_dispatcher/utils/constants.py +RUN find /usr/lib/python3/dist-packages/ -iname constants.py | xargs sed -i 's,XNBD_PORT_RANGE_MIN.*,XNBD_PORT_RANGE_MIN=61950,' +RUN find /usr/lib/python3/dist-packages/ -iname constants.py | xargs sed -i 's,XNBD_PORT_RANGE_MAX.*,XNBD_PORT_RANGE_MAX=62000,' #conmux need cu >= 1.07-24 See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=336996 RUN echo "deb http://debian.proxad.net/debian/ testing main" >> /etc/apt/sources.list.d/testing.list @@ -56,13 +22,6 @@ RUN rm /etc/apt/sources.list.d/testing.list RUN apt-get -y install ser2net COPY ser2net.conf /etc -COPY scripts/lava-slave /etc/init.d/ -RUN chmod 755 /etc/init.d/lava-slave - -# Add services helper utilities to start and stop LAVA -COPY scripts/stop.sh . -COPY scripts/start.sh . - # lava-cli dependencies RUN apt-get -y install python3-setuptools python3-dev python3-zmq RUN git clone https://git.linaro.org/lava/lavacli.git /root/lavacli && cd /root/lavacli && git checkout v0.7 && python3 setup.py install diff --git a/lava-slave/scripts/lava-slave b/lava-slave/scripts/lava-slave deleted file mode 100644 index 3ba00f7..0000000 --- a/lava-slave/scripts/lava-slave +++ /dev/null @@ -1,98 +0,0 @@ -#! /bin/sh -### BEGIN INIT INFO -# Provides: lava-slave -# Required-Start: $time -# Required-Stop: $time -# X-Stop-After: sendsigs -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: lava-slave -# Description: lava-slave -### END INIT INFO - -# -# Author: Corentin LABBE -# - -# PATH should only include /usr/* if it runs after the mountnfs.sh script -PATH=/sbin:/usr/sbin:/bin:/usr/bin -DESC="lava-slave" -NAME=lava-slave - -DAEMON=/usr/bin/lava-slave -PIDFILE=/var/run/$NAME.pid -SCRIPTNAME=/etc/init.d/$NAME -MASTER_URL=tcp://localhost:5556 -LOGGER_URL=tcp://localhost:5555 -LOGLEVEL=DEBUG - -# Exit if the package is not installed -[ -x "$DAEMON" ] || exit 0 - -# Read configuration variable file if it is present -[ -r /etc/default/$NAME ] && . /etc/default/$NAME -[ -r /etc/lava-dispatcher/$NAME ] && . /etc/lava-dispatcher/$NAME - -# Define LSB log_* functions. -. /lib/lsb/init-functions - -do_start() -{ - # Return - # 0 if daemon has been started - # 1 if daemon was already running - # other if daemon could not be started or a failure occured - start-stop-daemon --start --quiet --background --pidfile $PIDFILE --exec $DAEMON -- --level $LOGLEVEL --master $MASTER_URL --socket-addr $LOGGER_URL $IPV6 $ENCRYPT $MASTER_CERT $SLAVE_CERT $HOSTNAME -} - -do_stop() -{ - # Return - # 0 if daemon has been stopped - # 1 if daemon was already stopped - # other if daemon could not be stopped or a failure occurred - start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --exec $DAEMON -} - -case "$1" in - start) - log_daemon_msg "Starting $DESC" "$NAME" - do_start - case "$?" in - 0) - log_end_msg 0 ;; - 1) log_progress_msg "already started" - log_end_msg 0 ;; - *) log_end_msg 1 ;; - esac - - ;; - stop) - log_daemon_msg "Stopping $DESC" "$NAME" - do_stop - case "$?" in - 0) log_end_msg 0 ;; - 1) log_progress_msg "already stopped" - log_end_msg 0 ;; - *) log_end_msg 1 ;; - esac - - ;; - restart|force-reload) - $0 stop - $0 start - ;; - try-restart) - $0 status >/dev/null 2>&1 && $0 restart - ;; - status) - status_of_proc -p $PIDFILE $DAEMON $RSYSLOGD && exit 0 || exit $? - ;; - *) - echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|try-restart|status}" >&2 - exit 3 - ;; -esac - -: - diff --git a/lava-slave/scripts/start.sh b/lava-slave/scripts/start.sh deleted file mode 100755 index 21b6903..0000000 --- a/lava-slave/scripts/start.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash - -/setup.sh || exit $? - -# Set LAVA Master IP -if [[ -n "$LAVA_MASTER" ]]; then - sed -i -e "s/{LAVA_MASTER}/$LAVA_MASTER/g" /etc/lava-dispatcher/lava-slave -fi - -service tftpd-hpa start || exit 4 -if [ -s /etc/ser2net.conf ];then - service ser2net start || exit 7 -fi - -touch /var/run/conmux-registry -/usr/sbin/conmux-registry 63000 /var/run/conmux-registry& -sleep 2 -for item in $(ls /etc/conmux/*cf) -do - echo "Add $item" - # On some OS, the rights/user from host are not duplicated on guest - grep -o '/dev/[a-zA-Z0-9_-]*' $item | xargs chown uucp - /usr/sbin/conmux $item & -done - -HAVE_SCREEN=0 -while read screenboard -do - echo "Start screen for $screenboard" - TERM=xterm screen -d -m -S $screenboard /dev/$screenboard 115200 -ixoff -ixon || exit 9 - HAVE_SCREEN=1 -done < /root/lava-screen.conf -if [ $HAVE_SCREEN -eq 1 ];then - sed -i 's,UsePAM.*yes,UsePAM no,' /etc/ssh/sshd_config || exit 10 - service ssh start || exit 11 -fi - - -# start an http file server for boot/transfer_overlay support -(cd /var/lib/lava/dispatcher; python -m SimpleHTTPServer 80) & - -# FIXME lava-slave does not run if old pid is present -rm -f /var/run/lava-slave.pid -service lava-slave start || exit 5 - -sleep 3650d diff --git a/lava-slave/scripts/stop.sh b/lava-slave/scripts/stop.sh deleted file mode 100755 index 0f18456..0000000 --- a/lava-slave/scripts/stop.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -service tftpd-hpa stop -service lava-slave stop -- cgit 1.2.3-korg From fd42a55a19f6fa32efb5893f5fb43f86de9b3e2d Mon Sep 17 00:00:00 2001 From: Corentin LABBE Date: Mon, 16 Jul 2018 14:31:43 +0200 Subject: Remove build-lava We no longer build LAVA from source, so all build-lava stuff must go. --- common/build-lava | 112 ------------------------------------------------------ lavalab-gen.py | 2 - 2 files changed, 114 deletions(-) delete mode 100644 common/build-lava diff --git a/common/build-lava b/common/build-lava deleted file mode 100644 index 3ddc696..0000000 --- a/common/build-lava +++ /dev/null @@ -1,112 +0,0 @@ -#!/bin/sh -# This file is copied in {lava-master/lava-slave}/scripts - -if [ $# -le 1 ];then - echo "Build any LAVA compoments from source with specific version tag" - echo "Usage: $0 LAVAcompoment LAVA-git-tag LAVA-pkg-git-tag" - exit 1 -fi - -# common build deps -DEBIAN_FRONTEND=noninteractive apt-get -y install python3-sphinx git devscripts || exit $? - -case $1 in -lava-server) - # package dependencies - DEBIAN_FRONTEND=noninteractive apt-get -y install \ - python-mock \ - apache2 \ - debootstrap \ - ntfs-3g \ - debhelper \ - debootstrap \ - libguestfs-tools \ - build-essential \ - docbook-xsl \ - xsltproc \ - gunicorn3 \ - ntp \ - nodejs \ - node-uglify \ - libjs-excanvas \ - libjs-jquery-cookie \ - libjs-jquery-watermark \ - libjs-jquery-flot \ - libjs-jquery-ui \ - python3-django-restricted-resource \ - python3-django-auth-ldap \ - python3-django-tables2 \ - python3-django \ - python3-guestfs \ - python3-netifaces \ - python3-markdown \ - python3-nose \ - python3-pexpect \ - python3-psycopg2 \ - python3-requests \ - python3-simplejson \ - python3-yaml \ - python3-zmq \ - python3-sphinx-bootstrap-theme \ - pep8 \ - python-pep8 \ - python3-voluptuous \ - python3-dateutil \ - python3-voluptuous \ - systemd-sysv \ - tftpd-hpa \ - lxc \ - sudo \ - telnet \ - bridge-utils || exit $? - - DEBIAN_FRONTEND=noninteractive apt-get -y install lava-tool lavapdu-client lava-coordinator || exit $? -;; -lava-dispatcher) - # build dependencies - DEBIAN_FRONTEND=noninteractive apt-get -y install python3-setuptools || exit $? - # package dependencies - DEBIAN_FRONTEND=noninteractive apt-get -y install \ - python3-serial \ - python3-configobj \ - python3-pyudev \ - python3-setproctitle \ - python3-guestfs \ - sudo \ - telnet \ - systemd-sysv \ - python3-netifaces \ - python3-nose \ - python3-pexpect \ - python3-requests \ - python3-yaml \ - python3-zmq || exit $? -;; -*) - echo "Unknow compoments $1" - exit 1 -;; -esac -if [ ! -e /root/lava-server ];then - git clone https://github.com/Linaro/lava-server.git /root/lava-server || exit $? -fi -cd /root/lava-server -git checkout $2 || exit $? - -if [ ! -e /root/$1 ];then - git clone https://github.com/Linaro/$1.git /root/$1 || exit $? -fi -cd /root/$1 -git checkout $2 || exit $? - -git config --global user.name "Docker Build" -git config --global user.email "info@kernelci.org" - -# By default, debian-dev-build.sh use always the last tag as version -sed -i "s,VERSION=.*,VERSION=$3," /root/lava-server/share/debian-dev-build.sh - -echo "cd \${DIR} && dpkg -i *.deb" >> /root/lava-server/share/debian-dev-build.sh - -cd /root/$1 -/root/lava-server/share/debian-dev-build.sh -p $1 -b $3 -exit $? diff --git a/lavalab-gen.py b/lavalab-gen.py index 7596818..f7f06f3 100755 --- a/lavalab-gen.py +++ b/lavalab-gen.py @@ -447,7 +447,5 @@ def main(): if __name__ == "__main__": - shutil.copy("common/build-lava", "lava-slave/scripts/build-lava") - shutil.copy("common/build-lava", "lava-master/scripts/build-lava") main() -- cgit 1.2.3-korg