mirror of https://github.com/xemu-project/xemu.git
iotests.py: Let wait_migration() return on failure
Let wait_migration() return on failure (with the return value indicating whether the migration was completed or has failed), so we can use it for migrations that are expected to fail, too. Signed-off-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Message-Id: <20200820150725.68687-3-mreitz@redhat.com> Signed-off-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
31e4c354b3
commit
4bf63c8035
|
@ -729,16 +729,22 @@ class VM(qtest.QEMUQtestMachine):
|
|||
}
|
||||
]))
|
||||
|
||||
def wait_migration(self, expect_runstate):
|
||||
def wait_migration(self, expect_runstate: Optional[str]) -> bool:
|
||||
while True:
|
||||
event = self.event_wait('MIGRATION')
|
||||
log(event, filters=[filter_qmp_event])
|
||||
if event['data']['status'] == 'completed':
|
||||
if event['data']['status'] in ('completed', 'failed'):
|
||||
break
|
||||
# The event may occur in finish-migrate, so wait for the expected
|
||||
# post-migration runstate
|
||||
while self.qmp('query-status')['return']['status'] != expect_runstate:
|
||||
pass
|
||||
|
||||
if event['data']['status'] == 'completed':
|
||||
# The event may occur in finish-migrate, so wait for the expected
|
||||
# post-migration runstate
|
||||
runstate = None
|
||||
while runstate != expect_runstate:
|
||||
runstate = self.qmp('query-status')['return']['status']
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
def node_info(self, node_name):
|
||||
nodes = self.qmp('query-named-block-nodes')
|
||||
|
|
Loading…
Reference in New Issue