Following LP: #2013403, cloud-init now prevent login until the system
is fully provisioned, which create a situation where we can connect to
ssh but not login.
This fix it by capturing exit code and retrying if a specific exit code
occurs.
We don't enable ssh retries for other kind of errors.
When uvtool creates a VM, it uses the qemu system daemon connection.
This commit forces the list command to use the same connection no matter
the local configuration. This makes create/list command consistent.
Using the virsh wrapper has the disadvantage of not taking into
consideration libvirt configuration we assume (for example using the
system daemon for the libvirt qemu driver/hypervisor.
Also, given that uvtool tends to be used as a shim over libvirt,
filtering the list output wouldn't be very helpful.
This commit clarifies the above and marks a todo to turn this into a
better native implementation.