Repository: ambari
Updated Branches:
  refs/heads/branch-2.5 b842de131 -> ea8dff324


AMBARI-20494. Disabling security fails with AttributeError (rlevas)


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

Branch: refs/heads/branch-2.5
Commit: ea8dff32491d2a91bf1ad10a9d34dbca6acc78cb
Parents: b842de1
Author: Robert Levas <[email protected]>
Authored: Mon Mar 20 10:19:01 2017 -0400
Committer: Robert Levas <[email protected]>
Committed: Mon Mar 20 10:19:01 2017 -0400

----------------------------------------------------------------------
 .../stacks/HDP/2.5/services/stack_advisor.py    | 24 +++++++++++++-------
 .../stacks/2.5/common/test_stack_advisor.py     |  5 ++++
 2 files changed, 21 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/ea8dff32/ambari-server/src/main/resources/stacks/HDP/2.5/services/stack_advisor.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/stacks/HDP/2.5/services/stack_advisor.py 
b/ambari-server/src/main/resources/stacks/HDP/2.5/services/stack_advisor.py
index d510e60..9bfae8d 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.5/services/stack_advisor.py
+++ b/ambari-server/src/main/resources/stacks/HDP/2.5/services/stack_advisor.py
@@ -468,17 +468,25 @@ class HDP25StackAdvisor(HDP24StackAdvisor):
   def recommendStormConfigurations(self, configurations, clusterData, 
services, hosts):
     super(HDP25StackAdvisor, 
self).recommendStormConfigurations(configurations, clusterData, services, hosts)
     storm_site = self.getServicesSiteProperties(services, "storm-site")
+    storm_env = self.getServicesSiteProperties(services, "storm-env")
     putStormSiteProperty = self.putProperty(configurations, "storm-site", 
services)
     putStormSiteAttributes = self.putPropertyAttribute(configurations, 
"storm-site")
-    security_enabled = (storm_site is not None and "storm.zookeeper.superACL" 
in storm_site)
+    security_enabled = self.isSecurityEnabled(services)
+
+    if storm_env and storm_site:
+      if security_enabled:
+        _storm_principal_name = storm_env['storm_principal_name'] if 
'storm_principal_name' in storm_env else None
+        storm_bare_jaas_principal = get_bare_principal(_storm_principal_name)
+        if 'nimbus.impersonation.acl' in storm_site:
+          storm_nimbus_impersonation_acl = 
storm_site["nimbus.impersonation.acl"]
+          
storm_nimbus_impersonation_acl.replace('{{storm_bare_jaas_principal}}', 
storm_bare_jaas_principal)
+          putStormSiteProperty('nimbus.impersonation.acl', 
storm_nimbus_impersonation_acl)
+      else:
+        if 'nimbus.impersonation.acl' in storm_site:
+          putStormSiteAttributes('nimbus.impersonation.acl', 'delete', 'true')
+        if 'nimbus.impersonation.authorizer' in storm_site:
+          putStormSiteAttributes('nimbus.impersonation.authorizer', 'delete', 
'true')
 
-    if security_enabled:
-      _storm_principal_name = 
services['configurations']['storm-env']['properties']['storm_principal_name']
-      storm_bare_jaas_principal = get_bare_principal(_storm_principal_name)
-      if 'nimbus.impersonation.acl' in storm_site:
-        storm_nimbus_impersonation_acl = storm_site["nimbus.impersonation.acl"]
-        
storm_nimbus_impersonation_acl.replace('{{storm_bare_jaas_principal}}', 
storm_bare_jaas_principal)
-        putStormSiteProperty('nimbus.impersonation.acl', 
storm_nimbus_impersonation_acl)
     rangerPluginEnabled = ''
     if 'ranger-storm-plugin-properties' in configurations and 
'ranger-storm-plugin-enabled' in  
configurations['ranger-storm-plugin-properties']['properties']:
       rangerPluginEnabled = 
configurations['ranger-storm-plugin-properties']['properties']['ranger-storm-plugin-enabled']

http://git-wip-us.apache.org/repos/asf/ambari/blob/ea8dff32/ambari-server/src/test/python/stacks/2.5/common/test_stack_advisor.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/test/python/stacks/2.5/common/test_stack_advisor.py 
b/ambari-server/src/test/python/stacks/2.5/common/test_stack_advisor.py
index 2f81395..00edf21 100644
--- a/ambari-server/src/test/python/stacks/2.5/common/test_stack_advisor.py
+++ b/ambari-server/src/test/python/stacks/2.5/common/test_stack_advisor.py
@@ -5369,6 +5369,11 @@ class TestHDP25StackAdvisor(TestCase):
         "stack_version": "2.5"
       },
       "configurations": {
+        "cluster-env": {
+          "properties": {
+            "security_enabled" : "true"
+          }
+        },
         "storm-site": {
           "properties": {
             "nimbus.authorizer" : 
"org.apache.storm.security.auth.authorizer.SimpleACLAuthorizer",

Reply via email to