summaryrefslogtreecommitdiff
path: root/openstack/etc/systemd/system/openvswitch-wait-for-bind@.service
diff options
context:
space:
mode:
Diffstat (limited to 'openstack/etc/systemd/system/openvswitch-wait-for-bind@.service')
-rw-r--r--openstack/etc/systemd/system/openvswitch-wait-for-bind@.service16
1 files changed, 16 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