aboutsummaryrefslogtreecommitdiffstats
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.bb18
-rw-r--r--recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf.service15
-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
4 files changed, 43 insertions, 19 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
index a5386b409..ab725c056 100644
--- 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
@@ -5,19 +5,29 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
inherit systemd allarch
-SRC_URI = "file://cluster-demo-network-conf.service"
+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 cluster demo network configuration service unit
+ # 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}
+ 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/
+ 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.service b/recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf.service
deleted file mode 100644
index 1a6e2d8b7..000000000
--- a/recipes-config/cluster-demo-network-config/files/cluster-demo-network-conf.service
+++ /dev/null
@@ -1,15 +0,0 @@
-[Unit]
-Description=Configure dedicated link for cluster demo network
-After=sys-subsystem-net-devices-eth1.device
-Requires=sys-subsystem-net-devices-eth1.device
-Before=network.target
-
-[Service]
-# Note that this is done as opposed to using connman as configuring an
-# interface on a second network separate from the rest of the interfaces
-# is non-trivial in connman and needs further investigation.
-ExecStart=/sbin/ifconfig eth1 192.168.20.93
-Type=oneshot
-
-[Install]
-WantedBy=network.target
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 000000000..3f538175f
--- /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 000000000..5fc29b7a0
--- /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