summaryrefslogtreecommitdiff
path: root/openstack
diff options
context:
space:
mode:
authorRichard Maw <richard.maw@codethink.co.uk>2015-02-18 23:15:58 +0000
committerRichard Maw <richard.maw@codethink.co.uk>2015-03-09 11:47:24 +0000
commita405070d275132dc02435dc4d5bffee16f78e702 (patch)
tree8622f19718db6d0f4d01c95f2c5f485f40746d20 /openstack
parente18f497f2adfcfd6c53644ffbaf2c8f0e191573e (diff)
downloaddefinitions-a405070d275132dc02435dc4d5bffee16f78e702.tar.gz
Add wait-for-bind script between openvswitch and network-pre
Ordering openvswitch before networkd is not sufficient alone, because openvswitch doesn't wait for all its initial config to complete before reporting that it has finished starting.
Diffstat (limited to 'openstack')
-rw-r--r--openstack/etc/systemd/system/openvswitch-wait-for-bind@.service16
-rw-r--r--openstack/manifest1
2 files changed, 17 insertions, 0 deletions
diff --git a/openstack/etc/systemd/system/openvswitch-wait-for-bind@.service b/openstack/etc/systemd/system/openvswitch-wait-for-bind@.service
new file mode 100644
index 00000000..a736fe3d
--- /dev/null
+++ b/openstack/etc/systemd/system/openvswitch-wait-for-bind@.service
@@ -0,0 +1,16 @@
+# Open vSwitch doesn't wait for all the interfaces to be configured before
+# reporting "started", but we need to start networkd after they have been bound,
+# so this unit waits for the interface to be bound before continuing, and is
+# ordered before network-pre.target, which networkd orders itself after.
+[Unit]
+Description=Wait for Open vSwitch to bind %i
+Requires=openvswitch.service
+After=openvswitch.service
+Before=network-pre.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=true
+ExecStart=/bin/sh -c \
+ 'while ! readlink /sys/class/net/$1/master; do sleep 1; done' \
+ - %I
diff --git a/openstack/manifest b/openstack/manifest
index 8c7b9915..9229606a 100644
--- a/openstack/manifest
+++ b/openstack/manifest
@@ -141,6 +141,7 @@
0100644 0 0 /etc/systemd/system/openvswitch-setup.service
0100644 0 0 /etc/systemd/system/openvswitch-db-server.service
0100644 0 0 /etc/systemd/system/openvswitch.service
+0100644 0 0 /etc/systemd/system/openvswitch-wait-for-bind@.service
0100755 0 0 /usr/share/openstack/openstack-neutron-network-configuration-for-one-node
0100644 0 0 /etc/systemd/system/openstack-neutron-network-configuration-one-node.service
0100644 0 0 /etc/systemd/system/openvswitch-initialize-db.service