From eb99fe7144ce224ebf47470c1cf711761f37c84d Mon Sep 17 00:00:00 2001 From: Sam Betts Date: Mon, 9 May 2016 13:37:49 +0100 Subject: [PATCH] Add dhcp-all-interfaces.target for syncing units Currently there is no way for a service to become aware that dhcp-all-interfaces is finished configuring all the interfaces at boot time. This causes problems for applications like the ironic-python-agent which scans the interfaces when it first starts as part of the inspection stage and can race against dhcp-all-interfaces bringing up the interfaces, leading to inconsistent results. This patch ensures that the dhcp-all-interfaces script runs before any network interface is configured and brought up by the rest of the system, and also ensures that the ironic-agent element also waits for the network to be online before starting. This is done by using the network targets provided by systemd. Change-Id: Id9583b7f54361aa603a6229da598ad6a0f0f7938 --- .../dhcp-all-interfaces/install.d/dhcp-interface@.service | 4 +++- .../ironic-agent-source-install/ironic-python-agent.service | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/elements/dhcp-all-interfaces/install.d/dhcp-interface@.service b/elements/dhcp-all-interfaces/install.d/dhcp-interface@.service index e2643c85..9935b027 100644 --- a/elements/dhcp-all-interfaces/install.d/dhcp-interface@.service +++ b/elements/dhcp-all-interfaces/install.d/dhcp-interface@.service @@ -1,6 +1,8 @@ [Unit] Description=DHCP interface %I -After=network.service network.target +After=network.target +Before=network-pre.target +Wants=network-pre.target ConditionPathExists=!/etc/sysconfig/network-scripts/ifcfg-%I diff --git a/elements/ironic-agent/install.d/ironic-agent-source-install/ironic-python-agent.service b/elements/ironic-agent/install.d/ironic-agent-source-install/ironic-python-agent.service index 6513cd63..50e9d4aa 100644 --- a/elements/ironic-agent/install.d/ironic-agent-source-install/ironic-python-agent.service +++ b/elements/ironic-agent/install.d/ironic-agent-source-install/ironic-python-agent.service @@ -1,6 +1,6 @@ [Unit] Description=Ironic Python Agent -After=network.target +After=network-online.target [Service] ExecStart=/usr/local/bin/ironic-python-agent