ambari-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sumit Mohanty (JIRA)" <>
Subject [jira] [Commented] (AMBARI-4782) Error in getting host components with state INSTALL_FAILED
Date Sat, 01 Mar 2014 22:09:19 GMT


Sumit Mohanty commented on AMBARI-4782:

[~dmitriusan], we then have four combinations

* GET with predicate that uses "state=???"
This should map to the live-state as you said. I think it can be treated as a bug as it just
makes sense to map it to live state.

* GET with predicate that uses "desired_state=???"
This should map to the desired_state. Its the behavior we already have.

* PUT with "state=???"
This has an issue. We do not allow live state to be writable via API. So we silently map it
to desired_state. So the choices here are 1) throw an error or, 2) keep the same behavior
as we have now. I vote for keeping the same behavior as its in line with what the caller "really"

* PUT with "desired_state=???"
We should allow this and the behavior should be same as above.

> Error in getting host components with state INSTALL_FAILED
> ----------------------------------------------------------
>                 Key: AMBARI-4782
>                 URL:
>             Project: Ambari
>          Issue Type: Task
>          Components: controller, test
>    Affects Versions: 1.3.0
>            Reporter: Dmitry Lysnichenko
>            Assignee: Dmitry Lysnichenko
>             Fix For: 1.5.0
> h2. The problem
> When try to get query on api/v1/clusters/<clustername>/host_components?HostRoles/state=INSTALL_FAILED
> Response is
> { "status" : 400, "message" : "Invalid Request: Invalid arguments, invalid desired state,
desiredState=INSTALL_FAILED" }
> This issue is rooted at the over all issue Ambari has where when "state" is specified
in the API requests it is always interpreted as "desired_state". And INSTALL_FAILED is an
invalid "desired_state". Just fixing the GET calls to interpret request:state as "state" (current
state of a host component) might be the right thing to do but will make the get calls to behave
differently than other calls. For example, request to set all component which are in INSTALL_FAILED
state to INIT (or MAINTENANCE) will not work as expected. 
> h2. The proposal:
> The fix is to distinguish between "current_state" and "desired_state" and promote "current_state"
as a first class query parameter. "state" query parameter will be still mapped to "desired_state"
to maintain backward compatibility.

This message was sent by Atlassian JIRA

View raw message