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
This commit is contained in:
Sam Betts 2016-05-09 13:37:49 +01:00
parent 6c57795056
commit eb99fe7144
2 changed files with 4 additions and 2 deletions

View File

@ -1,6 +1,8 @@
[Unit] [Unit]
Description=DHCP interface %I 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 ConditionPathExists=!/etc/sysconfig/network-scripts/ifcfg-%I

View File

@ -1,6 +1,6 @@
[Unit] [Unit]
Description=Ironic Python Agent Description=Ironic Python Agent
After=network.target After=network-online.target
[Service] [Service]
ExecStart=/usr/local/bin/ironic-python-agent ExecStart=/usr/local/bin/ironic-python-agent