Merge "Request objects in security_groups api extensions"
This commit is contained in:
commit
0a3201dc7e
|
@ -364,7 +364,8 @@ class SecurityGroupActionController(wsgi.Controller):
|
|||
|
||||
def _invoke(self, method, context, id, group_name):
|
||||
with translate_exceptions():
|
||||
instance = self.compute_api.get(context, id)
|
||||
instance = self.compute_api.get(context, id,
|
||||
want_objects=True)
|
||||
method(context, instance, group_name)
|
||||
|
||||
return webob.Response(status_int=202)
|
||||
|
|
|
@ -378,7 +378,7 @@ class SecurityGroupActionController(wsgi.Controller):
|
|||
return group_name
|
||||
|
||||
def _invoke(self, method, context, id, group_name):
|
||||
instance = self.compute_api.get(context, id)
|
||||
instance = self.compute_api.get(context, id, want_objects=True)
|
||||
method(context, instance, group_name)
|
||||
|
||||
@extensions.expected_errors((400, 404, 409))
|
||||
|
|
|
@ -4004,7 +4004,7 @@ class SecurityGroupAPI(base.Base, security_group_base.SecurityGroupBase):
|
|||
context.project_id,
|
||||
security_group_name)
|
||||
|
||||
instance_uuid = instance['uuid']
|
||||
instance_uuid = instance.uuid
|
||||
|
||||
# check if the security group is associated with the server
|
||||
if self.is_associated_with_server(security_group, instance_uuid):
|
||||
|
@ -4018,7 +4018,7 @@ class SecurityGroupAPI(base.Base, security_group_base.SecurityGroupBase):
|
|||
# NOTE(comstud): No instance_uuid argument to this compute manager
|
||||
# call
|
||||
self.security_group_rpcapi.refresh_security_group_rules(context,
|
||||
security_group['id'], host=instance['host'])
|
||||
security_group['id'], host=instance.host)
|
||||
|
||||
@wrap_check_security_groups_policy
|
||||
def remove_from_instance(self, context, instance, security_group_name):
|
||||
|
@ -4027,7 +4027,7 @@ class SecurityGroupAPI(base.Base, security_group_base.SecurityGroupBase):
|
|||
context.project_id,
|
||||
security_group_name)
|
||||
|
||||
instance_uuid = instance['uuid']
|
||||
instance_uuid = instance.uuid
|
||||
|
||||
# check if the security group is associated with the server
|
||||
if not self.is_associated_with_server(security_group, instance_uuid):
|
||||
|
@ -4041,7 +4041,7 @@ class SecurityGroupAPI(base.Base, security_group_base.SecurityGroupBase):
|
|||
# NOTE(comstud): No instance_uuid argument to this compute manager
|
||||
# call
|
||||
self.security_group_rpcapi.refresh_security_group_rules(context,
|
||||
security_group['id'], host=instance['host'])
|
||||
security_group['id'], host=instance.host)
|
||||
|
||||
def get_rule(self, context, id):
|
||||
self.ensure_default(context)
|
||||
|
|
|
@ -420,7 +420,7 @@ class SecurityGroupAPI(security_group_base.SecurityGroupBase):
|
|||
else:
|
||||
LOG.exception(_LE("Neutron Error:"))
|
||||
raise exc_info[0], exc_info[1], exc_info[2]
|
||||
params = {'device_id': instance['uuid']}
|
||||
params = {'device_id': instance.uuid}
|
||||
try:
|
||||
ports = neutron.list_ports(**params).get('ports')
|
||||
except n_exc.NeutronClientException:
|
||||
|
@ -429,7 +429,7 @@ class SecurityGroupAPI(security_group_base.SecurityGroupBase):
|
|||
|
||||
if not ports:
|
||||
msg = (_("instance_id %s could not be found as device id on"
|
||||
" any ports") % instance['uuid'])
|
||||
" any ports") % instance.uuid)
|
||||
self.raise_not_found(msg)
|
||||
|
||||
for port in ports:
|
||||
|
@ -438,7 +438,7 @@ class SecurityGroupAPI(security_group_base.SecurityGroupBase):
|
|||
"%(instance)s since the port %(port_id)s "
|
||||
"does not meet security requirements"),
|
||||
{'name': security_group_name,
|
||||
'instance': instance['uuid'],
|
||||
'instance': instance.uuid,
|
||||
'port_id': port['id']})
|
||||
raise exception.SecurityGroupCannotBeApplied()
|
||||
if 'security_groups' not in port:
|
||||
|
@ -475,7 +475,7 @@ class SecurityGroupAPI(security_group_base.SecurityGroupBase):
|
|||
else:
|
||||
LOG.exception(_LE("Neutron Error:"))
|
||||
raise exc_info[0], exc_info[1], exc_info[2]
|
||||
params = {'device_id': instance['uuid']}
|
||||
params = {'device_id': instance.uuid}
|
||||
try:
|
||||
ports = neutron.list_ports(**params).get('ports')
|
||||
except n_exc.NeutronClientException:
|
||||
|
@ -484,7 +484,7 @@ class SecurityGroupAPI(security_group_base.SecurityGroupBase):
|
|||
|
||||
if not ports:
|
||||
msg = (_("instance_id %s could not be found as device id on"
|
||||
" any ports") % instance['uuid'])
|
||||
" any ports") % instance.uuid)
|
||||
self.raise_not_found(msg)
|
||||
|
||||
found_security_group = False
|
||||
|
@ -514,7 +514,7 @@ class SecurityGroupAPI(security_group_base.SecurityGroupBase):
|
|||
msg = (_("Security group %(security_group_name)s not associated "
|
||||
"with the instance %(instance)s") %
|
||||
{'security_group_name': security_group_name,
|
||||
'instance': instance['uuid']})
|
||||
'instance': instance.uuid})
|
||||
self.raise_not_found(msg)
|
||||
|
||||
def populate_security_groups(self, instance, security_groups):
|
||||
|
|
|
@ -212,9 +212,21 @@ class SecurityGroupBase(object):
|
|||
raise NotImplementedError()
|
||||
|
||||
def add_to_instance(self, context, instance, security_group_name):
|
||||
"""Add security group to the instance.
|
||||
|
||||
:param context: The request context.
|
||||
:param instance: nova.objects.instance.Instance object.
|
||||
:param security_group_name: security group name to add
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def remove_from_instance(self, context, instance, security_group_name):
|
||||
"""Remove the security group associated with the instance.
|
||||
|
||||
:param context: The request context.
|
||||
:param instance: nova.objects.instance.Instance object.
|
||||
:param security_group_name: security group name to remove
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
@staticmethod
|
||||
|
|
|
@ -9477,7 +9477,8 @@ class ComputeAPITestCase(BaseTestCase):
|
|||
self.compute.run_instance(self.context,
|
||||
instance, {}, {}, None, None,
|
||||
None, True, None, False)
|
||||
instance = self.compute_api.get(self.context, instance['uuid'])
|
||||
instance = self.compute_api.get(self.context, instance.uuid,
|
||||
want_objects=True)
|
||||
security_group_name = self._create_group()['name']
|
||||
|
||||
self.security_group_api.add_to_instance(self.context,
|
||||
|
|
Loading…
Reference in New Issue