mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-08 10:13:56 -06:00
job: Add JOB_STATUS_CHANGE QMP event
This adds a QMP event that is emitted whenever a job transitions from one status to another. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
bf42508f24
commit
1dac83f1a1
23 changed files with 449 additions and 44 deletions
|
@ -445,6 +445,8 @@ new_state = "1"
|
|||
self.assert_qmp(event, 'data/device', 'drive0')
|
||||
self.assert_qmp(event, 'data/error', 'Input/output error')
|
||||
completed = True
|
||||
elif event['event'] == 'JOB_STATUS_CHANGE':
|
||||
self.assert_qmp(event, 'data/id', 'drive0')
|
||||
|
||||
self.assert_no_active_block_jobs()
|
||||
self.vm.shutdown()
|
||||
|
@ -457,6 +459,10 @@ new_state = "1"
|
|||
self.assert_qmp(result, 'return', {})
|
||||
|
||||
event = self.vm.get_qmp_event(wait=True)
|
||||
while event['event'] == 'JOB_STATUS_CHANGE':
|
||||
self.assert_qmp(event, 'data/id', 'drive0')
|
||||
event = self.vm.get_qmp_event(wait=True)
|
||||
|
||||
self.assertEquals(event['event'], 'BLOCK_JOB_ERROR')
|
||||
self.assert_qmp(event, 'data/device', 'drive0')
|
||||
self.assert_qmp(event, 'data/operation', 'read')
|
||||
|
@ -478,6 +484,10 @@ new_state = "1"
|
|||
self.assert_qmp(result, 'return', {})
|
||||
|
||||
event = self.vm.get_qmp_event(wait=True)
|
||||
while event['event'] == 'JOB_STATUS_CHANGE':
|
||||
self.assert_qmp(event, 'data/id', 'drive0')
|
||||
event = self.vm.get_qmp_event(wait=True)
|
||||
|
||||
self.assertEquals(event['event'], 'BLOCK_JOB_ERROR')
|
||||
self.assert_qmp(event, 'data/device', 'drive0')
|
||||
self.assert_qmp(event, 'data/operation', 'read')
|
||||
|
@ -608,7 +618,7 @@ new_state = "1"
|
|||
on_target_error='ignore')
|
||||
self.assert_qmp(result, 'return', {})
|
||||
|
||||
event = self.vm.get_qmp_event(wait=True)
|
||||
event = self.vm.event_wait(name='BLOCK_JOB_ERROR')
|
||||
self.assertEquals(event['event'], 'BLOCK_JOB_ERROR')
|
||||
self.assert_qmp(event, 'data/device', 'drive0')
|
||||
self.assert_qmp(event, 'data/operation', 'write')
|
||||
|
@ -784,7 +794,12 @@ class TestGranularity(iotests.QMPTestCase):
|
|||
sync='full', target=target_img,
|
||||
mode='absolute-paths', granularity=8192)
|
||||
self.assert_qmp(result, 'return', {})
|
||||
|
||||
event = self.vm.get_qmp_event(wait=60.0)
|
||||
while event['event'] == 'JOB_STATUS_CHANGE':
|
||||
self.assert_qmp(event, 'data/id', 'drive0')
|
||||
event = self.vm.get_qmp_event(wait=60.0)
|
||||
|
||||
# Failures will manifest as COMPLETED/ERROR.
|
||||
self.assert_qmp(event, 'event', 'BLOCK_JOB_READY')
|
||||
self.complete_and_wait(drive='drive0', wait_ready=False)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue