Lines Matching +full:total +full:- +full:timeout
21 # Check using the job-* QMP commands with block jobs
30 with iotests.Timeout(3, "Timeout waiting for job to pause"):
32 result = vm.qmp('query-jobs')
37 # Test that block-job-pause/resume and job-pause/resume can be mixed
39 for pause_cmd, pause_arg in [('block-job-pause', 'device'),
40 ('job-pause', 'id')]:
41 for resume_cmd, resume_arg in [('block-job-resume', 'device'),
42 ('job-resume', 'id')]:
48 result = vm.qmp('query-jobs')
51 old_progress = result['return'][0]['current-progress']
52 total_progress = result['return'][0]['total-progress']
58 while result['return'][0]['current-progress'] == old_progress:
59 result = vm.qmp('query-jobs')
63 # any further; therefore, the query-jobs result can be
65 iotests.log(vm.qmp('query-jobs'))
72 iotests.log('Starting block job: %s (auto-finalize: %s; auto-dismiss: %s)' %
74 job_args.get('auto-finalize', True),
75 job_args.get('auto-dismiss', True)))
79 # yet (and the total progress may not have been fully determined yet), so
80 # filter out the progress. Later query-job calls don't need the filtering
82 result = vm.qmp('query-jobs')
84 j['current-progress'] = 'FILTERED'
85 j['total-progress'] = 'FILTERED'
88 # undefined -> created -> running
92 # Wait for total-progress to stabilize
93 while vm.qmp('query-jobs')['return'][0]['total-progress'] < img_size:
102 iotests.log(vm.qmp('job-complete', id='job0'))
103 iotests.log(vm.qmp('job-finalize', id='job0'))
104 iotests.log(vm.qmp('job-dismiss', id='job0'))
106 iotests.log(vm.qmp('block-job-complete', device='job0'))
107 iotests.log(vm.qmp('block-job-finalize', id='job0'))
108 iotests.log(vm.qmp('block-job-dismiss', id='job0'))
111 iotests.log(vm.qmp('block-job-set-speed', device='job0', speed=0))
117 iotests.log(vm.qmp('query-jobs'))
125 iotests.log(vm.qmp('job-finalize', id='job0'))
126 iotests.log(vm.qmp('job-dismiss', id='job0'))
128 iotests.log(vm.qmp('block-job-finalize', id='job0'))
129 iotests.log(vm.qmp('block-job-dismiss', id='job0'))
132 iotests.log(vm.qmp('job-complete', id='job0'))
143 if not job_args.get('auto-finalize', True):
146 iotests.log(vm.qmp('query-jobs'))
148 iotests.log(vm.qmp('job-pause', id='job0'))
149 iotests.log(vm.qmp('job-complete', id='job0'))
150 iotests.log(vm.qmp('job-dismiss', id='job0'))
152 iotests.log(vm.qmp('block-job-pause', device='job0'))
153 iotests.log(vm.qmp('block-job-complete', device='job0'))
154 iotests.log(vm.qmp('block-job-dismiss', id='job0'))
157 iotests.log(vm.qmp('job-finalize', id='job0'))
163 if not job_args.get('auto-dismiss', True):
166 iotests.log(vm.qmp('query-jobs'))
168 iotests.log(vm.qmp('job-pause', id='job0'))
169 iotests.log(vm.qmp('job-complete', id='job0'))
170 iotests.log(vm.qmp('job-finalize', id='job0'))
172 iotests.log(vm.qmp('block-job-pause', device='job0'))
173 iotests.log(vm.qmp('block-job-complete', device='job0'))
174 iotests.log(vm.qmp('block-job-finalize', id='job0'))
177 iotests.log(vm.qmp('job-dismiss', id='job0'))
181 iotests.log(vm.qmp('query-jobs'))
188 iotests.qemu_img_create('-f', iotests.imgfmt, disk_path, str(img_size))
189 iotests.qemu_io('-c', 'write 0 %i' % (img_size),
190 '-f', iotests.imgfmt, disk_path)
195 'node-name': 'drive0-node',
203 # In order to keep things deterministic (especially progress in query-job,
207 # copy-chunk-size.
209 # Chose 64k copy-chunk-size both for mirror (by buf_size) and backup (by
210 # x-max-chunk). The slice time, i.e. the granularity of the rate limiting
215 test_job_lifecycle(vm, 'drive-mirror', has_ready=True, job_args={
216 'device': 'drive0-node',
225 test_job_lifecycle(vm, 'drive-backup', is_mirror=True, job_args={
226 'device': 'drive0-node',
230 'x-perf': {'max-chunk': 65536},
231 'auto-finalize': auto_finalize,
232 'auto-dismiss': auto_dismiss,