[ 
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)

Reply via email to