Srimanth Gunturi created AMBARI-6329:
----------------------------------------

             Summary: Load 'final' attribute of service config-type files into 
StackServiceResponse
                 Key: AMBARI-6329
                 URL: https://issues.apache.org/jira/browse/AMBARI-6329
             Project: Ambari
          Issue Type: Task
          Components: client
    Affects Versions: 1.7.0
            Reporter: Srimanth Gunturi
            Assignee: Srimanth Gunturi
             Fix For: 1.7.0


Hadoop stacks in Ambari have services defined in 
{{/ambari/ambari-server/src/main/resources/stacks/<stack-name>/<stack-version>/services/<service-name>}}.

Each service defines its configurations in {{configurations/<config-type.xml>}} 
files. Each of these files must indicate whether they support 'final' flag in 
their bodies by defining {{supports_final="true|false"}} attribute in the root 
{{configuration}} element. 

Generally as a rule, any config-type file with below names should have 
{{supports_final="false"}}
* global.xml
* *-conf.xml
* *-log4j.xml
* *-properties.xml

{{supports_final="true"}} should be set for files with following names
* *-site.xml
* *-policy.xml

Once config-type files have supports 'final' flag as shown below, it should be 
loaded on startup.
{code}
<configuration supports_final="true" xmlns:xi="http://www.w3.org/2001/XInclude";>
  <property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
    <description>The size of buffer for use ....</description>
  </property>
  ...
</configuration>
{code}

When Ambari loads the stack model into _AmbariMetaInfo_, this information 
should be loaded into the 
_org.apache.ambari.server.state.ServiceInfo#configTypes_ property. The 
property's type should change from _List<String>_ to  _Map<String, Map<String, 
Map<String, String>>>_ . 
{code}
"config_types": {
      "core-site": {
        "supports": {
          "final": "true"
        }
      },
      "global": {
        "supports": {
          "final": "false"
        }
      },
}
{code}

Testcases should be provided to verify the model is getting loaded properly 
(missing attribute, incorrect value, etc.). If _supports_final_ attribute is 
not provided, the value of false should be assumed.  




--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to