[ 
https://issues.apache.org/jira/browse/AMBARI-4782?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dmitry Lysnichenko updated AMBARI-4782:
---------------------------------------

    Description: 
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.

  was:
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. The 
fix is to distinguish between "current_state" and "desired_state" and promote 
"current_state" as a first class query parameter.


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

Reply via email to