summaryrefslogtreecommitdiffstats
path: root/recipes-config/cluster-demo-network-config
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-config/cluster-demo-network-config')
-rw-r--r--recipes-config/cluster-demo-network-config/cluster-demo-network-config_1.0.bb33
-rw-r--r--recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf.sh17
-rw-r--r--recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf@.service12
3 files changed, 62 insertions, 0 deletions
diff --git a/recipes-config/cluster-demo-network-config/cluster-demo-network-config_1.0.bb b/recipes-config/cluster-demo-network-config/cluster-demo-network-config_1.0.bb
new file mode 100644
index 00000000..8d737282
--- /dev/null
+++ b/recipes-config/cluster-demo-network-config/cluster-demo-network-config_1.0.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Setting files for cluster network for the AGL Demonstrator"
+DESCRIPTION = "Setting files for cluster network for the AGL Demonstrator"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+inherit systemd allarch
+
+SRC_URI = "file://cluster-demo-network-conf@.service \
+ file://cluster-demo-network-conf.sh \
+"
+
+# Network device for dedicated connection to cluster
+AGL_CLUSTER_NET_DEVICE ?= "eth1"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+do_install() {
+ # Install helper script
+ install -d ${D}${sbindir}
+ install -m 0755 ${WORKDIR}/cluster-demo-network-conf.sh ${D}${sbindir}/
+
+ # Install service unit
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/cluster-demo-network-conf@.service ${D}${systemd_system_unitdir}/
+
+ # Add symlink to network.target.wants
+ install -d ${D}${sysconfdir}/systemd/system/network.target.wants
+ ln -s ${systemd_system_unitdir}/cluster-demo-network-conf@.service \
+ ${D}${sysconfdir}/systemd/system/network.target.wants/cluster-demo-network-conf@${AGL_CLUSTER_NET_DEVICE}.service
+}
+
+FILES:${PN} += "${systemd_system_unitdir}"
diff --git a/recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf.sh b/recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf.sh
new file mode 100644
index 00000000..3f538175
--- /dev/null
+++ b/recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+CONNMAN_CONF=/etc/connman/main.conf
+CLUSTER_ADDRESS=192.168.20.93
+
+if [ -z "$1" ]; then
+ echo "Usage: $0 <network device>"
+ exit 1
+fi
+
+# Need to blacklist given device with connman if it isn't already,
+# otherwise connman will over-ride address configuration.
+if ! grep '^NetworkInterfaceBlacklist=' ${CONNMAN_CONF} | grep -q $1; then
+ sed -i "s/^\(NetworkInterfaceBlacklist=.*\)/\1,$1/" ${CONNMAN_CONF}
+fi
+
+/sbin/ifconfig $1 ${CLUSTER_ADDRESS}
diff --git a/recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf@.service b/recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf@.service
new file mode 100644
index 00000000..5fc29b7a
--- /dev/null
+++ b/recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf@.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Configure dedicated link for cluster demo network
+After=sys-subsystem-net-devices-%i.device
+Requires=sys-subsystem-net-devices-%i.device
+Before=network.target
+
+[Service]
+ExecStart=/usr/sbin/cluster-demo-network-conf.sh %i
+Type=oneshot
+
+[Install]
+WantedBy=network.target