Browse Source

AMBARI-10545. A couple environment varibles are missing for NFS Gateway. (jaimin)

Jaimin Jetly 10 years ago
parent
commit
3c2fa88f54

+ 15 - 9
ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/utils.py

@@ -150,19 +150,19 @@ def service(action=None, name=None, user=None, options="", create_pid_dir=False,
   hadoop_env_exports = {
     'HADOOP_LIBEXEC_DIR': params.hadoop_libexec_dir
   }
+  log_dir = format("{hdfs_log_dir_prefix}/{user}")
+
   # NFS GATEWAY is always started by root using jsvc due to rpcbind bugs
   # on Linux such as CentOS6.2. https://bugzilla.redhat.com/show_bug.cgi?id=731542
   if name == "nfs3" :
-    pid_file = format(
-      "{hadoop_pid_dir_prefix}/root/hadoop_privileged_nfs3.pid")
-
-    print pid_file
+    pid_file = format("{pid_dir}/hadoop_privileged_nfs3.pid")
     custom_export = {
-      'HADOOP_PRIVILEGED_NFS_USER': params.hdfs_user
+      'HADOOP_PRIVILEGED_NFS_USER': params.hdfs_user,
+      'HADOOP_PRIVILEGED_NFS_PID_DIR': pid_dir,
+      'HADOOP_PRIVILEGED_NFS_LOG_DIR': log_dir
     }
     hadoop_env_exports.update(custom_export)
 
-  log_dir = format("{hdfs_log_dir_prefix}/{user}")
   check_process = format(
     "ls {pid_file} >/dev/null 2>&1 &&"
     " ps -p `cat {pid_file}` >/dev/null 2>&1")
@@ -172,9 +172,15 @@ def service(action=None, name=None, user=None, options="", create_pid_dir=False,
               owner=user,
               recursive=True)
   if create_log_dir:
-    Directory(log_dir,
-              owner=user,
-              recursive=True)
+    if name == "nfs3":
+      Directory(log_dir,
+                mode=0775,
+                owner=params.root_user,
+                group=params.user_group)
+    else:
+      Directory(log_dir,
+                owner=user,
+                recursive=True)
 
   if params.security_enabled and name == "datanode":
     ## The directory where pid files are stored in the secure data environment.

+ 12 - 8
ambari-server/src/test/python/stacks/2.0.6/HDFS/test_nfsgateway.py

@@ -61,14 +61,15 @@ class TestNFSGateway(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop/root',
                               owner = 'root',
-                              recursive = True,
+                              group = 'hadoop',
+                              mode = 0775
                               )
     self.assertResourceCalled('File', '/var/run/hadoop/root/hadoop_privileged_nfs3.pid',
                               action = ['delete'],
                               not_if='ls /var/run/hadoop/root/hadoop_privileged_nfs3.pid >/dev/null 2>&1 && ps -p `cat /var/run/hadoop/root/hadoop_privileged_nfs3.pid` >/dev/null 2>&1',
                               )
     self.assertResourceCalled('Execute', "ambari-sudo.sh [RMF_ENV_PLACEHOLDER] -H -E /usr/lib/hadoop/sbin/hadoop-daemon.sh --config /etc/hadoop/conf start nfs3",
-        environment = {'HADOOP_LIBEXEC_DIR': '/usr/lib/hadoop/libexec', 'HADOOP_PRIVILEGED_NFS_USER': 'hdfs'},
+        environment = {'HADOOP_LIBEXEC_DIR': '/usr/lib/hadoop/libexec', 'HADOOP_PRIVILEGED_NFS_USER': 'hdfs', 'HADOOP_PRIVILEGED_NFS_LOG_DIR': '/var/log/hadoop/root', 'HADOOP_PRIVILEGED_NFS_PID_DIR': '/var/run/hadoop/root'},
         not_if = 'ls /var/run/hadoop/root/hadoop_privileged_nfs3.pid >/dev/null 2>&1 && ps -p `cat /var/run/hadoop/root/hadoop_privileged_nfs3.pid` >/dev/null 2>&1',
     )
     self.assertNoMoreResources()
@@ -92,14 +93,15 @@ class TestNFSGateway(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop/root',
                               owner = 'root',
-                              recursive = True,
+                              group = 'hadoop',
+                              mode = 0775
                               )
     self.assertResourceCalled('File', '/var/run/hadoop/root/hadoop_privileged_nfs3.pid',
                               action = ['delete'],
                               not_if='ls /var/run/hadoop/root/hadoop_privileged_nfs3.pid >/dev/null 2>&1 && ps -p `cat /var/run/hadoop/root/hadoop_privileged_nfs3.pid` >/dev/null 2>&1',
                               )
     self.assertResourceCalled('Execute', "ambari-sudo.sh [RMF_ENV_PLACEHOLDER] -H -E /usr/lib/hadoop/sbin/hadoop-daemon.sh --config /etc/hadoop/conf stop nfs3",
-        environment = {'HADOOP_LIBEXEC_DIR': '/usr/lib/hadoop/libexec', 'HADOOP_PRIVILEGED_NFS_USER': 'hdfs'},
+        environment = {'HADOOP_LIBEXEC_DIR': '/usr/lib/hadoop/libexec', 'HADOOP_PRIVILEGED_NFS_USER': 'hdfs', 'HADOOP_PRIVILEGED_NFS_LOG_DIR': '/var/log/hadoop/root', 'HADOOP_PRIVILEGED_NFS_PID_DIR': '/var/run/hadoop/root'},
         not_if = None,
     )
     self.assertResourceCalled('File', '/var/run/hadoop/root/hadoop_privileged_nfs3.pid',
@@ -140,14 +142,15 @@ class TestNFSGateway(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop/root',
                               owner = 'root',
-                              recursive = True,
+                              group = 'hadoop',
+                              mode = 0775
                               )
     self.assertResourceCalled('File', '/var/run/hadoop/root/hadoop_privileged_nfs3.pid',
                               action = ['delete'],
                               not_if='ls /var/run/hadoop/root/hadoop_privileged_nfs3.pid >/dev/null 2>&1 && ps -p `cat /var/run/hadoop/root/hadoop_privileged_nfs3.pid` >/dev/null 2>&1',
                               )
     self.assertResourceCalled('Execute', "ambari-sudo.sh [RMF_ENV_PLACEHOLDER] -H -E /usr/lib/hadoop/sbin/hadoop-daemon.sh --config /etc/hadoop/conf start nfs3",
-        environment = {'HADOOP_LIBEXEC_DIR': '/usr/lib/hadoop/libexec', 'HADOOP_PRIVILEGED_NFS_USER': 'hdfs'},
+        environment = {'HADOOP_LIBEXEC_DIR': '/usr/lib/hadoop/libexec', 'HADOOP_PRIVILEGED_NFS_USER': 'hdfs', 'HADOOP_PRIVILEGED_NFS_LOG_DIR': '/var/log/hadoop/root', 'HADOOP_PRIVILEGED_NFS_PID_DIR': '/var/run/hadoop/root'},
         not_if = 'ls /var/run/hadoop/root/hadoop_privileged_nfs3.pid >/dev/null 2>&1 && ps -p `cat /var/run/hadoop/root/hadoop_privileged_nfs3.pid` >/dev/null 2>&1',
     )
     self.assertNoMoreResources()
@@ -171,14 +174,15 @@ class TestNFSGateway(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop/root',
                               owner = 'root',
-                              recursive = True,
+                              group = 'hadoop',
+                              mode = 0775
                               )
     self.assertResourceCalled('File', '/var/run/hadoop/root/hadoop_privileged_nfs3.pid',
                               action = ['delete'],
                               not_if='ls /var/run/hadoop/root/hadoop_privileged_nfs3.pid >/dev/null 2>&1 && ps -p `cat /var/run/hadoop/root/hadoop_privileged_nfs3.pid` >/dev/null 2>&1',
                               )
     self.assertResourceCalled('Execute', "ambari-sudo.sh [RMF_ENV_PLACEHOLDER] -H -E /usr/lib/hadoop/sbin/hadoop-daemon.sh --config /etc/hadoop/conf stop nfs3",
-        environment = {'HADOOP_LIBEXEC_DIR': '/usr/lib/hadoop/libexec', 'HADOOP_PRIVILEGED_NFS_USER': 'hdfs'},
+        environment = {'HADOOP_LIBEXEC_DIR': '/usr/lib/hadoop/libexec', 'HADOOP_PRIVILEGED_NFS_USER': 'hdfs', 'HADOOP_PRIVILEGED_NFS_LOG_DIR': '/var/log/hadoop/root', 'HADOOP_PRIVILEGED_NFS_PID_DIR': '/var/run/hadoop/root'},
         not_if = None,
     )
     self.assertResourceCalled('File', '/var/run/hadoop/root/hadoop_privileged_nfs3.pid',