diff options
| author | Vishvananda Ishaya <vishvananda@gmail.com> | 2010-11-17 21:49:25 +0000 |
|---|---|---|
| committer | Tarmac <> | 2010-11-17 21:49:25 +0000 |
| commit | 279a56469dbb5b1ae0e26e70107e1f6205a8b9fc (patch) | |
| tree | b71bce9d2ec8b7f5b4abc2d5e2cab5896057ecfa | |
| parent | 551fd309fcbfedb99555a81fac6a40f003598fd6 (diff) | |
| parent | 1dfdd7477647e45b96b5781789b846d5c9066663 (diff) | |
Fixes eventlet race condition in cloud tests.
| -rw-r--r-- | nova/db/sqlalchemy/api.py | 2 | ||||
| -rw-r--r-- | nova/tests/cloud_unittest.py | 4 | ||||
| -rw-r--r-- | nova/tests/quota_unittest.py | 8 |
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) |
