summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVishvananda Ishaya <vishvananda@gmail.com>2010-11-17 21:49:25 +0000
committerTarmac <>2010-11-17 21:49:25 +0000
commit279a56469dbb5b1ae0e26e70107e1f6205a8b9fc (patch)
treeb71bce9d2ec8b7f5b4abc2d5e2cab5896057ecfa
parent551fd309fcbfedb99555a81fac6a40f003598fd6 (diff)
parent1dfdd7477647e45b96b5781789b846d5c9066663 (diff)
Fixes eventlet race condition in cloud tests.
-rw-r--r--nova/db/sqlalchemy/api.py2
-rw-r--r--nova/tests/cloud_unittest.py4
-rw-r--r--nova/tests/quota_unittest.py8
3 files changed, 8 insertions, 6 deletions
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index b8f999af4..dfa4efc8f 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -390,7 +390,7 @@ def floating_ip_get_by_address(context, address, session=None):
filter_by(deleted=can_read_deleted(context)).\
first()
if not result:
- raise exception.NotFound('No fixed ip for address %s' % address)
+ raise exception.NotFound('No floating ip for address %s' % address)
return result
diff --git a/nova/tests/cloud_unittest.py b/nova/tests/cloud_unittest.py
index 2c6d9959b..9886a2449 100644
--- a/nova/tests/cloud_unittest.py
+++ b/nova/tests/cloud_unittest.py
@@ -101,6 +101,7 @@ class CloudTestCase(test.TrialTestCase):
self.cloud.describe_addresses(self.context)
self.cloud.release_address(self.context,
public_ip=address)
+ greenthread.sleep(0.3)
db.floating_ip_destroy(self.context, address)
def test_associate_disassociate_address(self):
@@ -111,6 +112,7 @@ class CloudTestCase(test.TrialTestCase):
'host': FLAGS.host})
self.cloud.allocate_address(self.context)
inst = db.instance_create(self.context, {})
+ fixed = self.network.allocate_fixed_ip(self.context, inst['id'])
ec2_id = cloud.internal_id_to_ec2_id(inst['internal_id'])
self.cloud.associate_address(self.context,
instance_id=ec2_id,
@@ -119,6 +121,8 @@ class CloudTestCase(test.TrialTestCase):
public_ip=address)
self.cloud.release_address(self.context,
public_ip=address)
+ greenthread.sleep(0.3)
+ self.network.deallocate_fixed_ip(self.context, fixed)
db.instance_destroy(self.context, inst['id'])
db.floating_ip_destroy(self.context, address)
diff --git a/nova/tests/quota_unittest.py b/nova/tests/quota_unittest.py
index 9e3afbf4e..b7c1d2acc 100644
--- a/nova/tests/quota_unittest.py
+++ b/nova/tests/quota_unittest.py
@@ -138,11 +138,8 @@ class QuotaTestCase(test.TrialTestCase):
def test_too_many_addresses(self):
address = '192.168.0.100'
- try:
- db.floating_ip_get_by_address(context.get_admin_context(), address)
- except exception.NotFound:
- db.floating_ip_create(context.get_admin_context(),
- {'address': address, 'host': FLAGS.host})
+ db.floating_ip_create(context.get_admin_context(),
+ {'address': address, 'host': FLAGS.host})
float_addr = self.network.allocate_floating_ip(self.context,
self.project.id)
# NOTE(vish): This assert never fails. When cloud attempts to
@@ -151,3 +148,4 @@ class QuotaTestCase(test.TrialTestCase):
# that is breaking.
self.assertRaises(cloud.QuotaError, self.cloud.allocate_address,
self.context)
+ db.floating_ip_destroy(context.get_admin_context(), address)