3 # Copyright (c) 2019 Red Hat, Inc.
6 # Cleber Rosa <crosa@redhat.com>
7 # Caio Carrara <ccarrara@redhat.com>
9 # This work is licensed under the terms of the GNU GPL, version 2 or
10 # later. See the COPYING file in the top-level directory.
13 from avocado_qemu
import Test
15 from avocado
.utils
import network
16 from avocado
.utils
import wait
19 class Migration(Test
):
24 def migration_finished(vm
):
25 return vm
.command('query-migrate')['status'] in ('completed', 'failed')
27 def _get_free_port(self
):
28 port
= network
.find_free_port()
30 self
.cancel('Failed to find a free port')
34 def test_migration_with_tcp_localhost(self
):
35 source_vm
= self
.get_vm()
36 dest_uri
= 'tcp:localhost:%u' % self
._get
_free
_port
()
37 dest_vm
= self
.get_vm('-incoming', dest_uri
)
40 source_vm
.qmp('migrate', uri
=dest_uri
)
42 self
.migration_finished
,
47 self
.assertEqual(dest_vm
.command('query-migrate')['status'], 'completed')
48 self
.assertEqual(source_vm
.command('query-migrate')['status'], 'completed')
49 self
.assertEqual(dest_vm
.command('query-status')['status'], 'running')
50 self
.assertEqual(source_vm
.command('query-status')['status'], 'postmigrate')