diff options
| author | Soren Hansen <soren@linux2go.dk> | 2011-03-22 16:42:37 +0100 |
|---|---|---|
| committer | Soren Hansen <soren@linux2go.dk> | 2011-03-22 16:42:37 +0100 |
| commit | 3c7de6db490a8482f6d1fb5fefc750050cb1e269 (patch) | |
| tree | 9ffbe703626e6ffe782fc872b0cad88cbf282889 | |
| parent | e40d692c55a02fa686e83bd87eca29a3cfa3d15e (diff) | |
| download | nova-3c7de6db490a8482f6d1fb5fefc750050cb1e269.tar.gz nova-3c7de6db490a8482f6d1fb5fefc750050cb1e269.tar.xz nova-3c7de6db490a8482f6d1fb5fefc750050cb1e269.zip | |
Pass a fake timing source to test_ensure_filtering_rules_for_instance_timeout, shaving off 30 seconds of test run time.
| -rw-r--r-- | nova/tests/test_virt.py | 15 | ||||
| -rw-r--r-- | nova/virt/libvirt_conn.py | 10 |
2 files changed, 21 insertions, 4 deletions
diff --git a/nova/tests/test_virt.py b/nova/tests/test_virt.py index b214f5ce7..a754f451a 100644 --- a/nova/tests/test_virt.py +++ b/nova/tests/test_virt.py @@ -429,6 +429,15 @@ class LibvirtConnTestCase(test.TestCase): def fake_raise(self): raise libvirt.libvirtError('ERR') + class FakeTime(object): + def __init__(self): + self.counter = 0 + + def sleep(self, t): + self.counter += t + + fake_timer = FakeTime() + self.create_fake_libvirt_mock(nwfilterLookupByName=fake_raise) instance_ref = db.instance_create(self.context, self.test_instance) @@ -438,11 +447,15 @@ class LibvirtConnTestCase(test.TestCase): conn = libvirt_conn.LibvirtConnection(False) conn.firewall_driver.setattr('setup_basic_filtering', fake_none) conn.firewall_driver.setattr('prepare_instance_filter', fake_none) - conn.ensure_filtering_rules_for_instance(instance_ref) + conn.ensure_filtering_rules_for_instance(instance_ref, + time=fake_timer) except exception.Error, e: c1 = (0 <= e.message.find('Timeout migrating for')) self.assertTrue(c1) + self.assertEqual(29, fake_timer.counter, "Didn't wait the expected " + "amount of time") + db.instance_destroy(self.context, instance_ref['id']) def test_live_migration_raises_exception(self): diff --git a/nova/virt/libvirt_conn.py b/nova/virt/libvirt_conn.py index e80b9fbdf..de4a8fbca 100644 --- a/nova/virt/libvirt_conn.py +++ b/nova/virt/libvirt_conn.py @@ -42,13 +42,13 @@ import shutil import sys import random import subprocess -import time import uuid from xml.dom import minidom -from eventlet import tpool +from eventlet import greenthread from eventlet import semaphore +from eventlet import tpool import IPy @@ -1133,7 +1133,8 @@ class LibvirtConnection(object): return - def ensure_filtering_rules_for_instance(self, instance_ref): + def ensure_filtering_rules_for_instance(self, instance_ref, + time=None): """Setting up filtering rules and waiting for its completion. To migrate an instance, filtering rules to hypervisors @@ -1157,6 +1158,9 @@ class LibvirtConnection(object): """ + if not time: + time = greenthread + # If any instances never launch at destination host, # basic-filtering must be set here. self.firewall_driver.setup_basic_filtering(instance_ref) |
