The issue is how to handle wait_for. If we wait for both to be populated, that migt never happen (say if Openstack is not handing out public IPs). If we wait for either but then a public IP is added 10s after the private one, we might never see it here, leading to provisioning failures for no good reason.

I'm leaning towards waiting for either in wait_for above, but re-reading both arrays after each sleep in this method, to catch newly added IPs. I can try to test that today, if it sounds reasonable