Hi Sumit,

Thanks for replying.

Here's the info you asked for:


  *   the config type/tag is persisted

Yes, checking through the API I can see it registered:

{
  "href" : 
"http://localhost:8080/api/v1/clusters/mycluster/configurations?type=your_custom_service_type&tag=version1381128066056";,
  "items" : [
    {
      "href" : 
"http://localhost:8080/api/v1/clusters/mycluster/configurations?type=your_custom_service_type&tag=version1381128066056";,
      "tag" : "version1381128066056",
      "type" : "your_custom_service_type",
      "Config" : {
        "cluster_name" : "mycluster"
      },
      "properties" : { … }
    }
  ]
}


  *   the tag is selected at cluster level

Yes again, checking through the API:
{
  "href" : "http://localhost:8080/api/v1/clusters/mycluster";,
  "Clusters" : {
    "cluster_id" : 2,
    "cluster_name" : "mycluster",
    "desired_configs" : {
      "core-site" : {
        "user" : "_db",
        "tag" : "version1379424366421"
      },
      "your_custom_service_type" : {
        "user" : "admin",
        "tag" : "version1381128066056"
      },
      "global" : {
        "user" : "_db",
        "tag" : "version1379424366421"
      },
      "hdfs-site" : {
        "user" : "_db",
        "tag" : "version1379424366421"
      }
    }
  }
...
}


  *   there exists any entry for that type/tag in table "serviceconfigmapping"

No entry there.

The other possibility is that Starting the service does not create any command 
to re-install the client.  To confirm this, can you analyze/share the 
ambari-server and agent logs when you issue the "Start" command.

I believe that is the case. Please find the relevant logs attached.
The ambari-server registers the STARTED request but neither of the 
ambari-agents seem to receive anything (2-node cluster).

I've done some debugging on the Ambari side and so far it seems that 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.


If that is the case, is there a valid reason for having removed the 
changedServices from the method and if so how should we now go about 
reconfiguring those client components?

Thanks again for your help.

Kind Regards,
Adamos


On 4 Oct 2013, at 17:00, Sumit Mohanty 
<[email protected]<mailto:[email protected]>>
 wrote:

Hi Adamos,

We will need some more info to figure out whats going on?

For the latest config update that you did, can you let me know if

  *   the config type/tag is persisted
     *   exists in the "clusterconfig" table or,
     *   through API - 
api/v1/clusters/mycluster/configuration?type=your_custom_service_type&tag=your_new_version
  *   the tag is selected at cluster level
     *   row exists with "selected" being 1 for that type and tag
     *   through API - api/v1/clusters/mycluster and check under the property 
"desired_config"
  *   there exists any entry for that type/tag in table "serviceconfigmapping"
     *   existence of entries here indicates one reason for the issue (let me 
know if this is the issue and we can discuss a fix – essentially mimic the 
action of "ambari-server upgrade")

The other possibility is that Starting the service does not create any command 
to re-install the client.  To confirm this, can you analyze/share the 
ambari-server and agent logs when you issue the "Start" command.

-Sumit

From: ADAMOS LOIZOU <[email protected]<mailto:[email protected]>>
Reply-To: 
<[email protected]<mailto:[email protected]>>
Date: Friday, October 4, 2013 3:49 AM
To: "[email protected]<mailto:[email protected]>" 
<[email protected]<mailto:[email protected]>>
Subject: Reconfiguring services with client only components

Hello,

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/myclusterwith 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).

What would the correct way be of reconfiguring a service with client only 
components?

Thank you

Kind Regards
Adamos

________________________________

Este mensaje se dirige exclusivamente a su destinatario. Puede consultar 
nuestra política de envío y recepción de correo electrónico en el enlace 
situado más abajo.
This message is intended exclusively for its addressee. We only send and 
receive email on the basis of the terms set out at:
http://www.tid.es/ES/PAGINAS/disclaimer.aspx

CONFIDENTIALITY NOTICE
NOTICE: This message is intended for the use of the individual or entity to 
which it is addressed and may contain information that is confidential, 
privileged and exempt from disclosure under applicable law. If the reader of 
this message is not the intended recipient, you are hereby notified that any 
printing, copying, dissemination, distribution, disclosure or forwarding of 
this communication is strictly prohibited. If you have received this 
communication in error, please contact the sender immediately and delete it 
from your system. Thank You.


________________________________

Este mensaje se dirige exclusivamente a su destinatario. Puede consultar 
nuestra política de envío y recepción de correo electrónico en el enlace 
situado más abajo.
This message is intended exclusively for its addressee. We only send and 
receive email on the basis of the terms set out at:
http://www.tid.es/ES/PAGINAS/disclaimer.aspx

Attachment: ambari-agent_masternode.log
Description: ambari-agent_masternode.log

Attachment: ambari-agent_slavenode.log
Description: ambari-agent_slavenode.log

Attachment: ambari-config-changes.log
Description: ambari-config-changes.log

Attachment: ambari-server.log
Description: ambari-server.log

Reply via email to