summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSoren Hansen <soren@linux2go.dk>2011-03-22 16:42:37 +0100
committerSoren Hansen <soren@linux2go.dk>2011-03-22 16:42:37 +0100
commit3c7de6db490a8482f6d1fb5fefc750050cb1e269 (patch)
tree9ffbe703626e6ffe782fc872b0cad88cbf282889
parente40d692c55a02fa686e83bd87eca29a3cfa3d15e (diff)
downloadnova-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.py15
-rw-r--r--nova/virt/libvirt_conn.py10
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)