Comment 0 for bug 1430394

Revision history for this message
krasnobaeva valentine (kv11) wrote : neutron port-delete operation throws HTTP 500, if removing port is lb-vip

1. create a VIP for existed load-balancer

# neutron lb-vip-create --name vip --protocol-port 80 --protocol HTTP --subnet-id <xxx> LB

2. obtain the id of this new VIP by neutron port-list

# neutron port-list
+--------------------------------------+------------------------------------------+-------------------+-------------------------------------------------------------------------------------+
| id | name | mac_address | fixed_ips |
+--------------------------------------+------------------------------------------+-------------------+-------------------------------------------------------------------------------------+
| 6bbfbc5b-93d2-4791-bb8a-ef292f04aed1 | vip-0093a88f-3c4c-4e84-a9d4-14e9264faa5a | fa:16:3e:7d:b9:b0 | {"subnet_id": "b22172b7-05ee-42b8-b3b9-48a312fdfc97", "ip_address": "192.168.10.5"} |

3. # neutron port-delete 6bbfbc5b-93d2-4791-bb8a-ef292f04aed1
Request Failed: internal server error while processing your request.

# neutron --verbose port-delete 6bbfbc5b-93d2-4791-bb8a-ef292f04aed1
DEBUG: neutronclient.neutron.v2_0.port.DeletePort run(Namespace(id=u'6bbfbc5b-93d2-4791-bb8a-ef292f04aed1', request_format='json'))
DEBUG: neutronclient.client
...
DEBUG: neutronclient.client
REQ: curl -i http://10.162.80.155:9696/v2.0/ports/6bbfbc5b-93d2-4791-bb8a-ef292f04aed1.json -X DELETE -H "X-Auth-Token: MIINoQYJKoZIhvcNAQcCoII......
.....Yr80gJf7djQE1JI+PA-Q==" -H "Content-Type: application/json" -H "Accept: application/json" -H "User-Agent: python-neutronclient"

DEBUG: neutronclient.client RESP:{'date': 'Tue, 10 Mar 2015 15:09:30 GMT', 'status': '500', 'content-length': '88', 'content-type': 'application/json; charset=UTF-8', 'x-openstack-request-id': 'req-75f8c9ca-e273-4e3f-bc4d-9db7d7828794'} {"NeutronError": "Request Failed: internal server error while processing your request."}

DEBUG: neutronclient.v2_0.client Error message: {"NeutronError": "Request Failed: internal server error while processing your request."}
ERROR: neutronclient.shell Request Failed: internal server error while processing your request.
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/neutronclient/shell.py", line 526, in run_subcommand
    return run_command(cmd, cmd_parser, sub_argv)
  File "/usr/lib/python2.6/site-packages/neutronclient/shell.py", line 79, in run_command
    return cmd.run(known_args)
  File "/usr/lib/python2.6/site-packages/neutronclient/neutron/v2_0/__init__.py", line 509, in run
    obj_deleter(_id)
  File "/usr/lib/python2.6/site-packages/neutronclient/v2_0/client.py", line 111, in with_params
    ret = self.function(instance, *args, **kwargs)
  File "/usr/lib/python2.6/site-packages/neutronclient/v2_0/client.py", line 326, in delete_port
    return self.delete(self.port_path % (port))
  File "/usr/lib/python2.6/site-packages/neutronclient/v2_0/client.py", line 1232, in delete
    headers=headers, params=params)
  File "/usr/lib/python2.6/site-packages/neutronclient/v2_0/client.py", line 1221, in retry_request
    headers=headers, params=params)
  File "/usr/lib/python2.6/site-packages/neutronclient/v2_0/client.py", line 1164, in do_request
    self._handle_fault_response(status_code, replybody)
  File "/usr/lib/python2.6/site-packages/neutronclient/v2_0/client.py", line 1134, in _handle_fault_response
    exception_handler_v20(status_code, des_error_body)
  File "/usr/lib/python2.6/site-packages/neutronclient/v2_0/client.py", line 84, in exception_handler_v20
    message=error_dict)
NeutronClientException: Request Failed: internal server error while processing your request.
DEBUG: neutronclient.shell clean_up DeletePort
DEBUG: neutronclient.shell Got an error: Request Failed: internal server error while processing your request.
[root@kvalenti-controller ~(keystone_admin)]# neutron port-delete 6bbfbc5b-93d2-4791-bb8a-ef292f04aed1
Request Failed: internal server error while processing your request.
#

It's better to return "Unable to delete" or some temporary error code. This mocking is not so painful for returning 500 error code to clients .