ironic-python-agent/ironic_python_agent
Dmitry Tantsur 3deb25a3ce Wait for the interfaces to get IP addresses before inspection
In the DIB build the DHCP code (provided by the dhcp-all-interfaces element)
races with the service starting IPA. It does not matter for deployment itself,
as we're waiting for the route to the Ironic API to appear. However, for
inspection it may result in reporting back all NIC's without IP addresses.
Inspection fails in this case.

This change makes inspection wait for *all* NIC's to get their IP addresses up
to a small timeout. The timeout is 60 seconds by default and can be changed
via the new ipa-inspection-dhcp-wait-timeout kernel option (0 to not wait).

After the wait inspection proceedes in any case, so the worst downside
is making inspection 60 seconds longer.

To avoid waiting for NIC's that are not even connected, this change extends the
NetworkInterface class with 'has_carrier' field.

Closes-Bug: #1564954
Change-Id: I5bf14de4c1c622f4bf6e3eadbe20c44759da5d66
2016-04-05 20:03:33 +02:00
..
api Fixes incorrect description URL 2015-09-15 21:05:19 +00:00
cmd Wait for the interfaces to get IP addresses before inspection 2016-04-05 20:03:33 +02:00
extensions Add docstrings to all functions in Agent standby extension 2016-03-31 11:44:50 -05:00
shell Replace SYSRQ commands 2016-03-21 12:57:50 +00:00
tests Wait for the interfaces to get IP addresses before inspection 2016-04-05 20:03:33 +02:00
__init__.py Use # instead of """ for copyright blocks 2014-04-10 07:14:06 -07:00
agent.py Bind to interface routable to the ironic host, not a random one 2016-03-21 14:21:12 +00:00
encoding.py Create a SerializableComparable class 2015-09-11 13:44:09 -07:00
errors.py Bind to interface routable to the ironic host, not a random one 2016-03-21 14:21:12 +00:00
hardware.py Wait for the interfaces to get IP addresses before inspection 2016-04-05 20:03:33 +02:00
inspector.py Wait for the interfaces to get IP addresses before inspection 2016-04-05 20:03:33 +02:00
ironic_api_client.py Fix programmatic error in heartbeat() 2016-03-11 16:58:28 +00:00
netutils.py Use oslo.log instead of original logging 2015-10-24 03:22:36 -06:00
utils.py Stop trying to log stdout when fetching logs during inspection 2016-03-08 16:31:18 +01:00
version.py Add sphinx build + basic documentation 2015-03-31 16:22:12 -07:00