[ https://issues.apache.org/jira/browse/AMBARI-3489?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Adamos Loizou updated AMBARI-3489: ---------------------------------- Attachment: client_components_reinstall_with_unit_test.patch Added patch with fix and added unit test. Tested it with mvn clean test on particular test. > 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 > Assignee: Adamos Loizou > Fix For: 1.4.2 > > Attachments: client_components_reinstall_with_unit_test.patch, Re_ > Reconfiguring services with client only components.rtf > > > 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)