use the better way to handle the not found exception

1. What is the problem?

  When local neutron get the in deleting resource, we
  should return 404 not found. in before i used the
  _delete tag to handle it. but do not look like a good
  way.

2. What is the solution to the problem?

  Try hanlde it in the local and raise the network not
  found exception.

3. What the features to be implemented in the Tricircle to realize the solution?

  No new features.

Change-Id: Iceacaa83e9b31d05a2435586e8bbb3b433d90a4b
Signed-off-by: song baisen <songbaisen@szzt.com.cn>
This commit is contained in:
songbaisen 2018-03-07 20:02:52 +08:00
parent ab7401ef31
commit e8415b2594
2 changed files with 5 additions and 10 deletions

View File

@ -559,10 +559,6 @@ class TricirclePlugin(db_base_plugin_v2.NeutronDbPluginV2,
return policy['id'] if policy else None return policy['id'] if policy else None
def get_network(self, context, network_id, fields=None): def get_network(self, context, network_id, fields=None):
delete = False
if network_id.endswith('_delete'):
delete = True
network_id = network_id[0: network_id.find('_delete')]
dict_para = {'resource_id': network_id, 'resource_type': 'network'} dict_para = {'resource_id': network_id, 'resource_type': 'network'}
try: try:
@ -570,10 +566,8 @@ class TricirclePlugin(db_base_plugin_v2.NeutronDbPluginV2,
except t_exceptions.ResourceIsInDeleting(): except t_exceptions.ResourceIsInDeleting():
return network_id return network_id
except t_exceptions.ResourceNotFound: except t_exceptions.ResourceNotFound:
if delete: raise exceptions.NotFound()
pass
else:
raise exceptions.NotFound()
net = super(TricirclePlugin, self).get_network(context, network_id, net = super(TricirclePlugin, self).get_network(context, network_id,
fields) fields)

View File

@ -182,9 +182,10 @@ class TricirclePlugin(plugin.Ml2Plugin):
t_ctx = t_context.get_context_from_neutron_context(context) t_ctx = t_context.get_context_from_neutron_context(context)
if self._skip_non_api_query(t_ctx): if self._skip_non_api_query(t_ctx):
return [] return []
para = network['id'] + '_delete'
t_network = self.neutron_handle.handle_get( t_network = self.neutron_handle.handle_get(
t_ctx, 'network', para) t_ctx, 'network', network['id'])
if not t_network:
return []
return self._ensure_subnet(context, t_network) return self._ensure_subnet(context, t_network)
if not subnet_ids: if not subnet_ids:
return [] return []