[
https://issues.apache.org/jira/browse/MESOS-9779?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chun-Hung Hsiao reassigned MESOS-9779:
--------------------------------------
Assignee: Chun-Hung Hsiao
> `UPDATE_RESOURCE_PROVIDER_CONFIG` agent call returns 404 ambiguously.
> ---------------------------------------------------------------------
>
> Key: MESOS-9779
> URL: https://issues.apache.org/jira/browse/MESOS-9779
> Project: Mesos
> Issue Type: Bug
> Components: agent, HTTP API, resource provider
> Reporter: Chun-Hung Hsiao
> Assignee: Chun-Hung Hsiao
> Priority: Major
>
> The {{UPDATE_RESOURCE_PROVIDER_CONFIG}} API call returns 404 if the specified
> resource provider does not exist. However, libprocess also returns 404 when
> the `/api/v1` route is not set up. As a result, a client will get confused
> when receiving 404 and wouldn't know the actual state of the resource
> provider config. We should not overload 404 with different errors.
> The other codes for client errors returned by this call are:
> * 400 if the request is not well-formed.
> * 403 if the call is not authorized.
> To avoid ambiguity, we could keep 404 to represent that the requested URI
> does not exist, and use 409 to indicate that based on the current the current
> agent state, the update request cannot be done because the specified resource
> provider config does not exist, similar to what a PATCH command would return
> if certain elements do not exist in the requsted resource
> (https://www.ietf.org/rfc/rfc5789.txt):
> {noformat}
> Conflicting state: Can be specified with a 409 (Conflict) status
> code when the request cannot be applied given the state of the
> resource. For example, if the client attempted to apply a
> structural modification and the structures assumed to exist did
> not exist (with XML, a patch might specify changing element 'foo'
> to element 'bar' but element 'foo' might not exist).
> {noformat}
> Adapting 409 also makes {{UPDATE_RESOURCE_PROVIDER_CONFIG}} symmetric to
> {{ADD_RESOURCE_PROVIDER_CONFIG}}.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)