Adamos Loizou created AMBARI-3489:
-------------------------------------
Summary: Unable to reconfigure services with client only components
Key: AMBARI-3489
URL: https://issues.apache.org/jira/browse/AMBARI-3489
Project: Ambari
Issue Type: Bug
Components: controller
Affects Versions: 1.3.0
Reporter: Adamos Loizou
We use a custom service in our Ambari instance that comprises only of client
components (i.e. no daemons).
We used to control its reconfiguration by:
1. Stopping the service by changing the service state to {{INSTALLED}}
2. Changing the cluster configuration with a {{PUT}} in e.g.
{{http://localhost:8080/api/v1/clusters/mycluster}} with the following body:
{code:javascript}
{
"Clusters": {
"desired_configs": {
"type": "your_custom_service_type",
"tag": "your_new_version",
"properties": { }# properties here
}
}
}
{code}
3. "Starting" the service by changed the state to {{STARTED}}. Even though the
service would always remain in {{INSTALLED}} state (as being with client-only
components) it had the effect of applying the changed configuration.
We've recently synced our Ambari version with the latest from trunk and we no
longer see that behaviour (the configuration is not applied).
After some debugging on the Ambari side, the behaviour change comes from
{{AmbariManagementControllerImpl.addClientSchForReinstall(...)}}
The latest version of the method's signature has had the {{changedServices}}
parameter removed and only relies on the {{changedScHosts}} parameter to
proceed with installing client components.
In this scenario, it is precisely {{changedServices}} that registers a change
while {{changedScHosts}} remains empty, probably explaining why the client
components are never re-installed.
The way we solved it was to reintroduce the {{changedServices}} parameter and
the code fragment that handled it.
A patch is provided with the fix.
--
This message was sent by Atlassian JIRA
(v6.1#6144)