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)

Reply via email to