[openstack-dev] HTTP response code for not implemented features
Mark McLoughlin
markmc at redhat.com
Thu Dec 6 12:46:51 UTC 2012
On Thu, 2012-12-06 at 05:32 -0700, Christopher B Ferris wrote:
> Mark,
>
>
> The term "request method" in the HTTP spec refers exclusively to the
> tokens described in sect 5.1.1 Method (GET, PUT, POST, etc). Hence,
> 405 and 501 are inappropriate, because they refer to situations where
> the request method is not implemented, etc.
I understand that line of thinking, but as I said:
"I take the second sentence to be an example of one of cases where 501
is appropriate, rather than the only case"
i.e. the first sentence:
"The server does not support the functionality required to fulfill the
request"
doesn't mention request methods.
Cheers,
Mark.
> I should think that 400 is appropriate,accompanied with a suitable
> explanation (error message).
>
> Cheers,
>
> Christopher Ferris
> IBM Distinguished Engineer, CTO Industry and Cloud Standards
> Member, IBM Academy of Technology
> IBM Software Group, Standards Strategy
> email: chrisfer at us.ibm.com
> Twitter: christo4ferris
> phone: +1 508 234 2986
>
> On Dec 6, 2012, at 7:06 AM, "Mark McLoughlin" <markmc at redhat.com>
> wrote:
>
>
> > Hey,
> >
> > Kevin raised a good point here:
> >
> > https://review.openstack.org/17565
> >
> > Currently attempting to set a host's status to disabled will fail with
> > 400 Bad Request (without any explanatory error message) if you're using
> > the libvirt driver.
> >
> > To be clear, this is a PUT request containing a representation of the
> > desired status for the host and we don't support changing its status.
> >
> > I proposed changing this to return a 501 Not Implemented with an
> > explanatory message, but it's not clear that's correct either.
> >
> > Things to consider:
> >
> > - 4xx codes are for client errors - is this a client error? There is
> > no way for a client to know that a cloud supports this without
> > trying it, so it's obviously something we expect clients to do.
> >
> > - 400 explicitly states that clients should not retry the request
> > without modifications. That does apply here.
> >
> > - 405 Method Not Allowed is only appropriate where a request method
> > isn't allowed. We do support PUT requests on host resources, just
> > not this particular request.
> >
> > - 5xx codes "indicate cases in which the server is aware that it has
> > erred or is incapable of performing the request". The latter part
> > seems appropriate here.
> >
> > - The 501 docs say:
> >
> > The server does not support the functionality required to
> > fulfill the request. This is the appropriate response when the
> > server does not recognize the request method and is not capable
> > of supporting it for any resource.
> >
> > The first sentence makes it seem like 501 is a good fit here. I
> > take the second sentence to be an example of one of cases where 501
> > is appropriate, rather than the only case.
> >
> >
> > I think I'm still leaning towards 501. Any thoughts?
> >
> > Cheers,
> > Mark.
> >
> >
> > _______________________________________________
> > OpenStack-dev mailing list
> > OpenStack-dev at lists.openstack.org
> > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> >
More information about the OpenStack-dev
mailing list