00d853e5fd
Updates the dhcp-all-interfaces element to fix a race with the recent udev rules implementation on Fedora. With the new approach we make the udev rule want (require to startup) a generic dhcp-interface@.service template which can be started individually for each interface that is discovered. The dhcp-interface@.service is setup such that it: 1) It calls dhcp-all-interfaces <iface> directly with a pre-exec script. This creates the ifcfg file right before we need it but avoids the case where network.service might get greedy and try to start it itself. 2) Only runs if the ifcfg script doesn't already exist. This is important because we only need to bootstrap the DHCP configs... Once they exist the network.service will take care of starting them on reboots, upgrades, etc. 3) On initial boot ensure that the initial DHCP interfaces come up after network.service. Since we really only want dhcp-all-interfaces to help bootstrap that haven't already been configured this seems reasonable. 4) We also try to ensure that cloud-init comes up after the DHCP interfaces. Cloud init has a decently long timeout that this wasn't a functional problem but it keeps log file spew down. Change-Id: I71b026f027182aad49c3435bb903e5e38e524685 Closes-bug: #1294803
15 lines
308 B
Desktop File
15 lines
308 B
Desktop File
[Unit]
|
|
Description=DHCP interface %I
|
|
After=network.service network.target
|
|
|
|
ConditionPathExists=!/etc/sysconfig/network-scripts/ifcfg-%I
|
|
|
|
[Service]
|
|
Type=oneshot
|
|
User=root
|
|
ExecStartPre=/usr/local/sbin/dhcp-all-interfaces.sh %I
|
|
ExecStart=/sbin/ifup %I
|
|
RemainAfterExit=true
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|