diff --git a/virt-install b/virt-install index bf5219a4c..2a6f58c7c 100755 --- a/virt-install +++ b/virt-install @@ -9,6 +9,7 @@ import argparse import atexit import sys import time +import select import libvirt @@ -677,6 +678,15 @@ def start_install(guest, installer, options): if options.destroy_on_exit: atexit.register(_destroy_on_exit, domain) + passwd = installer.get_generated_password() + if options.cloud_init and passwd: # pragma: no cover + print_stdout(_("Password for first login is: %s") % passwd, do_log=False) + print_stdout( + _("Installation will continue in 10 seconds " + "(press Enter to skip)")) + timeout = 10 + select.select([sys.stdin], [], [], timeout) + cli.connect_console(guest, domain, conscb, waithandler.wait_for_console_to_exit, options.destroy_on_exit) diff --git a/virtinst/cli.py b/virtinst/cli.py index 4b9c237bb..8644b02e9 100644 --- a/virtinst/cli.py +++ b/virtinst/cli.py @@ -269,9 +269,10 @@ def fail(msg, do_exit=True): _fail_exit() -def print_stdout(msg, do_force=False): - log.debug(msg) - if do_force or not get_global_state().quiet: +def print_stdout(msg, do_force=False, do_log=True): + if do_log: + log.debug(msg) + if do_force or not get_global_state().quiet or not do_log: print(msg) diff --git a/virtinst/install/installer.py b/virtinst/install/installer.py index 1c31871e4..34f47ac49 100644 --- a/virtinst/install/installer.py +++ b/virtinst/install/installer.py @@ -431,6 +431,10 @@ class Installer(object): self._tmpfiles.append(iso) self._add_unattended_install_cdrom_device(guest, iso) + def get_generated_password(self): + if self._cloudinit_data: + return self._cloudinit_data.generate_password() + ########################## # guest install handling #