You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by nc...@apache.org on 2015/10/07 15:51:45 UTC

[04/31] ambari git commit: AMBARI-13303. Ranger smart config: User Info Tab should change visibility of configs dynamically. (jaimin)

AMBARI-13303. Ranger smart config: User Info Tab should change visibility of configs dynamically. (jaimin)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/7aa9f6ca
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/7aa9f6ca
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/7aa9f6ca

Branch: refs/heads/branch-dev-patch-upgrade
Commit: 7aa9f6ca335812f57625a6aed7bbd274d0165b5e
Parents: 1f5acf2
Author: Jaimin Jetly <ja...@hortonworks.com>
Authored: Fri Oct 2 17:49:46 2015 -0700
Committer: Jaimin Jetly <ja...@hortonworks.com>
Committed: Fri Oct 2 17:51:17 2015 -0700

----------------------------------------------------------------------
 .../ambari/server/state/theme/Subsection.java   |  11 +
 .../RANGER/configuration/ranger-admin-site.xml  |   2 +-
 .../RANGER/configuration/ranger-ugsync-site.xml |  24 +-
 .../HDP/2.3/services/RANGER/themes/theme.json   | 264 +++++++++++++++----
 ambari-web/app/mappers/configs/themes_mapper.js |   1 +
 .../app/models/configs/theme/sub_section.js     |   8 +-
 .../configs/service_config_layout_tab.hbs       |   4 +-
 .../configs/widgets/config_widget_view.js       |   7 +-
 8 files changed, 243 insertions(+), 78 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/7aa9f6ca/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Subsection.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Subsection.java b/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Subsection.java
index c9f9019..5748dca 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Subsection.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Subsection.java
@@ -172,6 +172,8 @@ public class Subsection {
     private String name;
     @JsonProperty("display-name")
     private String displayName;
+    @JsonProperty("depends-on")
+    private List<ConfigCondition> dependsOn;
 
     public String getName() {
       return name;
@@ -188,5 +190,14 @@ public class Subsection {
     public void setDisplayName(String displayName) {
       this.displayName = displayName;
     }
+
+    public List<ConfigCondition> getDependsOn() {
+      return dependsOn;
+    }
+
+    public void setDependsOn(List<ConfigCondition> dependsOn) {
+      this.dependsOn = dependsOn;
+    }
+
   }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/7aa9f6ca/ambari-server/src/main/resources/stacks/HDP/2.3/services/RANGER/configuration/ranger-admin-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3/services/RANGER/configuration/ranger-admin-site.xml b/ambari-server/src/main/resources/stacks/HDP/2.3/services/RANGER/configuration/ranger-admin-site.xml
index d93d758..bff0225 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.3/services/RANGER/configuration/ranger-admin-site.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.3/services/RANGER/configuration/ranger-admin-site.xml
@@ -269,7 +269,7 @@
 
   <property>
     <name>ranger.ldap.ad.domain</name>
-    <display-name>Domain Name</display-name>
+    <display-name>Domain Name (AD specific)</display-name>
     <value>localhost</value>
     <description>AD domain, only used if Authentication method is AD</description>
     <value-attributes>

http://git-wip-us.apache.org/repos/asf/ambari/blob/7aa9f6ca/ambari-server/src/main/resources/stacks/HDP/2.3/services/RANGER/configuration/ranger-ugsync-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3/services/RANGER/configuration/ranger-ugsync-site.xml b/ambari-server/src/main/resources/stacks/HDP/2.3/services/RANGER/configuration/ranger-ugsync-site.xml
index c73c592..39dfe43 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.3/services/RANGER/configuration/ranger-ugsync-site.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.3/services/RANGER/configuration/ranger-ugsync-site.xml
@@ -120,18 +120,12 @@
     <name>ranger.usersync.unix.group.file</name>
     <display-name>Group File</display-name>
     <value></value>
-    <value-attributes>
-      <empty-value-valid>true</empty-value-valid>
-    </value-attributes>
   </property>
 
   <property>
     <name>ranger.usersync.unix.password.file</name>
     <display-name>Password File</display-name>
     <value></value>
-    <value-attributes>
-      <empty-value-valid>true</empty-value-valid>
-    </value-attributes>
   </property>
 
   <property>
@@ -151,10 +145,6 @@
       <overridable>false</overridable>
       <entries>
         <entry>
-          <value></value>
-          <label>NONE</label>
-        </entry>
-        <entry>
           <value>org.apache.ranger.unixusersync.process.UnixUserGroupBuilder</value>
           <label>UNIX</label>
         </entry>
@@ -164,11 +154,7 @@
         </entry>
         <entry>
           <value>org.apache.ranger.ldapusersync.process.LdapUserGroupBuilder</value>
-          <label>LDAP</label>
-        </entry>
-        <entry>
-          <value>org.apache.ranger.ldapusersync.process.LdapUserGroupBuilder</value>
-          <label>AD</label>
+          <label>LDAP/AD</label>
         </entry>
       </entries>
       <selection-cardinality>1</selection-cardinality>
@@ -209,9 +195,6 @@
     <value></value>
     <property-type>PASSWORD</property-type>
     <description>Password for the account that can search for users.</description>
-    <value-attributes>
-      <empty-value-valid>true</empty-value-valid>
-    </value-attributes>
   </property>
 
   <property>
@@ -317,7 +300,7 @@
 
   <property>
     <name>ranger.usersync.group.searchenabled</name>
-    <display-name>Enable Group Sync (Group Search Filter)</display-name>
+    <display-name>Enable Group Sync</display-name>
     <value>false</value>
     <description>"# do we want to do ldapsearch to find groups instead of relying on user entry attributes
 # valid values: true, false
@@ -373,9 +356,6 @@
 # overrides value specified in ranger.usersync.ldap.searchBase,  ranger.usersync.ldap.user.searchbase
 # if a value is not specified, takes the value of  ranger.usersync.ldap.searchBase
 # if  ranger.usersync.ldap.searchBase is also not specified, takes the value of ranger.usersync.ldap.user.searchbase"</description>
-    <value-attributes>
-      <empty-value-valid>true</empty-value-valid>
-    </value-attributes>
   </property>
 
   <property>

http://git-wip-us.apache.org/repos/asf/ambari/blob/7aa9f6ca/ambari-server/src/main/resources/stacks/HDP/2.3/services/RANGER/themes/theme.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3/services/RANGER/themes/theme.json b/ambari-server/src/main/resources/stacks/HDP/2.3/services/RANGER/themes/theme.json
index b398a3b..c4f7d59 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.3/services/RANGER/themes/theme.json
+++ b/ambari-server/src/main/resources/stacks/HDP/2.3/services/RANGER/themes/theme.json
@@ -127,29 +127,108 @@
                   "display-name": "Ranger User Info",
                   "row-index": "0",
                   "column-index": "0",
-                  "row-span": "1",
+                  "row-span": "2",
                   "column-span": "1",
                   "section-columns": "1",
-                  "section-rows": "1",
+                  "section-rows": "2",
                   "subsections": [
                     {
                       "name": "subsection-ranger-user-row1-col1",
                       "row-index": "0",
                       "column-index": "0",
                       "row-span": "1",
+                      "column-span": "1"
+                    },
+                    {
+                      "name": "subsection-ranger-user-row2-col1",
+                      "row-index": "1",
+                      "column-index": "0",
+                      "row-span": "1",
                       "column-span": "1",
                       "subsection-tabs": [
                         {
                           "name": "ldap-common-configs",
-                          "display-name": "Common Configs"
+                          "display-name": "Common Configs",
+                          "depends-on": [
+                            {
+                              "configs": [
+                                "ranger-ugsync-site/ranger.usersync.source.impl.class"
+                              ],
+                              "if": "${ranger-ugsync-site/ranger.usersync.source.impl.class} === org.apache.ranger.ldapusersync.process.LdapUserGroupBuilder",
+                              "then": {
+                                "property_value_attributes": {
+                                  "visible": true
+                                }
+                              },
+                              "else": {
+                                "property_value_attributes": {
+                                  "visible": false
+                                }
+                              }
+                            }
+                          ]
                         },
                         {
                           "name": "ldap-user-configs",
-                          "display-name": "User Configs"
+                          "display-name": "User Configs",
+                          "depends-on": [
+                            {
+                              "configs": [
+                                "ranger-ugsync-site/ranger.usersync.source.impl.class"
+                              ],
+                              "if": "${ranger-ugsync-site/ranger.usersync.source.impl.class} === org.apache.ranger.ldapusersync.process.LdapUserGroupBuilder",
+                              "then": {
+                                "property_value_attributes": {
+                                  "visible": true
+                                }
+                              },
+                              "else": {
+                                "property_value_attributes": {
+                                  "visible": false
+                                }
+                              }
+                            }
+                          ]
                         },
                         {
                           "name": "ldap-group-configs",
-                          "display-name": "Group Configs"
+                          "display-name": "Group Configs",
+                          "depends-on": [
+                            {
+                              "configs": [
+                                "ranger-ugsync-site/ranger.usersync.source.impl.class"
+                              ],
+                              "if": "${ranger-ugsync-site/ranger.usersync.source.impl.class} === org.apache.ranger.ldapusersync.process.LdapUserGroupBuilder",
+                              "then": {
+                                "property_value_attributes": {
+                                  "visible": true
+                                }
+                              },
+                              "else": {
+                                "property_value_attributes": {
+                                  "visible": false
+                                }
+                              }
+                            }
+                          ]
+                        }
+                      ],
+                      "depends-on": [
+                        {
+                          "configs": [
+                            "ranger-ugsync-site/ranger.usersync.enabled"
+                          ],
+                          "if": "${ranger-ugsync-site/ranger.usersync.enabled}",
+                          "then": {
+                            "property_value_attributes": {
+                              "visible": true
+                            }
+                          },
+                          "else": {
+                            "property_value_attributes": {
+                              "visible": false
+                            }
+                          }
                         }
                       ]
                     }
@@ -237,48 +316,142 @@
           }
         },
         {
-          "config": "ranger-ugsync-site/ranger.usersync.source.impl.class",
+          "config": "ranger-ugsync-site/ranger.usersync.enabled",
           "subsection-name": "subsection-ranger-user-row1-col1"
         },
+        {
+          "config": "ranger-ugsync-site/ranger.usersync.source.impl.class",
+          "subsection-name": "subsection-ranger-user-row2-col1"
+        },
 
         {
           "config": "ranger-ugsync-site/ranger.usersync.unix.minUserId",
-          "subsection-name": "subsection-ranger-user-row1-col1"
+          "subsection-name": "subsection-ranger-user-row2-col1",
+          "depends-on": [
+            {
+              "configs":[
+                "ranger-ugsync-site/ranger.usersync.source.impl.class"
+              ],
+              "if": "${ranger-ugsync-site/ranger.usersync.source.impl.class} === org.apache.ranger.unixusersync.process.UnixUserGroupBuilder",
+              "then": {
+                "property_value_attributes": {
+                  "visible": true
+                }
+              },
+              "else": {
+                "property_value_attributes": {
+                  "visible": false
+                }
+              }
+            }
+          ]
         },
         {
           "config": "ranger-ugsync-site/ranger.usersync.unix.password.file",
-          "subsection-name": "subsection-ranger-user-row1-col1"
+          "subsection-name": "subsection-ranger-user-row2-col1",
+          "depends-on": [
+            {
+              "configs":[
+                "ranger-ugsync-site/ranger.usersync.source.impl.class"
+              ],
+              "if": "${ranger-ugsync-site/ranger.usersync.source.impl.class} === org.apache.ranger.unixusersync.process.UnixUserGroupBuilder",
+              "then": {
+                "property_value_attributes": {
+                  "visible": true
+                }
+              },
+              "else": {
+                "property_value_attributes": {
+                  "visible": false
+                }
+              }
+            }
+          ]
         },
         {
           "config": "ranger-ugsync-site/ranger.usersync.unix.group.file",
-          "subsection-name": "subsection-ranger-user-row1-col1"
+          "subsection-name": "subsection-ranger-user-row2-col1",
+          "depends-on": [
+            {
+              "configs":[
+                "ranger-ugsync-site/ranger.usersync.source.impl.class"
+              ],
+              "if": "${ranger-ugsync-site/ranger.usersync.source.impl.class} === org.apache.ranger.unixusersync.process.UnixUserGroupBuilder",
+              "then": {
+                "property_value_attributes": {
+                  "visible": true
+                }
+              },
+              "else": {
+                "property_value_attributes": {
+                  "visible": false
+                }
+              }
+            }
+          ]
         },
         {
           "config": "ranger-ugsync-site/ranger.usersync.filesource.file",
-          "subsection-name": "subsection-ranger-user-row1-col1"
+          "subsection-name": "subsection-ranger-user-row2-col1",
+          "depends-on": [
+            {
+              "configs":[
+                "ranger-ugsync-site/ranger.usersync.source.impl.class"
+              ],
+              "if": "${ranger-ugsync-site/ranger.usersync.source.impl.class} === org.apache.ranger.unixusersync.process.FileSourceUserGroupBuilder",
+              "then": {
+                "property_value_attributes": {
+                  "visible": true
+                }
+              },
+              "else": {
+                "property_value_attributes": {
+                  "visible": false
+                }
+              }
+            }
+          ]
         },
         {
           "config": "ranger-ugsync-site/ranger.usersync.filesource.text.delimiter",
-          "subsection-name": "subsection-ranger-user-row1-col1"
+          "subsection-name": "subsection-ranger-user-row2-col1",
+          "depends-on": [
+            {
+              "configs":[
+                "ranger-ugsync-site/ranger.usersync.source.impl.class"
+              ],
+              "if": "${ranger-ugsync-site/ranger.usersync.source.impl.class} === org.apache.ranger.unixusersync.process.FileSourceUserGroupBuilder",
+              "then": {
+                "property_value_attributes": {
+                  "visible": true
+                }
+              },
+              "else": {
+                "property_value_attributes": {
+                  "visible": false
+                }
+              }
+            }
+          ]
         },
         {
           "config": "ranger-ugsync-site/ranger.usersync.ldap.url",
-          "subsection-name": "subsection-ranger-user-row1-col1",
+          "subsection-name": "subsection-ranger-user-row2-col1",
           "subsection-tab-name": "ldap-common-configs"
         },
         {
           "config": "ranger-admin-site/ranger.ldap.ad.domain",
-          "subsection-name": "subsection-ranger-user-row1-col1",
+          "subsection-name": "subsection-ranger-user-row2-col1",
           "subsection-tab-name": "ldap-common-configs"
         },
         {
           "config": "ranger-env/bind_anonymous",
-          "subsection-name": "subsection-ranger-user-row1-col1",
+          "subsection-name": "subsection-ranger-user-row2-col1",
           "subsection-tab-name": "ldap-common-configs"
         },
         {
           "config": "ranger-ugsync-site/ranger.usersync.ldap.binddn",
-          "subsection-name": "subsection-ranger-user-row1-col1",
+          "subsection-name": "subsection-ranger-user-row2-col1",
           "subsection-tab-name": "ldap-common-configs",
           "depends-on": [
             {
@@ -302,7 +475,7 @@
         },
         {
           "config": "ranger-ugsync-site/ranger.usersync.ldap.ldapbindpassword",
-          "subsection-name": "subsection-ranger-user-row1-col1",
+          "subsection-name": "subsection-ranger-user-row2-col1",
           "subsection-tab-name": "ldap-common-configs",
           "depends-on": [
             {
@@ -323,22 +496,21 @@
             }
           ]
         },
-
         {
-          "config": "ranger-ugsync-site/ranger.usersync.enabled",
-          "subsection-name": "subsection-ranger-user-row1-col1",
+          "config": "ranger-ugsync-site/ranger.usersync.group.usermapsyncenabled",
+          "subsection-name": "subsection-ranger-user-row2-col1",
           "subsection-tab-name": "ldap-user-configs"
         },
         {
           "config": "ranger-ugsync-site/ranger.usersync.ldap.user.nameattribute",
-          "subsection-name": "subsection-ranger-user-row1-col1",
+          "subsection-name": "subsection-ranger-user-row2-col1",
           "subsection-tab-name": "ldap-user-configs",
           "depends-on": [
             {
               "configs":[
-                "ranger-ugsync-site/ranger.usersync.enabled"
+                "ranger-ugsync-site/ranger.usersync.group.usermapsyncenabled"
               ],
-              "if": "${ranger-ugsync-site/ranger.usersync.enabled}",
+              "if": "${ranger-ugsync-site/ranger.usersync.group.usermapsyncenabled}",
               "then": {
                 "property_value_attributes": {
                   "visible": true
@@ -354,14 +526,14 @@
         },
         {
           "config": "ranger-ugsync-site/ranger.usersync.ldap.user.objectclass",
-          "subsection-name": "subsection-ranger-user-row1-col1",
+          "subsection-name": "subsection-ranger-user-row2-col1",
           "subsection-tab-name": "ldap-user-configs",
           "depends-on": [
             {
               "configs":[
-                "ranger-ugsync-site/ranger.usersync.enabled"
+                "ranger-ugsync-site/ranger.usersync.group.usermapsyncenabled"
               ],
-              "if": "${ranger-ugsync-site/ranger.usersync.enabled}",
+              "if": "${ranger-ugsync-site/ranger.usersync.group.usermapsyncenabled}",
               "then": {
                 "property_value_attributes": {
                   "visible": true
@@ -377,14 +549,14 @@
         },
         {
           "config": "ranger-ugsync-site/ranger.usersync.ldap.user.searchbase",
-          "subsection-name": "subsection-ranger-user-row1-col1",
+          "subsection-name": "subsection-ranger-user-row2-col1",
           "subsection-tab-name": "ldap-user-configs",
           "depends-on": [
             {
               "configs":[
-                "ranger-ugsync-site/ranger.usersync.enabled"
+                "ranger-ugsync-site/ranger.usersync.group.usermapsyncenabled"
               ],
-              "if": "${ranger-ugsync-site/ranger.usersync.enabled}",
+              "if": "${ranger-ugsync-site/ranger.usersync.group.usermapsyncenabled}",
               "then": {
                 "property_value_attributes": {
                   "visible": true
@@ -400,14 +572,14 @@
         },
         {
           "config": "ranger-ugsync-site/ranger.usersync.ldap.user.searchfilter",
-          "subsection-name": "subsection-ranger-user-row1-col1",
+          "subsection-name": "subsection-ranger-user-row2-col1",
           "subsection-tab-name": "ldap-user-configs",
           "depends-on": [
             {
               "configs":[
-                "ranger-ugsync-site/ranger.usersync.enabled"
+                "ranger-ugsync-site/ranger.usersync.group.usermapsyncenabled"
               ],
-              "if": "${ranger-ugsync-site/ranger.usersync.enabled}",
+              "if": "${ranger-ugsync-site/ranger.usersync.group.usermapsyncenabled}",
               "then": {
                 "property_value_attributes": {
                   "visible": true
@@ -423,14 +595,14 @@
         },
         {
           "config": "ranger-ugsync-site/ranger.usersync.ldap.user.searchscope",
-          "subsection-name": "subsection-ranger-user-row1-col1",
+          "subsection-name": "subsection-ranger-user-row2-col1",
           "subsection-tab-name": "ldap-user-configs",
           "depends-on": [
             {
               "configs":[
-                "ranger-ugsync-site/ranger.usersync.enabled"
+                "ranger-ugsync-site/ranger.usersync.group.usermapsyncenabled"
               ],
-              "if": "${ranger-ugsync-site/ranger.usersync.enabled}",
+              "if": "${ranger-ugsync-site/ranger.usersync.group.usermapsyncenabled}",
               "then": {
                 "property_value_attributes": {
                   "visible": true
@@ -446,14 +618,14 @@
         },
         {
           "config": "ranger-ugsync-site/ranger.usersync.ldap.user.groupnameattribute",
-          "subsection-name": "subsection-ranger-user-row1-col1",
+          "subsection-name": "subsection-ranger-user-row2-col1",
           "subsection-tab-name": "ldap-user-configs",
           "depends-on": [
             {
               "configs":[
-                "ranger-ugsync-site/ranger.usersync.enabled"
+                "ranger-ugsync-site/ranger.usersync.group.usermapsyncenabled"
               ],
-              "if": "${ranger-ugsync-site/ranger.usersync.enabled}",
+              "if": "${ranger-ugsync-site/ranger.usersync.group.usermapsyncenabled}",
               "then": {
                 "property_value_attributes": {
                   "visible": true
@@ -467,20 +639,14 @@
             }
           ]
         },
-
-        {
-          "config": "ranger-ugsync-site/ranger.usersync.group.usermapsyncenabled",
-          "subsection-name": "subsection-ranger-user-row1-col1",
-          "subsection-tab-name": "ldap-group-configs"
-        },
         {
           "config": "ranger-ugsync-site/ranger.usersync.group.searchenabled",
-          "subsection-name": "subsection-ranger-user-row1-col1",
+          "subsection-name": "subsection-ranger-user-row2-col1",
           "subsection-tab-name": "ldap-group-configs"
         },
         {
           "config": "ranger-ugsync-site/ranger.usersync.group.memberattributename",
-          "subsection-name": "subsection-ranger-user-row1-col1",
+          "subsection-name": "subsection-ranger-user-row2-col1",
           "subsection-tab-name": "ldap-group-configs",
           "depends-on": [
             {
@@ -503,7 +669,7 @@
         },
         {
           "config": "ranger-ugsync-site/ranger.usersync.group.nameattribute",
-          "subsection-name": "subsection-ranger-user-row1-col1",
+          "subsection-name": "subsection-ranger-user-row2-col1",
           "subsection-tab-name": "ldap-group-configs",
           "depends-on": [
             {
@@ -526,7 +692,7 @@
         },
         {
           "config": "ranger-ugsync-site/ranger.usersync.group.objectclass",
-          "subsection-name": "subsection-ranger-user-row1-col1",
+          "subsection-name": "subsection-ranger-user-row2-col1",
           "subsection-tab-name": "ldap-group-configs",
           "depends-on": [
             {
@@ -549,7 +715,7 @@
         },
         {
           "config": "ranger-ugsync-site/ranger.usersync.group.searchbase",
-          "subsection-name": "subsection-ranger-user-row1-col1",
+          "subsection-name": "subsection-ranger-user-row2-col1",
           "subsection-tab-name": "ldap-group-configs",
           "depends-on": [
             {
@@ -572,7 +738,7 @@
         },
         {
           "config": "ranger-ugsync-site/ranger.usersync.group.searchfilter",
-          "subsection-name": "subsection-ranger-user-row1-col1",
+          "subsection-name": "subsection-ranger-user-row2-col1",
           "subsection-tab-name": "ldap-group-configs",
           "depends-on": [
             {

http://git-wip-us.apache.org/repos/asf/ambari/blob/7aa9f6ca/ambari-web/app/mappers/configs/themes_mapper.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mappers/configs/themes_mapper.js b/ambari-web/app/mappers/configs/themes_mapper.js
index c296713..e23b691 100644
--- a/ambari-web/app/mappers/configs/themes_mapper.js
+++ b/ambari-web/app/mappers/configs/themes_mapper.js
@@ -66,6 +66,7 @@ App.themesMapper = App.QuickDataMapper.create({
     "id": "name",
     "name": "name",
     "display_name": "display-name",
+    "depends_on": "depends-on",
     "sub_section_id": "sub_section_id"
   },
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/7aa9f6ca/ambari-web/app/models/configs/theme/sub_section.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/configs/theme/sub_section.js b/ambari-web/app/models/configs/theme/sub_section.js
index ba6cc99..937e5ba 100644
--- a/ambari-web/app/models/configs/theme/sub_section.js
+++ b/ambari-web/app/models/configs/theme/sub_section.js
@@ -92,6 +92,10 @@ App.SubSection = DS.Model.extend({
     return this.get('subSectionTabs.length');
   }.property('subSectionTabs.length'),
 
+  showTabs: function() {
+    return this.get('hasTabs')  && this.get('subSectionTabs').someProperty('isVisible');
+  }.property('hasTabs','subSectionTabs.@each.isVisible'),
+
   /**
    * Number of the errors in all configs
    * @type {number}
@@ -99,8 +103,8 @@ App.SubSection = DS.Model.extend({
   errorsCount: function () {
     return this.get('configs').filter(function(config) {
       return !config.get('isValid') || (config.get('overrides') || []).someProperty('isValid', false);
-    }).length;
-  }.property('configs.@each.isValid', 'configs.@each.overrideErrorTrigger'),
+    }).filterProperty('isVisible').length;
+  }.property('configs.@each.isValid', 'configs.@each.isVisible', 'configs.@each.overrideErrorTrigger'),
 
   /**
    * @type {boolean}

http://git-wip-us.apache.org/repos/asf/ambari/blob/7aa9f6ca/ambari-web/app/templates/common/configs/service_config_layout_tab.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/common/configs/service_config_layout_tab.hbs b/ambari-web/app/templates/common/configs/service_config_layout_tab.hbs
index 0afe6ac..c1bb92b 100644
--- a/ambari-web/app/templates/common/configs/service_config_layout_tab.hbs
+++ b/ambari-web/app/templates/common/configs/service_config_layout_tab.hbs
@@ -47,10 +47,10 @@
                                 {{/if}}
                               {{/if}}
                             {{/each}}
-                            {{#if subsection.hasTabs}}
+                            {{#if subsection.showTabs}}
                               <ul class="nav nav-tabs mbm config-tabs">
                                 {{#each subSectionTab in subsection.subSectionTabs}}
-                                  <li rel='tooltip' {{bindAttr class="subSectionTab.isActive:active subSectionTab.isHiddenByFilter:disabled" data-original-title="tab.tooltipMsg"}}>
+                                  <li rel='tooltip' {{bindAttr class="subSectionTab.isActive:active subSectionTab.isVisible::disabled" data-original-title="tab.tooltipMsg"}}>
                                     <a href="#" {{action setActiveSubTab subSectionTab target="view"}}{{bindAttr data-target="subSectionTab.id"}} data-toggle="tab">
                                       {{subSectionTab.displayName}}
                                     </a>

http://git-wip-us.apache.org/repos/asf/ambari/blob/7aa9f6ca/ambari-web/app/views/common/configs/widgets/config_widget_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/configs/widgets/config_widget_view.js b/ambari-web/app/views/common/configs/widgets/config_widget_view.js
index 30c942b..5fa6430 100644
--- a/ambari-web/app/views/common/configs/widgets/config_widget_view.js
+++ b/ambari-web/app/views/common/configs/widgets/config_widget_view.js
@@ -394,7 +394,10 @@ App.ConfigWidgetView = Em.View.extend(App.SupportsDependentConfigs, App.WidgetPo
     var serviceName = this.get('config.serviceName');
     var serviceConfigs = this.get('controller.stepConfigs').findProperty('serviceName',serviceName).get('configs');
     configConditions.forEach(function(configCondition){
-      var ifCondition =  configCondition.get("if");
+      var ifStatement =  configCondition.get("if");
+      var splitIfCondition = ifStatement.split('===');
+      var ifCondition =  splitIfCondition[0];
+      var result = splitIfCondition[1] || "true";
       var conditionalConfigName = configCondition.get("configName");
       var conditionalConfigFileName = configCondition.get("fileName");
       var parseIfConditionVal = ifCondition;
@@ -409,7 +412,7 @@ App.ConfigWidgetView = Em.View.extend(App.SupportsDependentConfigs, App.WidgetPo
         }
       }, this);
 
-      var isConditionTrue =  Boolean(window.eval(parseIfConditionVal));
+      var isConditionTrue =  window.eval(JSON.stringify(parseIfConditionVal.trim())) === result.trim();
       var action = isConditionTrue ? configCondition.get("then") : configCondition.get("else");
       var valueAttributes = action.property_value_attributes;
       for (var key in valueAttributes) {