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:
|
while True:
|
||||||
event = self.event_wait('MIGRATION')
|
event = self.event_wait('MIGRATION')
|
||||||
log(event, filters=[filter_qmp_event])
|
log(event, filters=[filter_qmp_event])
|
||||||
if event['data']['status'] == 'completed':
|
if event['data']['status'] in ('completed', 'failed'):
|
||||||
break
|
break
|
||||||
# The event may occur in finish-migrate, so wait for the expected
|
|
||||||
# post-migration runstate
|
if event['data']['status'] == 'completed':
|
||||||
while self.qmp('query-status')['return']['status'] != expect_runstate:
|
# The event may occur in finish-migrate, so wait for the expected
|
||||||
pass
|
# 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):
|
def node_info(self, node_name):
|
||||||
nodes = self.qmp('query-named-block-nodes')
|
nodes = self.qmp('query-named-block-nodes')
|
||||||
|
|
Loading…
Reference in New Issue