python/machine.py: Add a configurable timeout to shutdown()

Three seconds is hardcoded. Use it as a default parameter instead, and use that
value for both waits that may occur in the function.

Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Cleber Rosa <crosa@redhat.com>
Message-Id: <20200710050649.32434-7-jsnow@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
This commit is contained in:
John Snow 2020-07-10 01:06:43 -04:00 committed by Philippe Mathieu-Daudé
parent a3842cb078
commit c9b3045bc2

View File

@ -393,7 +393,9 @@ class QEMUMachine:
self._popen.wait()
self._post_shutdown()
def shutdown(self, has_quit=False, hard=False):
def shutdown(self, has_quit: bool = False,
hard: bool = False,
timeout: Optional[int] = 3) -> None:
"""
Terminate the VM and clean up
"""
@ -409,10 +411,10 @@ class QEMUMachine:
try:
if not has_quit:
self._qmp.cmd('quit')
self._popen.wait(timeout=3)
self._popen.wait(timeout=timeout)
except:
self._popen.kill()
self._popen.wait()
self._popen.wait(timeout=timeout)
self._post_shutdown()