yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #07181
[Bug 1152623] Re: RFC2616 section 9.7 status code vs. nova server delete
Until this is changed in nova, it's not actually appropriate to have a
tempest issue
** No longer affects: tempest
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1152623
Title:
RFC2616 section 9.7 status code vs. nova server delete
Status in OpenStack Compute (Nova):
In Progress
Bug description:
In REST client implementation is common good practice, when:
- request causes an synchronous and asynchronous effect , and
- the synchronous operation has any immediately visible effect ie. immediate subsequent request showing any change,
we should emphasize the synchronous behavior in the responses (Status code) (Or responding in way which does not distinguish the two cases).
However if the HTTP method is DELETE, the rule is the opposite!
If the resource on the request URL does not deleted the service MUST NOT response with 204.
"
A successful response SHOULD be 200 (OK) if the response includes an
entity describing the status, 202 (Accepted) if the action has not
yet been enacted, or 204 (No Content) if the action has been enacted
but the response does not include an entity.
" by RFC2616 section 9.7
It means if a DELETE request responded with 204 status code, I MUST
get 404 in an immediate subsequent request, unless concurrent
operation recreated the resource.
$ nova --debug delete ab0ebda6-2c21-4258-8934-1005b970fee5 ; nova --debug show ab0ebda6-2c21-4258-8934-1005b970fee5
Part of the output in the received order:
-----------------------------------------
REQ: curl -i http://10.34.69.149:8774/v2/89a38fe6d3194864995ab0872905a65e/servers/ab0ebda6-2c21-4258-8934-1005b970fee5 -X DELETE -H "X-Auth-Project-Id: admin" -H "User-Agent: python-novaclient" -H "Accept: application/json" -H "X-Auth-Token: c35f5783528d4131bf100604b2fabd6c"
send: u'DELETE /v2/89a38fe6d3194864995ab0872905a65e/servers/ab0ebda6-2c21-4258-8934-1005b970fee5 HTTP/1.1\r\nHost: 10.34.69.149:8774\r\nx-auth-project-id: admin\r\nx-auth-token: c35f5783528d4131bf100604b2fabd6c\r\naccept-encoding: gzip, deflate\r\naccept: application/json\r\nuser-agent: python-novaclient\r\n\r\n'
reply: 'HTTP/1.1 204 No Content\r\n'
header: Content-Length: 0
header: X-Compute-Request-Id: req-53e3503a-8d73-4ffc-ba43-4bd5659a9e22
header: Content-Type: application/json
header: Date: Sat, 02 Mar 2013 18:26:21 GMT
RESP:{'date': 'Sat, 02 Mar 2013 18:26:21 GMT', 'status': '204', 'content-length': '0', 'content-type': 'application/json', 'x-compute-request-id': 'req-53e3503a-8d73-4ffc-ba43-4bd5659a9e22'}
-----------------------------------------------------
REQ: curl -i http://10.34.69.149:8774/v2/89a38fe6d3194864995ab0872905a65e/servers/ab0ebda6-2c21-4258-8934-1005b970fee5 -X GET -H "X-Auth-Project-Id: admin" -H "User-Agent: python-novaclient" -H "Accept: application/json" -H "X-Auth-Token: f74d6c7226c14915a26a81b540d43f3b"
connect: (10.34.69.149, 8774)
send: u'GET /v2/89a38fe6d3194864995ab0872905a65e/servers/ab0ebda6-2c21-4258-8934-1005b970fee5 HTTP/1.1\r\nHost: 10.34.69.149:8774\r\nx-auth-project-id: admin\r\nx-auth-token: f74d6c7226c14915a26a81b540d43f3b\r\naccept-encoding: gzip, deflate\r\naccept: application/json\r\nuser-agent: python-novaclient\r\n\r\n'
reply: 'HTTP/1.1 200 OK\r\n'
header: X-Compute-Request-Id: req-80c97c68-0b44-4650-b027-84a85ee04b86
header: Content-Type: application/json
header: Content-Length: 1502
header: Date: Sat, 02 Mar 2013 18:26:21 GMT
RESP:{'status': '200', 'content-length': '1502', 'content-location': u'http://10.34.69.149:8774/v2/89a38fe6d3194864995ab0872905a65e/servers/ab0ebda6-2c21-4258-8934-1005b970fee5', 'x-compute-request-id': 'req-80c97c68-0b44-4650-b027-84a85ee04b86', 'date': 'Sat, 02 Mar 2013 18:26:21 GMT', 'content-type': 'application/json'} {"server": {"status": "ACTIVE", "updated": "2013-03-02T18:26:21Z", "hostId": "31bdffcdffd5b869b87c9be3cdd700e29c4a08286d6d306622b4815a", "OS-EXT-SRV-ATTR:host": "new32.lithium.rhev.lab.eng.brq.redhat.com", "addresses": {"novanetwork": [{"version": 4, "addr": "192.168.32.2"}]}, "links": [{"href": "http://10.34.69.149:8774/v2/89a38fe6d3194864995ab0872905a65e/servers/ab0ebda6-2c21-4258-8934-1005b970fee5", "rel": "self"}, {"href": "http://10.34.69.149:8774/89a38fe6d3194864995ab0872905a65e/servers/ab0ebda6-2c21-4258-8934-1005b970fee5", "rel": "bookmark"}], "key_name": null, "image": {"id": "12e9c131-aaf4-4f73-9659-ed2da9759cd2", "links": [{"href": "http://10.34.69.149:8774/89a38fe6d3194864995ab0872905a65e/images/12e9c131-aaf4-4f73-9659-ed2da9759cd2", "rel": "bookmark"}]}, "OS-EXT-STS:task_state": "deleting", "OS-EXT-STS:vm_state": "active", "OS-EXT-SRV-ATTR:instance_name": "instance-00000003", "OS-EXT-SRV-ATTR:hypervisor_hostname": "new32.lithium.rhev.lab.eng.brq.redhat.com", "flavor": {"id": "1", "links": [{"href": "http://10.34.69.149:8774/89a38fe6d3194864995ab0872905a65e/flavors/1", "rel": "bookmark"}]}, "id": "ab0ebda6-2c21-4258-8934-1005b970fee5", "security_groups": [{"name": "default"}], "user_id": "1d2b871844434bbc99845ed11c3f897b", "name": "test", "created": "2013-03-02T17:19:44Z", "tenant_id": "89a38fe6d3194864995ab0872905a65e", "OS-DCF:diskConfig": "MANUAL", "accessIPv4": "", "accessIPv6": "", "progress": 0, "OS-EXT-STS:power_state": 1, "config_drive": "", "metadata": {}}}
---------------------------------------------------
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1152623/+subscriptions