You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ambari.apache.org by "Sumit Mohanty (JIRA)" <ji...@apache.org> on 2014/03/01 23:09:19 UTC

[jira] [Commented] (AMBARI-4782) Error in getting host components with state INSTALL_FAILED

    [ https://issues.apache.org/jira/browse/AMBARI-4782?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13917205#comment-13917205 ] 

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" desired.

* 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: https://issues.apache.org/jira/browse/AMBARI-4782
>             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
(v6.1.5#6160)