From b1ff4573ed477dd1c2505f96f93debce72304d88 Mon Sep 17 00:00:00 2001 From: Hirofumi Ichihara Date: Mon, 2 Sep 2013 18:00:09 +0800 Subject: [PATCH] Add tests for pre_live_migration Add tests to ensure retrying plug_vifs in pre_live_migration works. Closes-bug: #1228749 Change-Id: I80d4cdc27836511c55b2555556edd7a1964c7158 --- nova/tests/virt/libvirt/test_libvirt.py | 31 +++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/nova/tests/virt/libvirt/test_libvirt.py b/nova/tests/virt/libvirt/test_libvirt.py index 0a37fd4c1d5..d1fdb557086 100644 --- a/nova/tests/virt/libvirt/test_libvirt.py +++ b/nova/tests/virt/libvirt/test_libvirt.py @@ -3064,6 +3064,37 @@ def fixed_ips(self): inst_ref['name']))) db.instance_destroy(self.context, inst_ref['uuid']) + def test_pre_live_migration_plug_vifs_retry_fails(self): + self.flags(live_migration_retry_count=3) + instance = {'name': 'test', 'uuid': 'uuid'} + + def fake_plug_vifs(instance, network_info): + raise processutils.ProcessExecutionError() + + conn = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False) + self.stubs.Set(conn, 'plug_vifs', fake_plug_vifs) + self.assertRaises(processutils.ProcessExecutionError, + conn.pre_live_migration, + self.context, instance, block_device_info=None, + network_info=[], disk_info={}) + + def test_pre_live_migration_plug_vifs_retry_works(self): + self.flags(live_migration_retry_count=3) + called = {'count': 0} + instance = {'name': 'test', 'uuid': 'uuid'} + + def fake_plug_vifs(instance, network_info): + called['count'] += 1 + if called['count'] < CONF.live_migration_retry_count: + raise processutils.ProcessExecutionError() + else: + return + + conn = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False) + self.stubs.Set(conn, 'plug_vifs', fake_plug_vifs) + conn.pre_live_migration(self.context, instance, block_device_info=None, + network_info=[], disk_info={}) + def test_get_instance_disk_info_works_correctly(self): # Test data instance_ref = db.instance_create(self.context, self.test_instance)