[neutron][ironic][nova][routed_network] what's normal workflow when ironic host added to nova from neutron?
I'm trying to use ironic routed network from stein.
I do not sure how the normal workflow works in nova/neutron/ironic
side for routed network, so I sent this mail to get more information.
>From what I understand for ironic routed network, what I did
- Enable segment plugin in Neutron
- Add ironic 'node'
- Add ironic port with physical network
- network-baremetal plugin reports neutron from all ironic nodes.
- It sent 'physical_network' and 'ironic node uuid' to Neutron
- It make 'segmenthostmapping' entry with ('node uuid', 'segment_id')
- Add segment for the subnet.
At last step, I encountered the strange. In detail,
- Neutron subnet update callback call nova inventory registration
- Neutron ask placement to create resource provider for segment
- Neutron ask nova to create aggregate for segment
- Neutron request placement to associate nova aggregate to resource provider.
- (Bug?) Neutron add hosts came from 'segmenthostmapping' to nova aggregate
Since 'segmenthostmapping' has 'ironic node uuid' for host, nova deny
to register the host to aggregate emitting the exception like below
Returning 404 to user: Compute host
27004f76-2606-4e4a-980e-a385a01f04de could not be found. __call__
What's strange for me is why neutron ask 'ironic node uuid' for host
when nova aggregate only look for host from HostMapping which came
from 'host' in compute_nodes.
I could not find the code related to how 'ironic node uuid' can be
registered in nova aggregate.
Please someone who knows what's going on shed light on me.