Skip to content

Commit b253ee8

Browse files
author
anon
committed
fixup! Harmonize behavior between has/hasnt_event
1 parent af89f4e commit b253ee8

1 file changed

Lines changed: 3 additions & 28 deletions

File tree

qubesadmin/tools/qvm_shutdown.py

Lines changed: 3 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,8 @@
2727
import sys
2828

2929
import asyncio
30-
from typing import Iterable
3130

32-
from qubesadmin.app import QubesBase
33-
from qubesadmin.vm import QubesVM
34-
35-
try:
36-
import qubesadmin.events.utils
37-
have_events = True
38-
except ImportError:
39-
have_events = False
31+
import qubesadmin.events.utils
4032
import qubesadmin.tools
4133
import qubesadmin.exc
4234

@@ -72,18 +64,6 @@ def failed_domains(vms):
7264
if not (vm.get_power_state() == 'Halted'
7365
or (vm.klass == 'DispVM' and vm.get_power_state() == 'NA'))]
7466

75-
async def _wait_for_shutdown_polling(vms: Iterable[QubesVM], app: QubesBase)\
76-
-> None:
77-
"""Fallback polling coroutine when events are not available."""
78-
current_vms = list(vms)
79-
while True:
80-
current_vms = failed_domains(current_vms)
81-
if not current_vms:
82-
break
83-
app.log.info('Waiting for shutdown: {}'.format(
84-
', '.join([str(vm) for vm in current_vms])))
85-
await asyncio.sleep(1)
86-
8767
def main(args=None, app=None): # pylint: disable=missing-docstring
8868
args = parser.parse_args(args, app=app)
8969

@@ -115,16 +95,11 @@ def main(args=None, app=None): # pylint: disable=missing-docstring
11595
# no VM shutdown request succeeded, no sense to try again
11696
break
11797

118-
if have_events:
119-
wait_coro = qubesadmin.events.utils.wait_for_domain_shutdown(
120-
awaiting)
121-
else:
122-
wait_coro = _wait_for_shutdown_polling(awaiting, args.app)
123-
12498
try:
12599
# pylint: disable=no-member
126100
loop.run_until_complete(asyncio.wait_for(
127-
wait_coro, args.timeout))
101+
qubesadmin.events.utils.wait_for_domain_shutdown(
102+
awaiting), args.timeout))
128103
except (TimeoutError, asyncio.TimeoutError):
129104
if not args.dry_run:
130105
current_vms = failed_domains(awaiting)

0 commit comments

Comments
 (0)