From 123b28cd1a4ffa1e972e29963cb0e6be46b0d7c2 Mon Sep 17 00:00:00 2001 From: Eoghan Glynn Date: Tue, 22 May 2012 13:35:06 +0100 Subject: Dedupe native and EC2 security group APIs. Reduce the code duplication in the native openstack and EC2 APIs related to security groups, by factoring commonality into a new internal SecurityGroupAPI. Also fixes bug lp 1005931 Change-Id: Ifb92bf5d0f07d5713818a3eee6175ef03e8c0b7c --- nova/tests/api/ec2/test_cloud.py | 2 +- nova/tests/compute/test_compute.py | 16 +++++++++------- nova/tests/compute/test_rpcapi.py | 9 ++++++++- nova/tests/policy.json | 4 ++-- 4 files changed, 20 insertions(+), 11 deletions(-) (limited to 'nova/tests') diff --git a/nova/tests/api/ec2/test_cloud.py b/nova/tests/api/ec2/test_cloud.py index 5bf20a4e0..afb906f45 100644 --- a/nova/tests/api/ec2/test_cloud.py +++ b/nova/tests/api/ec2/test_cloud.py @@ -295,7 +295,7 @@ class CloudTestCase(test.TestCase): def test_security_group_quota_limit(self): self.flags(quota_security_groups=10) - for i in range(1, 10): + for i in range(1, FLAGS.quota_security_groups + 1): name = 'test name %i' % i descript = 'test description %i' % i create = self.cloud.create_security_group diff --git a/nova/tests/compute/test_compute.py b/nova/tests/compute/test_compute.py index a32e0de05..92e5d193c 100644 --- a/nova/tests/compute/test_compute.py +++ b/nova/tests/compute/test_compute.py @@ -2001,7 +2001,9 @@ class ComputeAPITestCase(BaseTestCase): super(ComputeAPITestCase, self).setUp() self.stubs.Set(nova.network.API, 'get_instance_nw_info', fake_get_nw_info) - self.compute_api = compute.API() + self.security_group_api = compute.api.SecurityGroupAPI() + self.compute_api = compute.API( + security_group_api=self.security_group_api) self.fake_image = { 'id': 1, 'properties': {'kernel_id': 'fake_kernel_id', @@ -3628,12 +3630,12 @@ class ComputeAPITestCase(BaseTestCase): self.compute.run_instance(self.context, instance['uuid']) instance = self.compute_api.get(self.context, instance['uuid']) security_group_name = self._create_group()['name'] - self.compute_api.add_security_group(self.context, - instance, - security_group_name) - self.compute_api.remove_security_group(self.context, - instance, - security_group_name) + self.security_group_api.add_to_instance(self.context, + instance, + security_group_name) + self.security_group_api.remove_from_instance(self.context, + instance, + security_group_name) def test_get_diagnostics(self): instance = self._create_fake_instance() diff --git a/nova/tests/compute/test_rpcapi.py b/nova/tests/compute/test_rpcapi.py index 47fb10645..a0da63918 100644 --- a/nova/tests/compute/test_rpcapi.py +++ b/nova/tests/compute/test_rpcapi.py @@ -44,7 +44,12 @@ class ComputeRpcAPITestCase(test.TestCase): def _test_compute_api(self, method, rpc_method, **kwargs): ctxt = context.RequestContext('fake_user', 'fake_project') - rpcapi = compute_rpcapi.ComputeAPI() + if 'rpcapi_class' in kwargs: + rpcapi_class = kwargs['rpcapi_class'] + del kwargs['rpcapi_class'] + else: + rpcapi_class = compute_rpcapi.ComputeAPI + rpcapi = rpcapi_class() expected_retval = 'foo' if method == 'call' else None expected_msg = rpcapi.make_msg(method, **kwargs) @@ -224,10 +229,12 @@ class ComputeRpcAPITestCase(test.TestCase): def test_refresh_security_group_rules(self): self._test_compute_api('refresh_security_group_rules', 'cast', + rpcapi_class=compute_rpcapi.SecurityGroupAPI, security_group_id='id', host='host') def test_refresh_security_group_members(self): self._test_compute_api('refresh_security_group_members', 'cast', + rpcapi_class=compute_rpcapi.SecurityGroupAPI, security_group_id='id', host='host') def test_remove_aggregate_host(self): diff --git a/nova/tests/policy.json b/nova/tests/policy.json index aa9c79749..8f8ea769c 100644 --- a/nova/tests/policy.json +++ b/nova/tests/policy.json @@ -58,8 +58,8 @@ "compute:snapshot": [], "compute:backup": [], - "compute:add_security_group": [], - "compute:remove_security_group": [], + "compute:security_groups:add_to_instance": [], + "compute:security_groups:remove_from_instance": [], "compute:delete": [], "compute:soft_delete": [], -- cgit