[openstack-qa] Return codes for OpenStack APIs

Sam Danes sam.danes at RACKSPACE.COM
Wed Jan 30 23:45:15 UTC 2013


I tend to agree. The specific response code is a contract from the API that in condition X, it will return exactly Y. I would give a nod to what Daryl is saying that if the response codes were externalized and vendor configurable you could make somewhat of an argument to generalize the check, however, at that point I would think that the specific configuration that the vendor has in place should still be validated with the exact codes.

We have had issues as well where a call may return say a 401 instead of a 404 which would have caused a downstream issue. A generic check for a startswith(‘4’) would have let that through.

--Sam

From: Daryl Walleck [mailto:daryl.walleck at RACKSPACE.COM]
Sent: Wednesday, January 30, 2013 4:55 PM
To: openstack-qa at lists.openstack.org; All Things QA.
Subject: Re: [openstack-qa] Return codes for OpenStack APIs

I'm a proponent of checking the exact code. To me, its part of the API contract. From a practical point, it has also helped our automated tests catch bugs that nearly slipped by. One case I an remember is when some various POSTs started returning a 200 code as opposed to a 202, with the end result being that the requests responded to with a 200 actually were not processed. The only reason I could think of to generalize response code checking would be if it the response codes were ever vendor configurable.

Daryl

From: David Kranz
Sent: ‎January‎ ‎30‎, ‎2013 ‎4‎:‎08‎ ‎PM
To: openstack-qa at lists.openstack.org<mailto:openstack-qa at lists.openstack.org>
Subject: [openstack-qa] Return codes for OpenStack APIs

There have been recent submissions to Tempest with code like:

self.assertTrue(resp['status'].startswith('2'))

It had been the consensus that we should be checking for actual status
codes. Some projects document the return
codes and others don't. This example was from a call to keystone to list
services and the result is not documented but the list tenants
calls says it could return 200 or 203. There should be a statement from
each project about whether it considers the return code to be part of
the spec.
Ideally this would be uniform across projects but it is not. Users of
the API really need to be able to know this. Any comments?

   -David

_______________________________________________
openstack-qa mailing list
openstack-qa at lists.openstack.org<mailto:openstack-qa at lists.openstack.org>
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-qa
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-qa/attachments/20130130/fb028834/attachment-0001.html>


More information about the openstack-qa mailing list