ambari-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adamos Loizou (JIRA)" <>
Subject [jira] [Created] (AMBARI-3489) Unable to reconfigure services with client only components
Date Wed, 09 Oct 2013 15:00:57 GMT
Adamos Loizou created AMBARI-3489:

             Summary: Unable to reconfigure services with client only components
                 Key: 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:
    "Clusters": {
      "desired_configs": {
        "type": "your_custom_service_type",
        "tag": "your_new_version",
        "properties": { }# properties here
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

View raw message