The issue with the PowerVM driver is actually in neutron. I set up a libvirt environment, and the difference is that the PowerVM VIF is for some reason in a BUILD state, where as it is ACTIVE in libvirt.
If the PowerVM VIF was in an ACTIVE state, this wouldn't occur, and no neutron events would need to be waited for.
I'll investigate what's going on with the port state for networking-powervm. The state up is being sent...so this requires some verification.
It is true that the nova instance.host isn't updated until after the spawn in nova. That could be investigated...but this is the root reason why PowerVM is seeing different behavior than Libvirt.
The issue with the PowerVM driver is actually in neutron. I set up a libvirt environment, and the difference is that the PowerVM VIF is for some reason in a BUILD state, where as it is ACTIVE in libvirt.
If the PowerVM VIF was in an ACTIVE state, this wouldn't occur, and no neutron events would need to be waited for.
I'll investigate what's going on with the port state for networking-powervm. The state up is being sent...so this requires some verification.
It is true that the nova instance.host isn't updated until after the spawn in nova. That could be investigated...but this is the root reason why PowerVM is seeing different behavior than Libvirt.