You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ao...@apache.org on 2015/05/16 19:25:58 UTC
ambari git commit: AMBARI-1241. non-root ambari server + umask 027
fails on ubuntu (aonishuk)
Repository: ambari
Updated Branches:
refs/heads/trunk 9a4b24cb2 -> a15e75c1f
AMBARI-1241. non-root ambari server + umask 027 fails on ubuntu (aonishuk)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/a15e75c1
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/a15e75c1
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/a15e75c1
Branch: refs/heads/trunk
Commit: a15e75c1f0a6ea6195c7487382d5aac6c9c22053
Parents: 9a4b24c
Author: Andrew Onishuk <ao...@hortonworks.com>
Authored: Sat May 16 20:25:38 2015 +0300
Committer: Andrew Onishuk <ao...@hortonworks.com>
Committed: Sat May 16 20:25:38 2015 +0300
----------------------------------------------------------------------
.../src/main/python/ambari_server/serverSetup.py | 19 ++++++++++++++++++-
.../src/test/python/TestAmbariServer.py | 4 +++-
2 files changed, 21 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/a15e75c1/ambari-server/src/main/python/ambari_server/serverSetup.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/python/ambari_server/serverSetup.py b/ambari-server/src/main/python/ambari_server/serverSetup.py
index 4547145..e254a53 100644
--- a/ambari-server/src/main/python/ambari_server/serverSetup.py
+++ b/ambari-server/src/main/python/ambari_server/serverSetup.py
@@ -23,6 +23,7 @@ import os
import re
import shutil
import sys
+import subprocess
from ambari_commons.exceptions import FatalException
from ambari_commons.firewall import Firewall
@@ -537,6 +538,7 @@ class JDKSetup(object):
try:
jdk_path = properties.get_property(JAVA_HOME_PROPERTY)
JDKSetup.unpack_jce_policy(jdk_path, resources_dir, jdk_cfg.dest_jcpol_file)
+ self.adjust_jce_permissions(jdk_path)
except FatalException, e:
print err_msg_stdout
print_error_msg("Failed to install JCE policy files:")
@@ -612,7 +614,10 @@ class JDKSetup(object):
# Base implementation, overriden in the subclasses
def _install_jdk(self, java_inst_file, java_home_dir):
pass
-
+
+ def adjust_jce_permissions(self, jdk_path):
+ pass
+
# Base implementation, overriden in the subclasses
def _ensure_java_home_env_var_is_set(self, java_home_dir):
pass
@@ -707,6 +712,7 @@ class JDKSetupLinux(JDKSetup):
self.CREATE_JDK_DIR_CMD = "/bin/mkdir -p {0}"
self.CHMOD_JDK_DIR_CMD = "chmod a+x {0}"
+ self.SET_JCE_PERMISSIONS = "chown {0} {1}/{2}/*"
# use --no-same-owner when running as root to prevent uucp as the user (AMBARI-6478)
self.UNTAR_JDK_ARCHIVE = "tar --no-same-owner -xvf {0}"
@@ -742,6 +748,17 @@ class JDKSetupLinux(JDKSetup):
def _ensure_java_home_env_var_is_set(self, java_home_dir):
#No way to do this in Linux. Best we can is to set the process environment variable.
os.environ[JAVA_HOME] = java_home_dir
+
+ def adjust_jce_permissions(self, jdk_path):
+ ambari_user = read_ambari_user()
+ cmd = self.SET_JCE_PERMISSIONS.format(ambari_user, jdk_path,configDefaults.JDK_SECURITY_DIR)
+ process = subprocess.Popen(cmd,
+ stdout=subprocess.PIPE,
+ stdin=subprocess.PIPE,
+ stderr=subprocess.PIPE,
+ shell=True
+ )
+ (stdoutdata, stderrdata) = process.communicate()
def download_and_install_jdk(options):
properties = get_ambari_properties()
http://git-wip-us.apache.org/repos/asf/ambari/blob/a15e75c1/ambari-server/src/test/python/TestAmbariServer.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/TestAmbariServer.py b/ambari-server/src/test/python/TestAmbariServer.py
index 5c05ad3..8f90e59 100644
--- a/ambari-server/src/test/python/TestAmbariServer.py
+++ b/ambari-server/src/test/python/TestAmbariServer.py
@@ -2068,6 +2068,7 @@ MIIFHjCCAwYCCQDpHKOBI+Lt0zANBgkqhkiG9w0BAQUFADBRMQswCQYDVQQGEwJV
pass
@patch.object(OSCheck, "os_distribution", new = MagicMock(return_value = os_distro_value))
+ @patch("ambari_server.serverSetup.read_ambari_user")
@patch("os.stat")
@patch("os.path.isfile")
@patch("os.path.exists")
@@ -2087,7 +2088,7 @@ MIIFHjCCAwYCCQDpHKOBI+Lt0zANBgkqhkiG9w0BAQUFADBRMQswCQYDVQQGEwJV
def test_download_jdk(self, exit_mock, copyfile_mock, get_ambari_properties_mock, get_JAVA_HOME_mock, \
validate_jdk_mock, print_info_msg_mock, get_validated_string_input_mock, update_properties_mock, \
run_os_command_mock, get_YN_input_mock, force_download_file_mock, expand_jce_zip_file_mock,
- os_chdir_mock, path_existsMock, path_isfileMock, statMock):
+ os_chdir_mock, path_existsMock, path_isfileMock, statMock, read_ambari_user_mock):
args = MagicMock()
args.java_home = "somewhere"
args.silent = False
@@ -2105,6 +2106,7 @@ MIIFHjCCAwYCCQDpHKOBI+Lt0zANBgkqhkiG9w0BAQUFADBRMQswCQYDVQQGEwJV
validate_jdk_mock.return_value = False
path_existsMock.return_value = False
get_JAVA_HOME_mock.return_value = False
+ read_ambari_user_mock.return_value = "ambari"
get_ambari_properties_mock.return_value = p
# Test case: ambari.properties not found
try: