summaryrefslogtreecommitdiffstats
path: root/lava-slave
diff options
context:
space:
mode:
Diffstat (limited to 'lava-slave')
-rw-r--r--lava-slave/Dockerfile5
-rw-r--r--lava-slave/aliases/.empty0
-rwxr-xr-xlava-slave/scripts/setup.sh16
-rwxr-xr-xlava-slave/scripts/start.sh51
4 files changed, 70 insertions, 2 deletions
diff --git a/lava-slave/Dockerfile b/lava-slave/Dockerfile
index 5fdae2f..b93e310 100644
--- a/lava-slave/Dockerfile
+++ b/lava-slave/Dockerfile
@@ -1,4 +1,4 @@
-FROM baylibre/lava-slave-base:2019.03_stretch
+FROM lavasoftware/lava-dispatcher:2019.07
RUN apt-get update
@@ -61,6 +61,7 @@ RUN mkdir -p /root/.config
COPY devices/ /root/devices/
COPY tags/ /root/tags/
+COPY aliases/ /root/aliases/
COPY deviceinfo/ /root/deviceinfo/
RUN if [ -x /usr/local/bin/extra_actions ] ; then /usr/local/bin/extra_actions ; fi
@@ -74,4 +75,4 @@ COPY zmq_auth/ /etc/lava-dispatcher/certificates.d/
EXPOSE 69/udp 80
-CMD /start.sh
+CMD /usr/local/bin/start.sh
diff --git a/lava-slave/aliases/.empty b/lava-slave/aliases/.empty
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/lava-slave/aliases/.empty
diff --git a/lava-slave/scripts/setup.sh b/lava-slave/scripts/setup.sh
index 1fb0bb3..4bf2f67 100755
--- a/lava-slave/scripts/setup.sh
+++ b/lava-slave/scripts/setup.sh
@@ -143,6 +143,22 @@ do
done
done
+for devicetype in $(ls /root/aliases/)
+do
+ lavacli $LAVACLIOPTS device-types aliases list $devicetype > /tmp/device-types-aliases-$devicetype.list
+ while read alias
+ do
+ grep -q " $alias$" /tmp/device-types-aliases-$devicetype.list
+ if [ $? -eq 0 ];then
+ echo "DEBUG: $alias for $devicetype already present"
+ continue
+ fi
+ echo "DEBUG: Add alias $alias to $devicetype"
+ lavacli $LAVACLIOPTS device-types aliases add $devicetype $alias || exit $?
+ echo " $alias" >> /tmp/device-types-aliases-$devicetype.list
+ done < /root/aliases/$devicetype
+done
+
if [ -e /etc/lava-dispatcher/certificates.d/$(hostname).key ];then
echo "INFO: Enabling encryption"
sed -i 's,.*ENCRYPT=.*,ENCRYPT="--encrypt",' /etc/lava-dispatcher/lava-slave
diff --git a/lava-slave/scripts/start.sh b/lava-slave/scripts/start.sh
new file mode 100755
index 0000000..f88b816
--- /dev/null
+++ b/lava-slave/scripts/start.sh
@@ -0,0 +1,51 @@
+#!/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
+
+echo "LOGFILE=/var/log/lava-dispatcher/lava-slave.log" >> /etc/lava-dispatcher/lava-slave
+
+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
+#/etc/init.d/lava-slave start
+
+/root/entrypoint.sh
+
+sleep 3650d