Browse Source

AMBARI-8172. Knox Gateway failed to start when Knox service account name was customized. (Sumit Gupta via yusaku)

Yusaku Sako 10 years ago
parent
commit
ae2cd3d7ae

+ 3 - 0
ambari-server/src/main/resources/stacks/HDP/2.2/services/KNOX/package/scripts/knox.py

@@ -55,6 +55,8 @@ def knox():
                       owner = params.knox_user,
                       template_tag = None
       )
+    cmd = format('chown -R {knox_user}:{knox_group} {knox_data_dir} {knox_logs_dir} {knox_pid_dir} {knox_conf_dir}')
+    Execute(cmd)
 
     cmd = format('{knox_client_bin} create-master --master {knox_master_secret!p}')
     Execute(cmd,
@@ -69,3 +71,4 @@ def knox():
             environment={'JAVA_HOME': params.java_home},
             not_if=format('test -f {knox_cert_store_path}')
     )
+

+ 3 - 0
ambari-server/src/main/resources/stacks/HDP/2.2/services/KNOX/package/scripts/params.py

@@ -110,6 +110,9 @@ if has_oozie:
 
 # server configurations
 knox_conf_dir = '/etc/knox/conf'
+knox_data_dir = '/var/lib/knox/data'
+knox_logs_dir = '/var/log/knox'
+knox_pid_dir = status_params.knox_pid_dir
 knox_user = default("/configurations/knox-env/knox_user", "knox")
 knox_group = default("/configurations/knox-env/knox_group", "knox")
 knox_pid_file = status_params.knox_pid_file

+ 2 - 0
ambari-server/src/test/python/stacks/2.2/KNOX/test_knox_gateway.py

@@ -53,6 +53,8 @@ class TestKnoxGateway(RMFTestCase):
                               owner = 'knox',
                               content = InlineTemplate(self.getConfig()['configurations']['topology']['content'])
     )
+    self.assertResourceCalled('Execute', 'chown -R knox:knox /var/lib/knox/data /var/log/knox /var/run/knox /etc/knox/conf'
+    )
     self.assertResourceCalled('Execute', '/usr/lib/knox/bin/knoxcli.sh create-master --master sa',
                               user='knox',
                               environment={'JAVA_HOME': '/usr/jdk64/jdk1.7.0_45'},