summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--remote/modules/vmchooser/data/etc/systemd/system/var-lib-virt.mount10
-rw-r--r--remote/modules/vmchooser/data/etc/systemd/system/var-lib-virt.service8
-rwxr-xr-xremote/rootfs/rootfs-stage32/data/etc/openslx/udhcpc.openslx.script2
-rw-r--r--remote/rootfs/rootfs-stage32/data/etc/systemd/system/download-config.service6
-rwxr-xr-xremote/rootfs/rootfs-stage32/data/opt/openslx/bin/activate-sysconfig19
-rwxr-xr-xremote/rootfs/rootfs-stage32/data/opt/openslx/bin/mount-lib-virt8
6 files changed, 42 insertions, 11 deletions
diff --git a/remote/modules/vmchooser/data/etc/systemd/system/var-lib-virt.mount b/remote/modules/vmchooser/data/etc/systemd/system/var-lib-virt.mount
deleted file mode 100644
index 21ac1544..00000000
--- a/remote/modules/vmchooser/data/etc/systemd/system/var-lib-virt.mount
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
- Description=Mount vm-store NFS
-
- [Mount]
- What=vm-store.public.ads.uni-freiburg.de:vmwareImages/vmware/vmware65
- Where=/var/lib/virt
- Type=nfs
- Options=ro,async,nolock,vers=3
- StandardOutput=syslog
- StandardError=syslog
diff --git a/remote/modules/vmchooser/data/etc/systemd/system/var-lib-virt.service b/remote/modules/vmchooser/data/etc/systemd/system/var-lib-virt.service
new file mode 100644
index 00000000..7a4b4f58
--- /dev/null
+++ b/remote/modules/vmchooser/data/etc/systemd/system/var-lib-virt.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Mount vm-store NFS
+Wants=download-config.service
+After=download-config.service
+
+[Service]
+Type=oneshot
+ExecStart=/opt/openslx/bin/mount-lib-virt
diff --git a/remote/rootfs/rootfs-stage32/data/etc/openslx/udhcpc.openslx.script b/remote/rootfs/rootfs-stage32/data/etc/openslx/udhcpc.openslx.script
index 199495aa..444dc52c 100755
--- a/remote/rootfs/rootfs-stage32/data/etc/openslx/udhcpc.openslx.script
+++ b/remote/rootfs/rootfs-stage32/data/etc/openslx/udhcpc.openslx.script
@@ -63,7 +63,7 @@ search lp.ruf.uni-freiburg.de
# TODO i.e. event trigger
[ "x$(grep -ci mount /proc/cmdline)" != "x0" ] && systemctl start nfs-mount.service
# Always mount virtlib directory
- systemctl start var-lib-virt.mount
+ systemctl start var-lib-virt.service
;;
diff --git a/remote/rootfs/rootfs-stage32/data/etc/systemd/system/download-config.service b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/download-config.service
new file mode 100644
index 00000000..8807d2ea
--- /dev/null
+++ b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/download-config.service
@@ -0,0 +1,6 @@
+[Unit]
+Description=Parse kernel command line for config URL and download
+
+[Service]
+Type=oneshot
+ExecStart=/opt/openslx/bin/activate-sysconfig
diff --git a/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/activate-sysconfig b/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/activate-sysconfig
new file mode 100755
index 00000000..e50111ae
--- /dev/null
+++ b/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/activate-sysconfig
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+export PATH=/opt/openslx/bin:/opt/openslx/usr/bin
+
+URL="$(grep -o -E "slxconfig=\S+" /proc/cmdline | cut -c 11-)"
+
+if [ -z "$URL" ]; then
+ echo "Error - 'slxconfig=' not found in command line, or empty"
+ exit 1
+fi
+
+wget -q -O "/opt/openslx/config" "$URL"
+RET=$?
+if [ "x$RET" != "x0" ]; then
+ echo "Error - downloading '$URL' via wget failed. Exit Code: $RET"
+ exit 1
+fi
+exit 0
+
diff --git a/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/mount-lib-virt b/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/mount-lib-virt
new file mode 100755
index 00000000..ac0dd1a4
--- /dev/null
+++ b/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/mount-lib-virt
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+. /opt/openslx/config || exit 1
+
+export PATH=/opt/openslx/bin:/opt/openslx/usr/bin:/opt/openslx/sbin:/opt/openslx/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin
+
+mkdir -p /var/lib/virt
+mount -t nfs -o ro,async,nolock,vers=3 "$SLX_VM_NFS" /var/lib/virt