Which means the scheduler needs to pick a host that satisfies the original instance image metadata constraints for things like host aggregates.
So if you're evacuating and there is no request spec for the instance, we're just picking a host randomly without actually considering the image meta at all.
In fact, the ComputeManager. rebuild_ instance method doesn't even take a request_spec parameter.
The request_spec is only used in the conductor rebuild_instance method if we're evacuating and need to ask the scheduler for another host:
https:/ /github. com/openstack/ nova/blob/ d36dcd52c24c324 18fd358d245688c 86664025d5/ nova/conductor/ manager. py#L843
Which means the scheduler needs to pick a host that satisfies the original instance image metadata constraints for things like host aggregates.
So if you're evacuating and there is no request spec for the instance, we're just picking a host randomly without actually considering the image meta at all.