Commit 921a3217 authored by Stefan Hajnoczi's avatar Stefan Hajnoczi
Browse files

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: default avatarStefan Hajnoczi <stefanha@redhat.com>
Message-id: 20170824072202.26818-4-stefanha@redhat.com
Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
parent f4844ac0
Loading
Loading
Loading
Loading
+51 −52
Original line number Diff line number Diff line
@@ -19,28 +19,27 @@
#
# Non-shared storage migration test using NBD server and drive-mirror

import os
import atexit
import iotests

iotests.verify_platform(['linux'])

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:

    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)

    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)
    (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('Launching NBD server on destination...')
    iotests.log(dest_vm.qmp('nbd-server-start', addr={'type': 'unix', 'data': {'path': nbd_sock_path}}))