Ok, now i recall the issue. If we return from the top of the method, we still have `:ip=>nil` and Foreman can't save with that, it's a required attribute. We have to wait until vm.ip_addresses is returning at least one IP, and then just accept the first one that comes along (which will be while the VM is booting up on the Compute Resource, and thus still before the user-data script starts running).