aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Hajnoczi <stefanha@redhat.com>2017-08-24 08:22:02 +0100
committerStefan Hajnoczi <stefanha@redhat.com>2017-09-05 10:32:07 +0100
commit921a32179bb0a31c45a505f4ef36de4893be9612 (patch)
treeac63f9bb79c868024024253ef153eeb89697dd36
parentf4844ac0adabc458ba4610a71155448783d37c73 (diff)
qemu-iotests: use context managers for resource cleanup in 194
Switch from atexit.register() to a more elegant idiom of declaring resources in a with statement: with FilePath('monitor.sock') as monitor_path, VM() as vm: ... The files and VMs will be automatically cleaned up whether the test passes or fails. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Message-id: 20170824072202.26818-4-stefanha@redhat.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
-rwxr-xr-xtests/qemu-iotests/194103
1 files changed, 51 insertions, 52 deletions
diff --git a/tests/qemu-iotests/194 b/tests/qemu-iotests/194
index a3e3bad664..6449b9b64a 100755
--- a/tests/qemu-iotests/194
+++ b/tests/qemu-iotests/194
@@ -19,66 +19,65 @@
#
# Non-shared storage migration test using NBD server and drive-mirror
-import os
-import atexit
import iotests
iotests.verify_platform(['linux'])
-img_size = '1G'
-source_img_path = os.path.join(iotests.test_dir, 'source.img')
-dest_img_path = os.path.join(iotests.test_dir, 'dest.img')
-iotests.qemu_img_pipe('create', '-f', iotests.imgfmt, source_img_path, img_size)
-iotests.qemu_img_pipe('create', '-f', iotests.imgfmt, dest_img_path, img_size)
+with iotests.FilePath('source.img') as source_img_path, \
+ iotests.FilePath('dest.img') as dest_img_path, \
+ iotests.FilePath('migration.sock') as migration_sock_path, \
+ iotests.FilePath('nbd.sock') as nbd_sock_path, \
+ iotests.VM('source') as source_vm, \
+ iotests.VM('dest') as dest_vm:
-iotests.log('Launching VMs...')
-migration_sock_path = os.path.join(iotests.test_dir, 'migration.sock')
-nbd_sock_path = os.path.join(iotests.test_dir, 'nbd.sock')
-source_vm = iotests.VM('source').add_drive(source_img_path)
-dest_vm = (iotests.VM('dest').add_drive(dest_img_path)
- .add_incoming('unix:{0}'.format(migration_sock_path)))
-source_vm.launch()
-atexit.register(source_vm.shutdown)
-dest_vm.launch()
-atexit.register(dest_vm.shutdown)
+ img_size = '1G'
+ iotests.qemu_img_pipe('create', '-f', iotests.imgfmt, source_img_path, img_size)
+ iotests.qemu_img_pipe('create', '-f', iotests.imgfmt, dest_img_path, img_size)
-iotests.log('Launching NBD server on destination...')
-iotests.log(dest_vm.qmp('nbd-server-start', addr={'type': 'unix', 'data': {'path': nbd_sock_path}}))
-iotests.log(dest_vm.qmp('nbd-server-add', device='drive0', writable=True))
+ iotests.log('Launching VMs...')
+ (source_vm.add_drive(source_img_path)
+ .launch())
+ (dest_vm.add_drive(dest_img_path)
+ .add_incoming('unix:{0}'.format(migration_sock_path))
+ .launch())
-iotests.log('Starting `drive-mirror` on source...')
-iotests.log(source_vm.qmp(
- 'drive-mirror',
- device='drive0',
- target='nbd+unix:///drive0?socket={0}'.format(nbd_sock_path),
- sync='full',
- format='raw', # always raw, the server handles the format
- mode='existing',
- job_id='mirror-job0'))
+ iotests.log('Launching NBD server on destination...')
+ iotests.log(dest_vm.qmp('nbd-server-start', addr={'type': 'unix', 'data': {'path': nbd_sock_path}}))
+ iotests.log(dest_vm.qmp('nbd-server-add', device='drive0', writable=True))
-iotests.log('Waiting for `drive-mirror` to complete...')
-iotests.log(source_vm.event_wait('BLOCK_JOB_READY'),
- filters=[iotests.filter_qmp_event])
+ iotests.log('Starting `drive-mirror` on source...')
+ iotests.log(source_vm.qmp(
+ 'drive-mirror',
+ device='drive0',
+ target='nbd+unix:///drive0?socket={0}'.format(nbd_sock_path),
+ sync='full',
+ format='raw', # always raw, the server handles the format
+ mode='existing',
+ job_id='mirror-job0'))
-iotests.log('Starting migration...')
-source_vm.qmp('migrate-set-capabilities',
- capabilities=[{'capability': 'events', 'state': True}])
-dest_vm.qmp('migrate-set-capabilities',
- capabilities=[{'capability': 'events', 'state': True}])
-iotests.log(source_vm.qmp('migrate', uri='unix:{0}'.format(migration_sock_path)))
+ iotests.log('Waiting for `drive-mirror` to complete...')
+ iotests.log(source_vm.event_wait('BLOCK_JOB_READY'),
+ filters=[iotests.filter_qmp_event])
-while True:
- event1 = source_vm.event_wait('MIGRATION')
- iotests.log(event1, filters=[iotests.filter_qmp_event])
- if event1['data']['status'] in ('completed', 'failed'):
- iotests.log('Gracefully ending the `drive-mirror` job on source...')
- iotests.log(source_vm.qmp('block-job-cancel', device='mirror-job0'))
- break
+ iotests.log('Starting migration...')
+ source_vm.qmp('migrate-set-capabilities',
+ capabilities=[{'capability': 'events', 'state': True}])
+ dest_vm.qmp('migrate-set-capabilities',
+ capabilities=[{'capability': 'events', 'state': True}])
+ iotests.log(source_vm.qmp('migrate', uri='unix:{0}'.format(migration_sock_path)))
-while True:
- event2 = source_vm.event_wait('BLOCK_JOB_COMPLETED')
- iotests.log(event2, filters=[iotests.filter_qmp_event])
- if event2['event'] == 'BLOCK_JOB_COMPLETED':
- iotests.log('Stopping the NBD server on destination...')
- iotests.log(dest_vm.qmp('nbd-server-stop'))
- break
+ while True:
+ event1 = source_vm.event_wait('MIGRATION')
+ iotests.log(event1, filters=[iotests.filter_qmp_event])
+ if event1['data']['status'] in ('completed', 'failed'):
+ iotests.log('Gracefully ending the `drive-mirror` job on source...')
+ iotests.log(source_vm.qmp('block-job-cancel', device='mirror-job0'))
+ break
+
+ while True:
+ event2 = source_vm.event_wait('BLOCK_JOB_COMPLETED')
+ iotests.log(event2, filters=[iotests.filter_qmp_event])
+ if event2['event'] == 'BLOCK_JOB_COMPLETED':
+ iotests.log('Stopping the NBD server on destination...')
+ iotests.log(dest_vm.qmp('nbd-server-stop'))
+ break