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