You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ambari.apache.org by "Adamos Loizou (JIRA)" <ji...@apache.org> on 2013/10/09 17:00:57 UTC

[jira] [Created] (AMBARI-3489) Unable to reconfigure services with client only components

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)