Comment 2 for bug 1287140

Revision history for this message
Robie Basak (racb) wrote : Re: uvt-kvm crashed with CalledProcessError in check_call()

Thanks for reporting this.

I had some difficulty reproducing. To fix, I had to add "--data-dir=share", run with "sudo", and apply the following patch (since base had no trailing slash, the concatenation fails to account for a directory separator). Is this patch a bug that needs fixing in auto-upgrade-tester?

--- bin/auto-upgrade-tester 2014-01-10 09:06:58 +0000
+++ bin/auto-upgrade-tester 2014-03-06 10:02:13 +0000
@@ -370,7 +370,7 @@
             print("Using generated profile: %s" % profile)

         if not "/" in profile:
- profile = base + profile
+ profile = os.path.join(base, profile)
         try:
             if options.login:
                 backend = createBackend(options.backend, profile)

When I did reproduce, I saw "Permission denied (publickey)." printed before the traceback. The wait subcommand now uses ssh to check that cloud-init has finished running inside the VM and that the VM is in runlevel 2. So this requires ssh to work, and thus fails when --ssh-public-key-file is used. This is clearly a bug, but I think the only way to fix this is to add options to the wait subcommand so users using --ssh-public-key-file can also supply a new --ssh-private-key-file for wait, or perhaps a --no-ssh option to disable this aspect of wait's functionality. This would also need standard ssh parameters like "-l" to work in the same way as the ssh subcommand, since authentication details may be different.

Finally, uvt-kvm should have printed a straightforward error message instead of a traceback.

I need to add new options to the wait subcommand, and then we'll need to update Serge's MP to use --ssh-private-key-file (or whatever I end up adding).