← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1633006] [NEW] Post metering-label-rules API returns 500 when the body has wrong metering_label_id

 

Public bug reported:

When we calls metering-label-rules POST API with wrong
metering_label_id, we catch 500 from Neutron server.


$ curl -g -i -X POST http://127.0.0.1:9696/v2.0/metering/metering-label-rules.json -H "User-Agent: python-neutronclient" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: $TOKEN" -d '{"metering_label_rule": {"remote_ip_prefix": "10.0.0.0/24", "direction": "ingress", "metering_label_id": "43e7dfd6-0deb-427b-9abc-5eaf5ada5040"}}'
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 150
X-Openstack-Request-Id: req-7242ca76-283a-4589-ae69-7214622b804b
Date: Thu, 13 Oct 2016 09:22:43 GMT

{"NeutronError": {"message": "Request Failed: internal server error
while processing your request.", "type": "HTTPInternalServerError",
"detail": ""}}

Error log:

2016-10-13 09:22:43.156 TRACE neutron.api.v2.resource     self._affected_rows = self._read_query_result(unbuffered=unbuffered)
2016-10-13 09:22:43.156 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 1019, in _read_query_result
2016-10-13 09:22:43.156 TRACE neutron.api.v2.resource     result.read()
2016-10-13 09:22:43.156 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 1302, in read
2016-10-13 09:22:43.156 TRACE neutron.api.v2.resource     first_packet = self.connection._read_packet()
2016-10-13 09:22:43.156 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 981, in _read_packet
2016-10-13 09:22:43.156 TRACE neutron.api.v2.resource     packet.check_error()
2016-10-13 09:22:43.156 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 393, in check_error
2016-10-13 09:22:43.156 TRACE neutron.api.v2.resource     err.raise_mysql_exception(self._data)
2016-10-13 09:22:43.156 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/pymysql/err.py", line 107, in raise_mysql_exception
2016-10-13 09:22:43.156 TRACE neutron.api.v2.resource     raise errorclass(errno, errval)
2016-10-13 09:22:43.156 TRACE neutron.api.v2.resource DBReferenceError: (pymysql.err.IntegrityError) (1452, u'Cannot add or update a child row: a foreign key constraint fails (`neutron`.`meteringlabelrules`, CONSTRAINT `meteringlabelrules_ibfk_1` FOREIGN KEY (`metering_label_id`) REFERENCES `meteringlabels` (`id`) ON DELETE CASCADE)') [SQL: u'INSERT INTO meteringlabelrules (id, direction, remote_ip_prefix, metering_label_id, excluded) VALUES (%(id)s, %(direction)s, %(remote_ip_prefix)s, %(metering_label_id)s, %(excluded)s)'] [parameters: {'remote_ip_prefix': u'10.0.0.0/24', 'direction': u'ingress', 'metering_label_id': u'43e7dfd6-0deb-427b-9abc-5eaf5ada5040', 'id': 'ee5358b7-7326-42d2-be37-829b97f945af', 'excluded': 0}]

** Affects: neutron
     Importance: Low
     Assignee: Hirofumi Ichihara (ichihara-hirofumi)
         Status: In Progress


** Tags: metering

** Changed in: neutron
     Assignee: (unassigned) => Hirofumi Ichihara (ichihara-hirofumi)

** Tags added: metering

** Changed in: neutron
   Importance: Undecided => Low

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1633006

Title:
  Post metering-label-rules API returns 500 when the body has wrong
  metering_label_id

Status in neutron:
  In Progress

Bug description:
  When we calls metering-label-rules POST API with wrong
  metering_label_id, we catch 500 from Neutron server.

  
  $ curl -g -i -X POST http://127.0.0.1:9696/v2.0/metering/metering-label-rules.json -H "User-Agent: python-neutronclient" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: $TOKEN" -d '{"metering_label_rule": {"remote_ip_prefix": "10.0.0.0/24", "direction": "ingress", "metering_label_id": "43e7dfd6-0deb-427b-9abc-5eaf5ada5040"}}'
  HTTP/1.1 500 Internal Server Error
  Content-Type: application/json
  Content-Length: 150
  X-Openstack-Request-Id: req-7242ca76-283a-4589-ae69-7214622b804b
  Date: Thu, 13 Oct 2016 09:22:43 GMT

  {"NeutronError": {"message": "Request Failed: internal server error
  while processing your request.", "type": "HTTPInternalServerError",
  "detail": ""}}

  Error log:

  2016-10-13 09:22:43.156 TRACE neutron.api.v2.resource     self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  2016-10-13 09:22:43.156 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 1019, in _read_query_result
  2016-10-13 09:22:43.156 TRACE neutron.api.v2.resource     result.read()
  2016-10-13 09:22:43.156 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 1302, in read
  2016-10-13 09:22:43.156 TRACE neutron.api.v2.resource     first_packet = self.connection._read_packet()
  2016-10-13 09:22:43.156 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 981, in _read_packet
  2016-10-13 09:22:43.156 TRACE neutron.api.v2.resource     packet.check_error()
  2016-10-13 09:22:43.156 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 393, in check_error
  2016-10-13 09:22:43.156 TRACE neutron.api.v2.resource     err.raise_mysql_exception(self._data)
  2016-10-13 09:22:43.156 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/pymysql/err.py", line 107, in raise_mysql_exception
  2016-10-13 09:22:43.156 TRACE neutron.api.v2.resource     raise errorclass(errno, errval)
  2016-10-13 09:22:43.156 TRACE neutron.api.v2.resource DBReferenceError: (pymysql.err.IntegrityError) (1452, u'Cannot add or update a child row: a foreign key constraint fails (`neutron`.`meteringlabelrules`, CONSTRAINT `meteringlabelrules_ibfk_1` FOREIGN KEY (`metering_label_id`) REFERENCES `meteringlabels` (`id`) ON DELETE CASCADE)') [SQL: u'INSERT INTO meteringlabelrules (id, direction, remote_ip_prefix, metering_label_id, excluded) VALUES (%(id)s, %(direction)s, %(remote_ip_prefix)s, %(metering_label_id)s, %(excluded)s)'] [parameters: {'remote_ip_prefix': u'10.0.0.0/24', 'direction': u'ingress', 'metering_label_id': u'43e7dfd6-0deb-427b-9abc-5eaf5ada5040', 'id': 'ee5358b7-7326-42d2-be37-829b97f945af', 'excluded': 0}]

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1633006/+subscriptions


Follow ups