瀏覽代碼

AMBARI-11754. YARN local usercache is chown'd as user YARN when cluster is in secure mode (aonishuk)

Andrew Onishuk 10 年之前
父節點
當前提交
2bfca09c3e

+ 7 - 4
ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/yarn.py

@@ -101,14 +101,17 @@ def yarn(name = None):
               mode=0775
               )
 
-    Execute(('chown', '-R', params.yarn_user, params.nm_local_dirs),
-            only_if=format("test -d {nm_local_dirs}"),
+    smokeuser_directories = [os.path.join(dir, 'usercache' ,params.smokeuser)
+                             for dir in params.nm_local_dirs.split(',')]
+
+    if not params.security_enabled:
+      for directory in smokeuser_directories:
+        Execute(('chown', '-R', params.yarn_user, directory),
+            only_if=format("test -d {directory}"),
             sudo=True)
 
 
     if params.security_enabled:
-      smokeuser_directories = [os.path.join(dir, 'usercache' ,params.smokeuser)
-                               for dir in params.nm_local_dirs.split(',')]
       for directory in smokeuser_directories:
         Execute(('chown', '-R', params.smokeuser, directory),
                 only_if=format("test -d {directory}"),

+ 6 - 6
ambari-server/src/test/python/stacks/2.0.6/YARN/test_nodemanager.py

@@ -167,11 +167,15 @@ class TestNodeManager(RMFTestCase):
                               mode = 0775,
                               cd_access='a'
                               )
-    self.assertResourceCalled('Execute', ('chown', '-R', u'yarn', u'/hadoop/yarn/local,/hadoop/yarn/local1'),
+    self.assertResourceCalled('Execute', ('chown', '-R', u'yarn', u'/hadoop/yarn/local/usercache/ambari-qa'),
                               sudo = True,
-                              only_if = 'test -d /hadoop/yarn/local,/hadoop/yarn/local1',
+                              only_if = 'test -d /hadoop/yarn/local/usercache/ambari-qa',
                               )
 
+    self.assertResourceCalled('Execute', ('chown', '-R', u'yarn', u'/hadoop/yarn/local1/usercache/ambari-qa'),
+                              sudo = True,
+                              only_if = 'test -d /hadoop/yarn/local1/usercache/ambari-qa',
+                              )
     self.assertResourceCalled('Directory', '/var/run/hadoop-yarn',
       owner = 'yarn',
       group = 'hadoop',
@@ -337,10 +341,6 @@ class TestNodeManager(RMFTestCase):
                               mode = 0775,
                               cd_access='a'
                               )
-    self.assertResourceCalled('Execute', ('chown', '-R', u'yarn', u'/hadoop/yarn/local'),
-                              sudo = True,
-                              only_if = 'test -d /hadoop/yarn/local',
-                              )
 
     self.assertResourceCalled('Execute', ('chown', '-R', u'ambari-qa', u'/hadoop/yarn/local/usercache/ambari-qa'),
         sudo = True,