Selaa lähdekoodia

Revert "Revert "AMBARI-4626. "Capacity Scheduler" section in Ambari does not allow ACL value of "user group" with spaces (aonishuk)""

This reverts commit cf0877cea1cbc5de42c89a342924f5081db8e3f7.
Jonathan Hurley 10 vuotta sitten
vanhempi
commit
1ee56761ef

+ 2 - 2
ambari-common/src/main/python/resource_management/libraries/providers/modify_properties_file.py

@@ -52,14 +52,14 @@ class ModifyPropertiesFileProvider(Provider):
           in_var_value = line.split(delimiter)[1].strip()
           in_var_value = line.split(delimiter)[1].strip()
           
           
           if in_var_name in properties:
           if in_var_name in properties:
-            value = InlineTemplate(unicode(properties[in_var_name])).get_content().strip()
+            value = InlineTemplate(unicode(properties[in_var_name])).get_content()
             new_content_lines[line_num] = u"{0}{1}{2}".format(unicode(in_var_name), delimiter, value)
             new_content_lines[line_num] = u"{0}{1}{2}".format(unicode(in_var_name), delimiter, value)
             unsaved_values.remove(in_var_name)
             unsaved_values.remove(in_var_name)
     else:
     else:
       Logger.info(format("Creating new properties file as {filename} doesn't exist"))
       Logger.info(format("Creating new properties file as {filename} doesn't exist"))
        
        
     for property_name in unsaved_values:
     for property_name in unsaved_values:
-      value = InlineTemplate(unicode(properties[property_name])).get_content().strip()
+      value = InlineTemplate(unicode(properties[property_name])).get_content()
       line = u"{0}{1}{2}".format(unicode(property_name), delimiter, value)
       line = u"{0}{1}{2}".format(unicode(property_name), delimiter, value)
       new_content_lines.append(line)
       new_content_lines.append(line)
           
           

+ 1 - 1
ambari-common/src/main/python/resource_management/libraries/providers/properties_file.py

@@ -42,7 +42,7 @@ class PropertiesFileProvider(Provider):
 
 
     config_content = InlineTemplate('''# Generated by Apache Ambari. {{time.asctime(time.localtime())}}
     config_content = InlineTemplate('''# Generated by Apache Ambari. {{time.asctime(time.localtime())}}
     {% for key, value in properties_dict|dictsort %}
     {% for key, value in properties_dict|dictsort %}
-{{key}}{{key_value_delimiter}}{{ resource_management.core.source.InlineTemplate(str(value)).get_content().strip() }}{% endfor %}
+{{key}}{{key_value_delimiter}}{{ resource_management.core.source.InlineTemplate(str(value)).get_content() }}{% endfor %}
     ''', extra_imports=[time, resource_management, resource_management.core, resource_management.core.source], properties_dict=self.resource.properties, key_value_delimiter=self.resource.key_value_delimiter)
     ''', extra_imports=[time, resource_management, resource_management.core, resource_management.core.source], properties_dict=self.resource.properties, key_value_delimiter=self.resource.key_value_delimiter)
 
 
     Logger.info(format("Generating properties file: {filepath}"))
     Logger.info(format("Generating properties file: {filepath}"))

+ 1 - 1
ambari-common/src/main/python/resource_management/libraries/providers/xml_config.py

@@ -41,7 +41,7 @@ class XmlConfigProvider(Provider):
     {% for key, value in configurations_dict|dictsort %}
     {% for key, value in configurations_dict|dictsort %}
     <property>
     <property>
       <name>{{ key|e }}</name>
       <name>{{ key|e }}</name>
-      <value>{{ resource_management.core.source.InlineTemplate(str(value)).get_content().strip() |e }}</value>
+      <value>{{ resource_management.core.source.InlineTemplate(str(value)).get_content() |e }}</value>
       {%- if not configuration_attrs is none -%}
       {%- if not configuration_attrs is none -%}
       {%- for attrib_name, attrib_occurances in  configuration_attrs.items() -%}
       {%- for attrib_name, attrib_occurances in  configuration_attrs.items() -%}
       {%- for property_name, attrib_value in  attrib_occurances.items() -%}
       {%- for property_name, attrib_value in  attrib_occurances.items() -%}

+ 1 - 3
ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/configuration/core-site.xml

@@ -135,9 +135,7 @@
 
 
   <property>
   <property>
     <name>hadoop.security.auth_to_local</name>
     <name>hadoop.security.auth_to_local</name>
-    <value>
-        DEFAULT
-    </value>
+    <value>DEFAULT</value>
 <description>The mapping from kerberos principal names to local OS mapreduce.job.user.names.
 <description>The mapping from kerberos principal names to local OS mapreduce.job.user.names.
   So the default rule is just "DEFAULT" which takes all principals in your default domain to their first component.
   So the default rule is just "DEFAULT" which takes all principals in your default domain to their first component.
   "omalley@APACHE.ORG" and "omalley/admin@APACHE.ORG" to "omalley", if your default domain is APACHE.ORG.
   "omalley@APACHE.ORG" and "omalley/admin@APACHE.ORG" to "omalley", if your default domain is APACHE.ORG.

+ 2 - 2
ambari-server/src/main/resources/stacks/HDP/2.2/services/HBASE/configuration/hbase-site.xml

@@ -119,7 +119,7 @@
   </property>
   </property>
   <property>
   <property>
     <name>hbase.regionserver.rpc.scheduler.factory.class</name>
     <name>hbase.regionserver.rpc.scheduler.factory.class</name>
-    <value> </value>
+    <value></value>
     <depends-on>
     <depends-on>
       <property>
       <property>
         <type>hbase-env</type>
         <type>hbase-env</type>
@@ -129,7 +129,7 @@
   </property>
   </property>
   <property>
   <property>
     <name>hbase.rpc.controllerfactory.class</name>
     <name>hbase.rpc.controllerfactory.class</name>
-    <value> </value>
+    <value></value>
     <depends-on>
     <depends-on>
       <property>
       <property>
         <type>hbase-env</type>
         <type>hbase-env</type>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.2/services/HDFS/configuration/core-site.xml

@@ -30,7 +30,7 @@
 
 
   <property>
   <property>
     <name>hadoop.security.key.provider.path</name>
     <name>hadoop.security.key.provider.path</name>
-    <value> </value>
+    <value></value>
     <depends-on>
     <depends-on>
       <property>
       <property>
         <type>hadoop-env</type>
         <type>hadoop-env</type>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.2/services/HDFS/configuration/hdfs-site.xml

@@ -42,7 +42,7 @@
 
 
   <property>
   <property>
     <name>dfs.encryption.key.provider.uri</name>
     <name>dfs.encryption.key.provider.uri</name>
-    <value> </value>
+    <value></value>
     <depends-on>
     <depends-on>
       <property>
       <property>
         <type>hadoop-env</type>
         <type>hadoop-env</type>

+ 58 - 0
ambari-server/src/main/resources/stacks/HDP/2.2/services/HDFS/configuration/hdfs-site.xml.orig

@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+
+<!-- Put site-specific property overrides in this file. -->
+
+<configuration supports_final="true">
+
+  <property>
+    <name>dfs.namenode.startup.delay.block.deletion.sec</name>
+    <value>3600</value>
+    <description></description>
+  </property>
+
+  <property>
+    <name>dfs.journalnode.edits.dir</name>
+    <value>/hadoop/hdfs/journalnode</value>
+    <description>The path where the JournalNode daemon will store its local state. </description>
+  </property>
+  
+  <property>
+    <name>dfs.client.retry.policy.enabled</name>
+    <value>true</value>
+    <description>Enables HDFS client retry in the event of a NameNode failure.</description>
+  </property>
+
+  <property>
+    <name>dfs.encryption.key.provider.uri</name>
+    <value> </value>
+    <depends-on>
+      <property>
+        <type>hadoop-env</type>
+        <name>keyserver_host</name>
+      </property>
+      <property>
+        <type>hadoop-env</type>
+        <name>keyserver_port</name>
+      </property>
+    </depends-on>
+  </property>
+
+</configuration>

+ 40 - 0
ambari-web/app/data/HDP2.2/site_properties.js

@@ -107,6 +107,26 @@ hdp22properties.push(
     "filename": "hdfs-site.xml",
     "filename": "hdfs-site.xml",
     "index": 1
     "index": 1
   },
   },
+  {
+    "id": "site property",
+    "name": "hadoop.security.key.provider.path",
+    "displayName": "hadoop.security.key.provider.path",
+    "defaultValue": "",
+    "isRequired": false,
+    "category": "Advanced core-site",
+    "serviceName": "HDFS",
+    "filename": "core-site.xml"
+  },
+  {
+    "id": "site property",
+    "name": "dfs.encryption.key.provider.uri",
+    "displayName": "dfs.encryption.key.provider.uri",
+    "defaultValue": "",
+    "isRequired": false,
+    "category": "Advanced hdfs-site",
+    "serviceName": "HDFS",
+    "filename": "hdfs-site.xml"
+  },
   {
   {
     "id": "site property",
     "id": "site property",
     "name": "*.falcon.graph.blueprints.graph",
     "name": "*.falcon.graph.blueprints.graph",
@@ -812,6 +832,26 @@ hdp22properties.push(
     "category": "Advanced hbase-site",
     "category": "Advanced hbase-site",
     "serviceName": "HBASE",
     "serviceName": "HBASE",
     "filename": "hbase-site.xml"
     "filename": "hbase-site.xml"
+  },
+  {
+  "id": "site property",
+    "name": "hbase.regionserver.rpc.scheduler.factory.class",
+    "displayName": "hbase.regionserver.rpc.scheduler.factory.class",
+    "defaultValue": "",
+    "isRequired": false,
+    "category": "Advanced hbase-site",
+    "serviceName": "HBASE",
+    "filename": "hbase-site.xml"
+  },
+  {
+    "id": "site property",
+    "name": "hbase.rpc.controllerfactory.class",
+    "displayName": "hbase.rpc.controllerfactory.class",
+    "defaultValue": "",
+    "isRequired": false,
+    "category": "Advanced hbase-site",
+    "serviceName": "HBASE",
+    "filename": "hbase-site.xml"
   }
   }
 );
 );
 
 

+ 830 - 0
ambari-web/app/data/HDP2.2/site_properties.js.orig

@@ -0,0 +1,830 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var App = require('app');
+
+var hdp22SepcificProperties = [
+  require('data/HDP2.2/yarn_properties'),
+  require('data/HDP2.2/tez_properties'),
+  require('data/HDP2.2/hive_properties')
+].reduce(function(p, c) { return c.concat(p); });
+
+var hdp2properties = require('data/HDP2/site_properties').configProperties;
+var excludedConfigs = [
+  'storm.thrift.transport', //In HDP2.2 storm.thrift.transport property is computed on server
+  'storm_rest_api_host',
+  'tez.am.container.session.delay-allocation-millis',
+  'tez.am.grouping.max-size',
+  'tez.am.grouping.min-size',
+  'tez.am.grouping.split-waves',
+  'tez.am.java.opts',
+  'tez.runtime.intermediate-input.compress.codec',
+  'tez.runtime.intermediate-input.is-compressed',
+  'tez.runtime.intermediate-output.compress.codec',
+  'tez.runtime.intermediate-output.should-compress',
+  'dfs.datanode.data.dir',
+  'hive.heapsize'
+];
+var hdp22properties = hdp2properties.filter(function (item) {
+  return !excludedConfigs.contains(item.name);
+});
+
+hdp22properties.push(
+  {
+    "id": "site property",
+    "name": "hive.zookeeper.quorum",
+    "displayName": "hive.zookeeper.quorum",
+    "recommendedValue": "localhost:2181",
+    "displayType": "multiLine",
+    "isRequired": false,
+    "isVisible": true,
+    "serviceName": "HIVE",
+    "filename": "hive-site.xml",
+    "category": "Advanced hive-site"
+  },
+  {
+    "id": "site property",
+    "name": "hadoop.registry.rm.enabled",
+    "displayName": "hadoop.registry.rm.enabled",
+    "recommendedValue": "false",
+    "displayType": "checkbox",
+    "isVisible": true,
+    "serviceName": "YARN",
+    "filename": "yarn-site.xml",
+    "category": "Advanced yarn-site"
+  },
+  {
+    "id": "site property",
+    "name": "hadoop.registry.zk.quorum",
+    "displayName": "hadoop.registry.zk.quorum",
+    "recommendedValue": "localhost:2181",
+    "isVisible": true,
+    "serviceName": "YARN",
+    "filename": "yarn-site.xml",
+    "category": "Advanced yarn-site"
+  },
+  {
+    "id": "site property",
+    "name": "yarn.timeline-service.leveldb-state-store.path",
+    "displayName": "yarn.timeline-service.leveldb-state-store.path",
+    "defaultDirectory": "/hadoop/yarn/timeline",
+    "category": "APP_TIMELINE_SERVER",
+    "displayType": "directory",
+    "serviceName": "YARN",
+    "filename": "yarn-site.xml"
+  },
+  {
+    "id": "site property",
+    "name": "yarn.timeline-service.state-store-class",
+    "displayName": "yarn.timeline-service.state-store-class",
+    "category": "APP_TIMELINE_SERVER",
+    "serviceName": "YARN",
+    "filename": "yarn-site.xml"
+  },
+  {
+    "id": "site property",
+    "name": "dfs.datanode.data.dir",
+    "displayName": "DataNode directories",
+    "defaultDirectory": "/hadoop/hdfs/data",
+    "displayType": "datanodedirs",
+    "category": "DATANODE",
+    "serviceName": "HDFS",
+    "filename": "hdfs-site.xml",
+    "index": 1
+  },
+  {
+    "id": "site property",
+    "name": "*.falcon.graph.blueprints.graph",
+    "displayName": "*.falcon.graph.blueprints.graph",
+    "category": "FalconStartupSite",
+    "serviceName": "FALCON",
+    "filename": "falcon-startup.properties.xml"
+  },
+  {
+    "id": "site property",
+    "name": "*.falcon.graph.storage.backend",
+    "displayName": "*.falcon.graph.storage.backend",
+    "category": "FalconStartupSite",
+    "serviceName": "FALCON",
+    "filename": "falcon-startup.properties.xml"
+  },
+  /*********RANGER FOR HDFS************/
+  {
+    "id": "site property",
+    "name": "XAAUDIT.HDFS.IS_ENABLED",
+    "displayName": "Audit to HDFS",
+    "displayType": "checkbox",
+    "dependentConfigPattern": "^XAAUDIT.HDFS",
+    "filename": "ranger-hdfs-plugin-properties.xml",
+    "category": "Advanced ranger-hdfs-plugin-properties",
+    "serviceName": "HDFS"
+  },
+  {
+    "id": "site property",
+    "name": "XAAUDIT.DB.IS_ENABLED",
+    "displayName": "Audit to DB",
+    "displayType": "checkbox",
+    "filename": "ranger-hdfs-plugin-properties.xml",
+    "category": "Advanced ranger-hdfs-plugin-properties",
+    "serviceName": "HDFS"
+  },
+  {
+    "id": "site property",
+    "name": "ranger-hdfs-plugin-enabled",
+    "displayType": "checkbox",
+    "displayName": "Enable Ranger for HDFS",
+    "isOverridable": false,
+    "filename": "ranger-hdfs-plugin-properties.xml",
+    "category": "Advanced ranger-hdfs-plugin-properties",
+    "serviceName": "HDFS",
+    "index": 1
+  },
+  {
+    "id": "site property",
+    "name": "policy_user",
+    "value": "ambari-qa",
+    "recommendedValue": "ambari-qa",
+    "displayName": "policy User for HDFS",
+    "filename": "ranger-hdfs-plugin-properties.xml",
+    "category": "Advanced ranger-hdfs-plugin-properties",
+    "serviceName": "HDFS"
+  },
+  {
+    "id": "site property",
+    "name": "REPOSITORY_CONFIG_USERNAME",
+    "displayName": "Ranger repository config user",
+    "filename": "ranger-hdfs-plugin-properties.xml",
+    "category": "Advanced ranger-hdfs-plugin-properties",
+    "serviceName": "HDFS"
+  },
+  /*********RANGER FOR HIVE************/
+  {
+    "id": "site property",
+    "name": "XAAUDIT.HDFS.IS_ENABLED",
+    "displayName": "Audit to HDFS",
+    "displayType": "checkbox",
+    "dependentConfigPattern": "^XAAUDIT.HDFS",
+    "filename": "ranger-hive-plugin-properties.xml",
+    "category": "Advanced ranger-hive-plugin-properties",
+    "serviceName": "HIVE"
+  },
+  {
+    "id": "site property",
+    "name": "XAAUDIT.DB.IS_ENABLED",
+    "displayName": "Audit to DB",
+    "displayType": "checkbox",
+    "filename": "ranger-hive-plugin-properties.xml",
+    "category": "Advanced ranger-hive-plugin-properties",
+    "serviceName": "HIVE"
+  },
+  {
+    "id": "site property",
+    "name": "ranger-hive-plugin-enabled",
+    "displayType": "checkbox",
+    "displayName": "Enable Ranger for HIVE",
+    "isOverridable": false,
+    "filename": "ranger-hive-plugin-properties.xml",
+    "category": "Advanced ranger-hive-plugin-properties",
+    "serviceName": "HIVE",
+    "index": 1
+  },
+  {
+    "id": "site property",
+    "name": "policy_user",
+    "value": "ambari-qa",
+    "recommendedValue": "ambari-qa",
+    "displayName": "policy User for HIVE",
+    "filename": "ranger-hive-plugin-properties.xml",
+    "category": "Advanced ranger-hive-plugin-properties",
+    "serviceName": "HIVE"
+  },
+  {
+    "id": "site property",
+    "name": "REPOSITORY_CONFIG_USERNAME",
+    "displayName": "Ranger repository config user",
+    "filename": "ranger-hive-plugin-properties.xml",
+    "category": "Advanced ranger-hive-plugin-properties",
+    "serviceName": "HIVE"
+  },
+  {
+    "id": "site property",
+    "name": "UPDATE_XAPOLICIES_ON_GRANT_REVOKE",
+    "recommendedValue": true,
+    "displayType": "checkbox",
+    "displayName": "Should Hive GRANT/REVOKE update XA policies?",
+    "filename": "ranger-hive-plugin-properties.xml",
+    "category": "Advanced ranger-hive-plugin-properties",
+    "serviceName": "HIVE"
+  },
+  /*********RANGER FOR HBASE************/
+  {
+    "id": "site property",
+    "name": "XAAUDIT.HDFS.IS_ENABLED",
+    "displayName": "Audit to HDFS",
+    "displayType": "checkbox",
+    "dependentConfigPattern": "^XAAUDIT.HDFS",
+    "filename": "ranger-hbase-plugin-properties.xml",
+    "category": "Advanced ranger-hbase-plugin-properties",
+    "serviceName": "HBASE"
+  },
+  {
+    "id": "site property",
+    "name": "XAAUDIT.DB.IS_ENABLED",
+    "displayName": "Audit to DB",
+    "displayType": "checkbox",
+    "filename": "ranger-hbase-plugin-properties.xml",
+    "category": "Advanced ranger-hbase-plugin-properties",
+    "serviceName": "HBASE"
+  },
+  {
+    "id": "site property",
+    "name": "ranger-hbase-plugin-enabled",
+    "displayType": "checkbox",
+    "displayName": "Enable Ranger for HBASE",
+    "isOverridable": false,
+    "filename": "ranger-hbase-plugin-properties.xml",
+    "category": "Advanced ranger-hbase-plugin-properties",
+    "serviceName": "HBASE",
+    "index": 1
+  },
+  {
+    "id": "site property",
+    "name": "policy_user",
+    "value": "ambari-qa",
+    "recommendedValue": "ambari-qa",
+    "displayName": "policy User for HBASE",
+    "filename": "ranger-hbase-plugin-properties.xml",
+    "category": "Advanced ranger-hbase-plugin-properties",
+    "serviceName": "HBASE"
+  },
+  {
+    "id": "site property",
+    "name": "REPOSITORY_CONFIG_USERNAME",
+    "displayName": "Ranger repository config user",
+    "filename": "ranger-hbase-plugin-properties.xml",
+    "category": "Advanced ranger-hbase-plugin-properties",
+    "serviceName": "HBASE"
+  },
+  {
+    "id": "site property",
+    "name": "UPDATE_XAPOLICIES_ON_GRANT_REVOKE",
+    "recommendedValue": true,
+    "displayName": "Should HBase GRANT/REVOKE update XA policies?",
+    "displayType": "checkbox",
+    "filename": "ranger-hbase-plugin-properties.xml",
+    "category": "Advanced ranger-hbase-plugin-properties",
+    "serviceName": "HBASE"
+  },
+  /*********RANGER FOR STORM************/
+  {
+    "id": "site property",
+    "name": "XAAUDIT.HDFS.IS_ENABLED",
+    "displayName": "Audit to HDFS",
+    "displayType": "checkbox",
+    "dependentConfigPattern": "^XAAUDIT.HDFS",
+    "filename": "ranger-storm-plugin-properties.xml",
+    "category": "Advanced ranger-storm-plugin-properties",
+    "serviceName": "STORM"
+  },
+  {
+    "id": "site property",
+    "name": "XAAUDIT.DB.IS_ENABLED",
+    "displayName": "Audit to DB",
+    "displayType": "checkbox",
+    "filename": "ranger-storm-plugin-properties.xml",
+    "category": "Advanced ranger-storm-plugin-properties",
+    "serviceName": "STORM"
+  },
+  {
+    "id": "site property",
+    "name": "ranger-storm-plugin-enabled",
+    "displayType": "checkbox",
+    "displayName": "Enable Ranger for STORM",
+    "isOverridable": false,
+    "filename": "ranger-storm-plugin-properties.xml",
+    "category": "Advanced ranger-storm-plugin-properties",
+    "serviceName": "STORM",
+    "index": 1
+  },
+  {
+    "id": "site property",
+    "name": "policy_user",
+    "value": "ambari-qa",
+    "recommendedValue": "ambari-qa",
+    "displayName": "policy User for STORM",
+    "filename": "ranger-storm-plugin-properties.xml",
+    "category": "Advanced ranger-storm-plugin-properties",
+    "serviceName": "STORM"
+  },
+  {
+    "id": "site property",
+    "name": "REPOSITORY_CONFIG_USERNAME",
+    "displayName": "Ranger repository config user",
+    "filename": "ranger-storm-plugin-properties.xml",
+    "category": "Advanced ranger-storm-plugin-properties",
+    "serviceName": "STORM"
+  },
+  /*********RANGER FOR KNOX************/
+  {
+    "id": "site property",
+    "name": "XAAUDIT.HDFS.IS_ENABLED",
+    "displayName": "Audit to HDFS",
+    "displayType": "checkbox",
+    "dependentConfigPattern": "^XAAUDIT.HDFS",
+    "filename": "ranger-knox-plugin-properties.xml",
+    "category": "Advanced ranger-knox-plugin-properties",
+    "serviceName": "KNOX"
+  },
+  {
+    "id": "site property",
+    "name": "XAAUDIT.DB.IS_ENABLED",
+    "displayName": "Audit to DB",
+    "displayType": "checkbox",
+    "filename": "ranger-knox-plugin-properties.xml",
+    "category": "Advanced ranger-knox-plugin-properties",
+    "serviceName": "KNOX"
+  },
+  {
+    "id": "site property",
+    "name": "ranger-knox-plugin-enabled",
+    "displayType": "checkbox",
+    "displayName": "Enable Ranger for KNOX",
+    "isOverridable": false,
+    "filename": "ranger-knox-plugin-properties.xml",
+    "category": "Advanced ranger-knox-plugin-properties",
+    "serviceName": "KNOX",
+    "index": 1
+  },
+  {
+    "id": "site property",
+    "name": "policy_user",
+    "value": "ambari-qa",
+    "recommendedValue": "ambari-qa",
+    "displayName": "policy User for KNOX",
+    "filename": "ranger-knox-plugin-properties.xml",
+    "category": "Advanced ranger-knox-plugin-properties",
+    "serviceName": "KNOX"
+  },
+  {
+    "id": "site property",
+    "name": "REPOSITORY_CONFIG_USERNAME",
+    "displayName": "Ranger repository config user",
+    "filename": "ranger-knox-plugin-properties.xml",
+    "category": "Advanced ranger-knox-plugin-properties",
+    "serviceName": "KNOX"
+  },
+  /**********************************************SPARK***************************************/
+  {
+    "id": "site property",
+    "name": "spark.driver.extraJavaOptions",
+    "displayName": "spark.driver.extraJavaOptions",
+    "recommendedValue": "",
+    "isRequired": false,
+    "category": "Advanced spark-defaults",
+    "serviceName": "SPARK",
+    "filename": "spark-defaults.xml"
+  },
+  {
+    "id": "site property",
+    "name": "spark.yarn.am.extraJavaOptions",
+    "displayName": "spark.yarn.am.extraJavaOptions",
+    "recommendedValue": "",
+    "isRequired": false,
+    "category": "Advanced spark-defaults",
+    "serviceName": "SPARK",
+    "filename": "spark-defaults.xml"
+  },
+  /**********************************************RANGER***************************************/
+  {
+    "id": "site property",
+    "name": "ranger_admin_password",
+    "displayName": "Ranger Admin user's password for Ambari",
+    "recommendedValue": "ambari",
+    "isReconfigurable": true,
+    "displayType": "password",
+    "isOverridable": false,
+    "isVisible": true,
+    "serviceName": "RANGER",
+    "filename": "ranger-env.xml",
+    "category": "AdminSettings"
+  },
+  {
+    "id": "site property",
+    "name": "SQL_CONNECTOR_JAR",
+    "displayName": "Location of Sql Connector Jar",
+    "recommendedValue": "/usr/share/java/mysql-connector-java.jar",
+    "isReconfigurable": true,
+    "displayType": "",
+    "isOverridable": false,
+    "isVisible": true,
+    "serviceName": "RANGER",
+    "filename": "admin-properties.xml",
+    "category": "AdminSettings"
+  },
+  {
+    "id": "site property",
+    "name": "DB_FLAVOR",
+    "displayName": "DB FLAVOR",
+    "value": "MYSQL",
+    "recommendedValue": "MYSQL",
+    "isReconfigurable": true,
+    "options": [
+      {
+        displayName: 'MYSQL'
+      },
+      {
+        displayName: 'ORACLE'
+      }
+    ],
+    "displayType": "radio button",
+    "radioName": "RANGER DB_FLAVOR",
+    "isOverridable": false,
+    "isVisible": true,
+    "serviceName": "RANGER",
+    "filename": "admin-properties.xml",
+    "category": "DBSettings"
+  },
+  {
+    "id": "site property",
+    "name": "SQL_COMMAND_INVOKER",
+    "displayName": "SQL Command Invoker",
+    "recommendedValue": "mysql",
+    "isReconfigurable": true,
+    "displayType": "",
+    "isOverridable": false,
+    "isVisible": true,
+    "serviceName": "RANGER",
+    "filename": "admin-properties.xml",
+    "category": "DBSettings"
+  },
+  {
+    "id": "site property",
+    "name": "db_host",
+    "displayName": "Ranger DB host",
+    "recommendedValue": "",
+    "isReconfigurable": true,
+    "displayType": "",
+    "isOverridable": false,
+    "isVisible": true,
+    "serviceName": "RANGER",
+    "filename": "admin-properties.xml",
+    "category": "DBSettings"
+  },
+  {
+    "id": "site property",
+    "name": "db_root_user",
+    "displayName": "Ranger DB root user",
+    "recommendedValue": "",
+    "isReconfigurable": true,
+    "displayType": "",
+    "isOverridable": false,
+    "isVisible": true,
+    "serviceName": "RANGER",
+    "filename": "admin-properties.xml",
+    "category": "DBSettings"
+  },
+  {
+    "id": "site property",
+    "name": "db_root_password",
+    "displayName": "Ranger DB root password",
+    "recommendedValue": "",
+    "isReconfigurable": true,
+    "displayType": "password",
+    "isOverridable": false,
+    "isVisible": true,
+    "serviceName": "RANGER",
+    "filename": "admin-properties.xml",
+    "category": "DBSettings"
+  },
+  {
+    "id": "site property",
+    "name": "db_name",
+    "displayName": "Ranger DB name",
+    "recommendedValue": "",
+    "isReconfigurable": true,
+    "displayType": "",
+    "isOverridable": false,
+    "isVisible": true,
+    "serviceName": "RANGER",
+    "filename": "admin-properties.xml",
+    "category": "DBSettings"
+  },
+
+  {
+    "id": "site property",
+    "name": "db_user",
+    "displayName": "Ranger DB username",
+    "recommendedValue": "",
+    "isReconfigurable": true,
+    "displayType": "",
+    "isOverridable": false,
+    "isVisible": true,
+    "serviceName": "RANGER",
+    "filename": "admin-properties.xml",
+    "category": "DBSettings"
+  },
+  {
+    "id": "site property",
+    "name": "db_password",
+    "displayName": "Ranger DB password",
+    "recommendedValue": "",
+    "isReconfigurable": true,
+    "displayType": "password",
+    "isOverridable": false,
+    "isVisible": true,
+    "serviceName": "RANGER",
+    "filename": "admin-properties.xml",
+    "category": "DBSettings"
+  },
+  {
+    "id": "site property",
+    "name": "audit_db_name",
+    "displayName": "Ranger Audit DB name",
+    "recommendedValue": "",
+    "isReconfigurable": true,
+    "displayType": "",
+    "isOverridable": false,
+    "isVisible": true,
+    "serviceName": "RANGER",
+    "filename": "admin-properties.xml",
+    "category": "DBSettings"
+  },
+  {
+    "id": "site property",
+    "name": "audit_db_user",
+    "displayName": "Ranger Audit DB username",
+    "recommendedValue": "",
+    "isReconfigurable": true,
+    "displayType": "",
+    "isOverridable": false,
+    "isVisible": true,
+    "serviceName": "RANGER",
+    "filename": "admin-properties.xml",
+    "category": "DBSettings"
+  },
+  {
+    "id": "site property",
+    "name": "audit_db_password",
+    "displayName": "Ranger Audit DB password",
+    "recommendedValue": "",
+    "isReconfigurable": true,
+    "displayType": "password",
+    "isOverridable": false,
+    "isVisible": true,
+    "serviceName": "RANGER",
+    "filename": "admin-properties.xml",
+    "category": "DBSettings"
+  },
+  {
+    "id": "puppet var",
+    "name": "policymgr_external_url",
+    "displayName": "External URL",
+    "recommendedValue": "http://localhost:6080",
+    "isReconfigurable": true,
+    "displayType": "",
+    "isOverridable": false,
+    "isVisible": true,
+    "serviceName": "RANGER",
+    "filename": "admin-properties.xml",
+    "category": "RangerSettings"
+  },
+  {
+    "id": "puppet var",
+    "name": "policymgr_http_enabled",
+    "displayName": "HTTP enabled",
+    "recommendedValue": true,
+    "isReconfigurable": true,
+    "displayType": "checkbox",
+    "isOverridable": false,
+    "isVisible": true,
+    "serviceName": "RANGER",
+    "filename": "admin-properties.xml",
+    "category": "RangerSettings"
+  },
+  {
+    "id": "puppet var",
+    "name": "ranger_user",
+    "displayName": "Used to create user and assign permission",
+    "recommendedValue": "ranger",
+    "isReconfigurable": true,
+    "displayType": "",
+    "isOverridable": false,
+    "isVisible": true,
+    "serviceName": "RANGER",
+    "filename": "ranger-env.xml",
+    "category": "RangerSettings"
+  },
+  {
+    "id": "puppet var",
+    "name": "ranger_group",
+    "displayName": "Used to create group and assign permission",
+    "recommendedValue": "ranger",
+    "isReconfigurable": true,
+    "displayType": "",
+    "isOverridable": false,
+    "isVisible": true,
+    "serviceName": "RANGER",
+    "filename": "ranger-env.xml",
+    "category": "RangerSettings"
+  },
+  {
+    "id": "site property",
+    "name": "authentication_method",
+    "displayName": "Authentication method",
+    "recommendedValue": "NONE",
+    "options": [
+      {
+        displayName: 'LDAP',
+        foreignKeys: ['xa_ldap_userDNpattern', 'xa_ldap_groupRoleAttribute', 'xa_ldap_url', 'xa_ldap_groupSearchBase', 'xa_ldap_groupSearchFilter']
+      },
+      {
+        displayName: 'ACTIVE_DIRECTORY',
+        foreignKeys: ['xa_ldap_ad_domain', 'xa_ldap_ad_url']
+      },
+      {
+        displayName: 'UNIX',
+        foreignKeys: ['remoteLoginEnabled', 'authServiceHostName', 'authServicePort']
+      },
+      {
+        displayName: 'NONE'
+      }
+    ],
+    "displayType": "radio button",
+    "radioName": "authentication-method",
+    "isReconfigurable": true,
+    "isOverridable": false,
+    "isVisible": true,
+    "serviceName": "RANGER",
+    "filename": "admin-properties.xml",
+    "category": "RangerSettings"
+  },
+  {
+    "id": "site property",
+    "name": "remoteLoginEnabled",
+    "displayName": "Allow remote Login",
+    "recommendedValue": true,
+    "isReconfigurable": true,
+    "displayType": "checkbox",
+    "isOverridable": false,
+    "isVisible": true,
+    "serviceName": "RANGER",
+    "filename": "admin-properties.xml",
+    "category": "UnixAuthenticationSettings"
+  },
+  {
+    "id": "site property",
+    "name": "authServiceHostName",
+    "displayName": "authServiceHostName",
+    "recommendedValue": 'localhost',
+    "isReconfigurable": true,
+    "isOverridable": false,
+    "isVisible": true,
+    "serviceName": "RANGER",
+    "filename": "admin-properties.xml",
+    "category": "UnixAuthenticationSettings"
+  },
+  {
+    "id": "site property",
+    "name": "authServicePort",
+    "displayName": "authServicePort",
+    "recommendedValue": '5151',
+    "isReconfigurable": true,
+    "displayType": "int",
+    "isOverridable": false,
+    "isVisible": true,
+    "serviceName": "RANGER",
+    "filename": "admin-properties.xml",
+    "category": "UnixAuthenticationSettings"
+  },
+  {
+    "id": "site property",
+    "name": "xa_ldap_url",
+    "displayName": "xa_ldap_url",
+    "isReconfigurable": true,
+    "isOverridable": false,
+    "isVisible": true,
+    "serviceName": "RANGER",
+    "filename": "admin-properties.xml",
+    "category": "LDAPSettings"
+  },
+  {
+    "id": "site property",
+    "name": "xa_ldap_userDNpattern",
+    "displayName": "xa_ldap_userDNpattern",
+    "isReconfigurable": true,
+    "isOverridable": false,
+    "isVisible": true,
+    "serviceName": "RANGER",
+    "filename": "admin-properties.xml",
+    "category": "LDAPSettings"
+  },
+  {
+    "id": "site property",
+    "name": "xa_ldap_groupRoleAttribute",
+    "displayName": "xa_ldap_groupRoleAttribute",
+    "isReconfigurable": true,
+    "isOverridable": false,
+    "isVisible": true,
+    "serviceName": "RANGER",
+    "filename": "admin-properties.xml",
+    "category": "LDAPSettings"
+  },
+  {
+    "id": "site property",
+    "name": "xa_ldap_ad_domain",
+    "displayName": "xa_ldap_ad_domain",
+    "isReconfigurable": true,
+    "isOverridable": false,
+    "isVisible": true,
+    "serviceName": "RANGER",
+    "filename": "admin-properties.xml",
+    "category": "ADSettings"
+  },
+  {
+    "id": "site property",
+    "name": "xa_ldap_ad_url",
+    "displayName": "xa_ldap_ad_url",
+    "isReconfigurable": true,
+    "isOverridable": false,
+    "isVisible": true,
+    "serviceName": "RANGER",
+    "filename": "admin-properties.xml",
+    "category": "ADSettings"
+  },
+  {
+    "id": "site property",
+    "name": "hbase.bucketcache.ioengine",
+    "displayName": "hbase.bucketcache.ioengine",
+    "isRequired": false,
+    "serviceName": "HBASE",
+    "filename": "hbase-site.xml",
+    "category": "Advanced hbase-site"
+  },
+  {
+    "id": "site property",
+    "name": "hbase.bucketcache.size",
+    "displayName": "hbase.bucketcache.size",
+    "displayType": "int",
+    "isRequired": false,
+    "serviceName": "HBASE",
+    "filename": "hbase-site.xml",
+    "category": "Advanced hbase-site"
+  },
+  {
+    "id": "site property",
+    "name": "hbase.bucketcache.percentage.in.combinedcache",
+    "displayName": "hbase.bucketcache.percentage.in.combinedcache",
+    "displayType": "float",
+    "isRequired": false,
+    "serviceName": "HBASE",
+    "filename": "hbase-site.xml",
+    "category": "Advanced hbase-site"
+  },
+  {
+    "id": "site property",
+    "name": "hbase_max_direct_memory_size",
+    "displayName": "HBase off-heap MaxDirectMemorySize",
+    "displayType": "int",
+    "isRequired": false,
+    "serviceName": "HBASE",
+    "filename": "hbase-env.xml",
+    "category": "Advanced hbase-env"
+  },
+  {
+    "id": "site property",
+    "name": "hbase.regionserver.global.memstore.size",
+    "displayName": "hbase.regionserver.global.memstore.size",
+    "category": "Advanced hbase-site",
+    "serviceName": "HBASE",
+    "filename": "hbase-site.xml"
+  }
+);
+
+var additionalProperties = [];
+
+hdp22SepcificProperties.forEach(function (config) {
+  if (!hdp22properties.findProperty('name', config.name)) additionalProperties.push(config);
+  else {
+    hdp22properties.findProperty('name', config.name).category = config.category;
+  }
+});
+
+module.exports =
+{
+  "configProperties": hdp22properties.concat(additionalProperties)
+};