Merge "Add security group calls missing from latest compute rpc api version bump"

This commit is contained in:
Jenkins 2015-04-28 18:51:41 +00:00 committed by Gerrit Code Review
commit 0313392efb
5 changed files with 39 additions and 44 deletions

View File

@ -3825,7 +3825,7 @@ class SecurityGroupAPI(base.Base, security_group_base.SecurityGroupBase):
def __init__(self, skip_policy_check=False, **kwargs):
super(SecurityGroupAPI, self).__init__(**kwargs)
self.skip_policy_check = skip_policy_check
self.security_group_rpcapi = compute_rpcapi.SecurityGroupAPI()
self.compute_rpcapi = compute_rpcapi.ComputeAPI()
def validate_property(self, value, property, allowed):
"""Validate given security group property.
@ -4022,7 +4022,7 @@ class SecurityGroupAPI(base.Base, security_group_base.SecurityGroupBase):
security_group['id'])
# NOTE(comstud): No instance_uuid argument to this compute manager
# call
self.security_group_rpcapi.refresh_security_group_rules(context,
self.compute_rpcapi.refresh_security_group_rules(context,
security_group['id'], host=instance.host)
@wrap_check_security_groups_policy
@ -4045,7 +4045,7 @@ class SecurityGroupAPI(base.Base, security_group_base.SecurityGroupBase):
security_group['id'])
# NOTE(comstud): No instance_uuid argument to this compute manager
# call
self.security_group_rpcapi.refresh_security_group_rules(context,
self.compute_rpcapi.refresh_security_group_rules(context,
security_group['id'], host=instance.host)
def get_rule(self, context, id):
@ -4150,7 +4150,7 @@ class SecurityGroupAPI(base.Base, security_group_base.SecurityGroupBase):
for instance in security_group['instances']:
if instance.host is not None:
self.security_group_rpcapi.refresh_instance_security_rules(
self.compute_rpcapi.refresh_instance_security_rules(
context, instance.host, instance)
def trigger_members_refresh(self, context, group_ids):
@ -4186,7 +4186,7 @@ class SecurityGroupAPI(base.Base, security_group_base.SecurityGroupBase):
# ..then we send a request to refresh the rules for each instance.
for instance in instances.values():
if instance.host:
self.security_group_rpcapi.refresh_instance_security_rules(
self.compute_rpcapi.refresh_instance_security_rules(
context, instance.host, instance)
def get_instance_security_groups(self, context, instance_uuid,

View File

@ -6745,6 +6745,17 @@ class _ComputeV4Proxy(object):
bdms, recreate, on_shared_storage,
preserve_ephemeral=preserve_ephemeral)
def refresh_security_group_rules(self, ctxt, security_group_id):
return self.manager.refresh_security_group_rules(ctxt,
security_group_id)
def refresh_security_group_members(self, ctxt, security_group_id):
return self.manager.refresh_security_group_members(ctxt,
security_group_id)
def refresh_instance_security_rules(self, ctxt, instance):
return self.manager.refresh_instance_security_rules(ctxt, instance)
def refresh_provider_fw_rules(self, ctxt):
return self.manager.refresh_provider_fw_rules(ctxt)

View File

@ -1054,43 +1054,21 @@ class ComputeAPI(object):
cctxt.cast(ctxt, 'unquiesce_instance', instance=instance,
mapping=mapping)
class SecurityGroupAPI(object):
'''Client side of the security group rpc API.
API version history:
1.0 - Initial version.
1.41 - Adds refresh_instance_security_rules()
2.0 - Remove 1.x backwards compat
3.0 - Identical to 2.x, but has to be bumped at the same time as the
compute API since it's all together on the server side.
'''
def __init__(self):
super(SecurityGroupAPI, self).__init__()
target = messaging.Target(topic=CONF.compute_topic, version='3.0')
version_cap = ComputeAPI.VERSION_ALIASES.get(
CONF.upgrade_levels.compute, CONF.upgrade_levels.compute)
self.client = rpc.get_client(target, version_cap)
def refresh_security_group_rules(self, ctxt, security_group_id, host):
version = '3.0'
version = self._compat_ver('4.0', '3.0')
cctxt = self.client.prepare(server=host, version=version)
cctxt.cast(ctxt, 'refresh_security_group_rules',
security_group_id=security_group_id)
def refresh_security_group_members(self, ctxt, security_group_id,
host):
version = '3.0'
version = self._compat_ver('4.0', '3.0')
cctxt = self.client.prepare(server=host, version=version)
cctxt.cast(ctxt, 'refresh_security_group_members',
security_group_id=security_group_id)
def refresh_instance_security_rules(self, ctxt, host, instance):
version = '3.0'
version = self._compat_ver('4.0', '3.0')
instance_p = jsonutils.to_primitive(instance)
cctxt = self.client.prepare(server=_compute_host(None, instance),
version=version)

View File

@ -9640,7 +9640,7 @@ class ComputeAPITestCase(BaseTestCase):
rule_get)
self.stubs.Set(self.compute_api.db, 'security_group_get', group_get)
rpcapi = self.security_group_api.security_group_rpcapi
rpcapi = compute_rpcapi.ComputeAPI
self.mox.StubOutWithMock(rpcapi, 'refresh_instance_security_rules')
rpcapi.refresh_instance_security_rules(self.context,
instance['host'],
@ -9666,7 +9666,7 @@ class ComputeAPITestCase(BaseTestCase):
rule_get)
self.stubs.Set(self.compute_api.db, 'security_group_get', group_get)
rpcapi = self.security_group_api.security_group_rpcapi
rpcapi = compute_rpcapi.ComputeAPI
self.mox.StubOutWithMock(rpcapi, 'refresh_instance_security_rules')
rpcapi.refresh_instance_security_rules(self.context,
instance['host'],
@ -9690,7 +9690,7 @@ class ComputeAPITestCase(BaseTestCase):
rule_get)
self.stubs.Set(self.compute_api.db, 'security_group_get', group_get)
rpcapi = self.security_group_api.security_group_rpcapi
rpcapi = compute_rpcapi.ComputeAPI
self.mox.StubOutWithMock(rpcapi, 'refresh_instance_security_rules')
self.mox.ReplayAll()
@ -9706,7 +9706,7 @@ class ComputeAPITestCase(BaseTestCase):
self.stubs.Set(self.compute_api.db, 'security_group_get', group_get)
rpcapi = self.security_group_api.security_group_rpcapi
rpcapi = compute_rpcapi.ComputeAPI
self.mox.StubOutWithMock(rpcapi, 'refresh_instance_security_rules')
rpcapi.refresh_instance_security_rules(self.context,
instance['host'],
@ -9724,7 +9724,7 @@ class ComputeAPITestCase(BaseTestCase):
self.stubs.Set(self.compute_api.db, 'security_group_get', group_get)
rpcapi = self.security_group_api.security_group_rpcapi
rpcapi = compute_rpcapi.ComputeAPI
self.mox.StubOutWithMock(rpcapi, 'refresh_instance_security_rules')
rpcapi.refresh_instance_security_rules(self.context,
instance['host'],
@ -9740,7 +9740,7 @@ class ComputeAPITestCase(BaseTestCase):
self.stubs.Set(self.compute_api.db, 'security_group_get', group_get)
rpcapi = self.security_group_api.security_group_rpcapi
rpcapi = compute_rpcapi.ComputeAPI
self.mox.StubOutWithMock(rpcapi, 'refresh_instance_security_rules')
self.mox.ReplayAll()

View File

@ -579,23 +579,29 @@ class ComputeRpcAPITestCase(test.NoDBTestCase):
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')
security_group_id='id', host='host', version='4.0')
self.flags(compute='kilo', group='upgrade_levels')
self._test_compute_api('refresh_security_group_rules', 'cast',
rpcapi_class=compute_rpcapi.SecurityGroupAPI,
security_group_id='id', host='host')
security_group_id='id', host='host', version='3.0')
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')
security_group_id='id', host='host', version='4.0')
self.flags(compute='kilo', group='upgrade_levels')
self._test_compute_api('refresh_security_group_members', 'cast',
rpcapi_class=compute_rpcapi.SecurityGroupAPI,
security_group_id='id', host='host')
security_group_id='id', host='host', version='3.0')
def test_refresh_instance_security_rules(self):
self._test_compute_api('refresh_instance_security_rules', 'cast',
host='fake_host', instance=self.fake_instance_obj,
version='4.0', assert_dict=True)
self.flags(compute='kilo', group='upgrade_levels')
self._test_compute_api('refresh_instance_security_rules', 'cast',
host='fake_host', instance=self.fake_instance_obj,
version='3.0', assert_dict=True)
def test_remove_aggregate_host(self):
self._test_compute_api('remove_aggregate_host', 'cast',