Revert "AMBARI-9228. Ambari Server setup to install and copy JCE policy file in-place (handle both Default / Custom JDK scenarios) (rlevas)"
This reverts commit 049b692472151a4c3488afd2157dcd2ff509f265. Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/03d7acae Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/03d7acae Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/03d7acae Branch: refs/heads/2.0-preview Commit: 03d7acae7493212f71c37efdd00b261da7856c50 Parents: 1154fe4 Author: Yusaku Sako <yus...@hortonworks.com> Authored: Wed Jan 21 17:28:35 2015 -0800 Committer: Yusaku Sako <yus...@hortonworks.com> Committed: Wed Jan 21 17:28:35 2015 -0800 ---------------------------------------------------------------------- ambari-server/sbin/ambari-server | 6 +- ambari-server/src/main/python/ambari-server.py | 195 ------------------- .../python/ambari_server/serverConfiguration.py | 2 - .../src/test/python/TestAmbariServer.py | 138 +------------ 4 files changed, 4 insertions(+), 337 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/03d7acae/ambari-server/sbin/ambari-server ---------------------------------------------------------------------- diff --git a/ambari-server/sbin/ambari-server b/ambari-server/sbin/ambari-server index 168790b..c034f5d 100755 --- a/ambari-server/sbin/ambari-server +++ b/ambari-server/sbin/ambari-server @@ -111,10 +111,6 @@ case "$1" in echo -e "Setup ambari-server" $PYTHON /usr/sbin/ambari-server.py $@ ;; - setup-jce) - echo -e "Updating jce policy" - $PYTHON /usr/sbin/ambari-server.py $@ - ;; setup-ldap) echo -e "Setting up LDAP properties..." $PYTHON /usr/sbin/ambari-server.py $@ @@ -141,7 +137,7 @@ case "$1" in ;; *) echo "Usage: /usr/sbin/ambari-server - {start|stop|restart|setup|setup-jce|upgrade|status|upgradestack|setup-ldap|sync-ldap|setup-security|refresh-stack-hash|backup|restore} [options] + {start|stop|restart|setup|upgrade|status|upgradestack|setup-ldap|sync-ldap|setup-security|refresh-stack-hash|backup|restore} [options] Use usr/sbin/ambari-server <action> --help to get details on options available. Or, simply invoke ambari-server.py --help to print the options." exit 1 http://git-wip-us.apache.org/repos/asf/ambari/blob/03d7acae/ambari-server/src/main/python/ambari-server.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/python/ambari-server.py b/ambari-server/src/main/python/ambari-server.py index b75611f..7c08083 100755 --- a/ambari-server/src/main/python/ambari-server.py +++ b/ambari-server/src/main/python/ambari-server.py @@ -81,7 +81,6 @@ UPGRADE_ACTION = "upgrade" UPGRADE_STACK_ACTION = "upgradestack" STATUS_ACTION = "status" SETUP_HTTPS_ACTION = "setup-https" -SETUP_JCE_ACTION = "setup-jce" LDAP_SETUP_ACTION = "setup-ldap" LDAP_SYNC_ACTION = "sync-ldap" SETUP_GANGLIA_HTTPS_ACTION = "setup-ganglia-https" @@ -404,7 +403,6 @@ DEFAULT_JDK16_LOCATION = "/usr/jdk64/jdk1.6.0_31" JDK_INDEX = 0 JDK_VERSION_REs = ["(jdk.*)/jre", "Creating (jdk.*)/jre"] CUSTOM_JDK_NUMBER = "3" -IS_CUSTOM_JDK = False JDK_MIN_FILESIZE = 5000 CREATE_JDK_DIR_CMD = "/bin/mkdir -p " + configDefaults.JDK_INSTALL_DIR MAKE_FILE_EXECUTABLE_CMD = "chmod a+x {0}" @@ -1562,7 +1560,6 @@ def install_jce_manualy(args): # def download_jdk(args): global JDK_INDEX - global IS_CUSTOM_JDK properties = get_ambari_properties() if properties == -1: err = "Error getting ambari properties" @@ -1607,7 +1604,6 @@ Enter choice (""" + jdk_num + "):", ) if jdk_num == CUSTOM_JDK_NUMBER: - IS_CUSTOM_JDK = True print_warning_msg("JDK must be installed on all hosts and JAVA_HOME must be valid on all hosts.") print_warning_msg(jcePolicyWarn) args.java_home = get_validated_string_input("Path to JAVA_HOME: ", None, None, None, False, False) @@ -2029,174 +2025,6 @@ def verify_setup_allowed(): return 0 -def unpack_jce_policy(): - properties = get_ambari_properties() - jdk_path = properties.get_property(JAVA_HOME_PROPERTY) - jdk_security_path = jdk_path + os.sep + configDefaults.JDK_SECURITY_DIR - - jce_name = properties.get_property(JCE_NAME_PROPERTY) - jce_zip_path = configDefaults.SERVER_RESOURCES_DIR + os.sep + jce_name - unpack_cmd = 'unzip -o -j -q {0} -d {1}'.format(jce_zip_path, jdk_security_path) - - if os.path.exists(jdk_security_path) and os.path.exists(jce_zip_path) and validate_jdk(jdk_path): - try: - retcode, out, err = run_os_command(unpack_cmd) - if retcode != 0: - raise FatalException(retcode, err) - except Exception as e: - err = "Fail during the execution of '{0}'. {1}".format(unpack_cmd.format(jce_zip_path, jdk_security_path), e) - raise FatalException(1, err) - else: - err = "Can not execute {0}. The path {1}, {2} or {3} is invalid.".format(unpack_cmd, jdk_security_path, jce_zip_path, jdk_path) - raise FatalException(1, err) - -# -# Setup the JCE policy for Ambari Server. -# -def setup_jce_policy(path): - if os.path.exists(path): - copy_cmd = 'cp {0} {1}'.format(path, configDefaults.SERVER_RESOURCES_DIR) - try: - retcode, out, err = run_os_command(copy_cmd) - if retcode != 0: - raise FatalException(retcode, err) - except Exception as e: - err = "Fail during the execution of '{0}'. {1}".format(copy_cmd.format(path, configDefaults.SERVER_RESOURCES_DIR), e) - raise FatalException(1, err) - else: - err = "Can not run 'setup-jce'. Invalid path {0}.".format(path) - raise FatalException(1, err) - conf_file = search_file(AMBARI_PROPERTIES_FILE, get_conf_dir()) - properties = get_ambari_properties() - zip_name = os.path.split(path)[1] - properties.process_pair(JCE_NAME_PROPERTY, zip_name) - try: - properties.store(open(conf_file, "w")) - except Exception, e: - print_error_msg('Could not write ambari config file "%s": %s' % (conf_file, e)) - - print 'Installing JCE policy...' - try: - unpack_jce_policy() - except FatalException as e: - err = 'Installing JCE failed: {0}. Exiting.'.format(e) - raise FatalException(e.code, err) - print 'NOTE: Restart Ambari Server to apply changes' + \ - ' ("ambari-server restart|stop|start")' - - -def unpack_jce_policy(): - properties = get_ambari_properties() - jdk_path = properties.get_property(JAVA_HOME_PROPERTY) - jdk_security_path = jdk_path + os.sep + configDefaults.JDK_SECURITY_DIR - - jce_name = properties.get_property(JCE_NAME_PROPERTY) - jce_zip_path = configDefaults.SERVER_RESOURCES_DIR + os.sep + jce_name - unpack_cmd = 'unzip -o -j -q {0} -d {1}'.format(jce_zip_path, jdk_security_path) - - if os.path.exists(jdk_security_path) and os.path.exists(jce_zip_path) and validate_jdk(jdk_path): - try: - retcode, out, err = run_os_command(unpack_cmd) - if retcode != 0: - raise FatalException(retcode, err) - except Exception as e: - err = "Fail during the execution of '{0}'. {1}".format(unpack_cmd.format(jce_zip_path, jdk_security_path), e) - raise FatalException(1, err) - else: - err = "Can not execute {0}. The path {1}, {2} or {3} is invalid.".format(unpack_cmd, jdk_security_path, jce_zip_path, jdk_path) - raise FatalException(1, err) - -# -# Setup the JCE policy for Ambari Server. -# -def setup_jce_policy(path): - if os.path.exists(path): - copy_cmd = 'cp {0} {1}'.format(path, configDefaults.SERVER_RESOURCES_DIR) - try: - retcode, out, err = run_os_command(copy_cmd) - if retcode != 0: - raise FatalException(retcode, err) - except Exception as e: - err = "Fail during the execution of '{0}'. {1}".format(copy_cmd.format(path, configDefaults.SERVER_RESOURCES_DIR), e) - raise FatalException(1, err) - else: - err = "Can not run 'setup-jce'. Invalid path {0}.".format(path) - raise FatalException(1, err) - conf_file = search_file(AMBARI_PROPERTIES_FILE, get_conf_dir()) - properties = get_ambari_properties() - zip_name = os.path.split(path)[1] - properties.process_pair(JCE_NAME_PROPERTY, zip_name) - try: - properties.store(open(conf_file, "w")) - except Exception, e: - print_error_msg('Could not write ambari config file "%s": %s' % (conf_file, e)) - - print 'Installing JCE policy...' - try: - unpack_jce_policy() - except FatalException as e: - err = 'Installing JCE failed: {0}. Exiting.'.format(e) - raise FatalException(e.code, err) - print 'NOTE: Restart Ambari Server to apply changes' + \ - ' ("ambari-server restart|stop|start")' - - -def unpack_jce_policy(): - properties = get_ambari_properties() - jdk_path = properties.get_property(JAVA_HOME_PROPERTY) - jdk_security_path = jdk_path + os.sep + configDefaults.JDK_SECURITY_DIR - - jce_name = properties.get_property(JCE_NAME_PROPERTY) - jce_zip_path = configDefaults.SERVER_RESOURCES_DIR + os.sep + jce_name - unpack_cmd = 'unzip -o -j -q {0} -d {1}'.format(jce_zip_path, jdk_security_path) - - if os.path.exists(jdk_security_path) and os.path.exists(jce_zip_path) and validate_jdk(jdk_path): - try: - retcode, out, err = run_os_command(unpack_cmd) - if retcode != 0: - raise FatalException(retcode, err) - except Exception as e: - err = "Fail during the execution of '{0}'. {1}".format(unpack_cmd.format(jce_zip_path, jdk_security_path), e) - raise FatalException(1, err) - else: - err = "Can not execute {0}. The path {1}, {2} or {3} is invalid.".format(unpack_cmd, jdk_security_path, jce_zip_path, jdk_path) - raise FatalException(1, err) - -# -# Setup the JCE policy for Ambari Server. -# -def setup_jce_policy(path): - if os.path.exists(path): - copy_cmd = 'cp {0} {1}'.format(path, configDefaults.SERVER_RESOURCES_DIR) - try: - retcode, out, err = run_os_command(copy_cmd) - if retcode != 0: - raise FatalException(retcode, err) - except Exception as e: - err = "Fail during the execution of '{0}'. {1}".format(copy_cmd.format(path, configDefaults.SERVER_RESOURCES_DIR), e) - raise FatalException(1, err) - else: - err = "Can not run 'setup-jce'. Invalid path {0}.".format(path) - raise FatalException(1, err) - conf_file = search_file(AMBARI_PROPERTIES_FILE, get_conf_dir()) - properties = get_ambari_properties() - zip_name = os.path.split(path)[1] - properties.process_pair(JCE_NAME_PROPERTY, zip_name) - try: - properties.store(open(conf_file, "w")) - except Exception, e: - print_error_msg('Could not write ambari config file "%s": %s' % (conf_file, e)) - - print 'Installing JCE policy...' - try: - unpack_jce_policy() - except FatalException as e: - err = 'Installing JCE failed: {0}. Exiting.'.format(e) - raise FatalException(e.code, err) - print 'NOTE: Restart Ambari Server to apply changes' + \ - ' ("ambari-server restart|stop|start")' - - # # Setup the Ambari Server. # @@ -2255,24 +2083,6 @@ def setup(args): err = 'Downloading or installing JDK failed: {0}. Exiting.'.format(e) raise FatalException(e.code, err) - print 'Installing JCE policy...' - try: - unpack_jce_policy() - except FatalException as e: - err = 'Installing JCE failed: {0}. Exiting.'.format(e) - raise FatalException(e.code, err) - - - - if not IS_CUSTOM_JDK: # If it's not a custom JDK, will also install JCE policy automatically - print 'Installing JCE policy...' - try: - unpack_jce_policy() - except FatalException as e: - err = 'Installing JCE failed: {0}. Exiting.'.format(e) - raise FatalException(e.code, err) - - print 'Completing setup...' retcode = configure_os_settings() if not retcode == 0: @@ -4413,8 +4223,6 @@ def main(): possible_args_numbers = [2,4] # OR elif action == BACKUP_ACTION or action == RESTORE_ACTION: possible_args_numbers = [1,2] - elif action == SETUP_JCE_ACTION: - possible_args_numbers = [2] else: possible_args_numbers = [1] @@ -4436,9 +4244,6 @@ def main(): start(options) elif action == STOP_ACTION: stop(options) - elif action == SETUP_JCE_ACTION: - path = args[1] - setup_jce_policy(path) elif action == RESET_ACTION: reset(options) elif action == STATUS_ACTION: http://git-wip-us.apache.org/repos/asf/ambari/blob/03d7acae/ambari-server/src/main/python/ambari_server/serverConfiguration.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/python/ambari_server/serverConfiguration.py b/ambari-server/src/main/python/ambari_server/serverConfiguration.py index 6964719..44c30ce 100644 --- a/ambari-server/src/main/python/ambari_server/serverConfiguration.py +++ b/ambari-server/src/main/python/ambari_server/serverConfiguration.py @@ -156,8 +156,6 @@ class ServerConfigDefaults(object): self.JDK_INSTALL_DIR = "" self.JDK_SEARCH_PATTERN = "" self.JAVA_EXE_SUBPATH = "" - self.JDK_SECURITY_DIR = "jre/lib/security" - self.SERVER_RESOURCES_DIR = "/var/lib/ambari-server/resources" # Configuration defaults self.DEFAULT_CONF_DIR = "" http://git-wip-us.apache.org/repos/asf/ambari/blob/03d7acae/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 e0b390c..408c088 100644 --- a/ambari-server/src/test/python/TestAmbariServer.py +++ b/ambari-server/src/test/python/TestAmbariServer.py @@ -2418,119 +2418,6 @@ MIIFHjCCAwYCCQDpHKOBI+Lt0zANBgkqhkiG9w0BAQUFADBRMQswCQYDVQQGEwJV result = _ambari_server_.find_jdk() self.assertEqual(result, "two") - @patch.object(_ambari_server_, "get_ambari_properties") - @patch("os.path.exists") - @patch.object(_ambari_server_, "run_os_command") - @patch.object(_ambari_server_, "validate_jdk") - def test_unpack_jce_policy(self, validate_jdk_mock, run_os_command_mock, exists_mock, get_ambari_properties_mock): - properties = MagicMock() - get_ambari_properties_mock.return_value = properties - exists_mock.return_value = True - run_os_command_mock.return_value = 0 , "", "" - validate_jdk_mock.return_value = True - - _ambari_server_.unpack_jce_policy() - self.assertTrue(run_os_command_mock.called) - self.assertTrue(validate_jdk_mock.called) - - # Testing with bad jdk_security_path or jce_zip_path - exists_mock.return_value = False - try: - _ambari_server_.unpack_jce_policy() - except FatalException: - self.assertTrue(True) - exists_mock.return_value = True - - # Testing with bad jdk path - validate_jdk_mock.return_value = False - try: - _ambari_server_.unpack_jce_policy() - except FatalException: - self.assertTrue(True) - validate_jdk_mock.return_value = True - - # Testing with return code distinct to 0 for run_os_command - run_os_command_mock.return_value = 3 , "", "" - try: - _ambari_server_.unpack_jce_policy() - except FatalException: - self.assertTrue(True) - run_os_command_mock.return_value = 0 , "", "" - - # Testing with an error produced by run_os_command - run_os_command_mock.reset_mock() - run_os_command_mock.side_effect = FatalException(1, "The command fails.") - try: - _ambari_server_.unpack_jce_policy() - except FatalException: - self.assertTrue(True) - - @patch("os.path.exists") - @patch.object(_ambari_server_, "run_os_command") - @patch("os.path.split") - @patch.object(_ambari_server_, "unpack_jce_policy") - @patch.object(_ambari_server_, "get_ambari_properties") - @patch.object(_ambari_server_, "search_file") - @patch("__builtin__.open") - def test_setup_jce_policy(self, open_mock, search_file_mock, get_ambari_properties_mock, unpack_jce_policy_mock, split_mock, run_os_command_mock, exists_mock): - exists_mock.return_value = True - run_os_command_mock.return_value = 0 , "", "" - properties = MagicMock() - unpack_jce_policy_mock.return_value = 0 - get_ambari_properties_mock.return_value = properties - conf_file = 'etc/ambari-server/conf/ambari.properties' - search_file_mock.return_value = conf_file - split_mock.return_value = [_ambari_server_.configDefaults.SERVER_RESOURCES_DIR, 'UnlimitedJCEPolicyJDK7.zip'] - - path = '/path/to/JCEPolicy.zip' - copy_cmd = 'cp {0} {1}'.format(path, _ambari_server_.configDefaults.SERVER_RESOURCES_DIR) - - _ambari_server_.setup_jce_policy(path) - run_os_command_mock.assert_called_with(copy_cmd) - self.assertTrue(unpack_jce_policy_mock.called) - self.assertTrue(get_ambari_properties_mock.called) - self.assertTrue(properties.store.called) - - # Testing with bad path - exists_mock.return_value = False - try: - _ambari_server_.setup_jce_policy(path) - except FatalException: - self.assertTrue(True) - exists_mock.return_value = True - - # Testing with return code distinct to 0 for run_os_command - run_os_command_mock.return_value = 2, "", "Fail" - try: - _ambari_server_.setup_jce_policy(path) - except FatalException: - self.assertTrue(True) - run_os_command_mock.return_value = 0, "", "" - - # Testing with an error produced by run_os_command - run_os_command_mock.reset_mock() - run_os_command_mock.side_effect = FatalException(1, "The command fails.") - try: - _ambari_server_.setup_jce_policy(path) - except FatalException: - self.assertTrue(True) - run_os_command_mock.return_value = 0, "", "" - - # Testing with an error produced by Properties.store function - properties.store.side_effect = Exception("Invalid file.") - try: - _ambari_server_.setup_jce_policy(path) - except Exception: - self.assertTrue(True) - properties.reset_mock() - - # Testing with an error produced by unpack_jce_policy - unpack_jce_policy_mock.side_effect = FatalException(1, "Can not install JCE policy") - try: - _ambari_server_.setup_jce_policy(path) - except FatalException: - self.assertTrue(True) - @patch("ambari_commons.firewall.run_os_command") @patch.object(OSCheck, "get_os_family") @patch.object(OSCheck, "get_os_type") @@ -2559,8 +2446,7 @@ MIIFHjCCAwYCCQDpHKOBI+Lt0zANBgkqhkiG9w0BAQUFADBRMQswCQYDVQQGEwJV @patch.object(_ambari_server_, "extract_views") @patch.object(_ambari_server_, "adjust_directory_permissions") @patch.object(_ambari_server_, 'read_ambari_user') - @patch.object(_ambari_server_, "unpack_jce_policy") - def test_setup(self, unpack_jce_policy_mock, read_ambari_user_mock, adjust_dirs_mock, extract_views_mock, proceedJDBCProperties_mock, is_server_runing_mock, is_root_mock, store_local_properties_mock, + def test_setup(self, read_ambari_user_mock, adjust_dirs_mock, extract_views_mock, proceedJDBCProperties_mock, is_server_runing_mock, is_root_mock, store_local_properties_mock, is_local_database_mock, store_remote_properties_mock, setup_remote_db_mock, check_selinux_mock, check_jdbc_drivers_mock, check_ambari_user_mock, check_postgre_up_mock, setup_db_mock, configure_postgres_mock, @@ -2579,7 +2465,6 @@ MIIFHjCCAwYCCQDpHKOBI+Lt0zANBgkqhkiG9w0BAQUFADBRMQswCQYDVQQGEwJV get_os_family_mock.return_value = OSConst.REDHAT_FAMILY run_os_command_mock.return_value = 3,"","" extract_views_mock.return_value = 0 - unpack_jce_policy_mock.return_value = 0 def reset_mocks(): is_jdbc_user_changed_mock.reset_mock() @@ -2689,19 +2574,6 @@ MIIFHjCCAwYCCQDpHKOBI+Lt0zANBgkqhkiG9w0BAQUFADBRMQswCQYDVQQGEwJV self.assertFalse(check_selinux_mock.called) self.assertFalse(check_ambari_user_mock.called) - - # Test that unpack_jce_policy is called - reset_mocks() - _ambari_server_.setup(args) - self.assertTrue(unpack_jce_policy_mock.called) - - # Testing with an error produced by unpack_jce_policy - unpack_jce_policy_mock.side_effect = FatalException(1, "Can not install JCE policy") - try: - _ambari_server_.setup(args) - except FatalException: - self.assertTrue(True) - @patch.object(_ambari_server_, "get_remote_script_line") @patch.object(_ambari_server_, "is_server_runing") @patch.object(_ambari_server_, "get_YN_input") @@ -4086,8 +3958,7 @@ MIIFHjCCAwYCCQDpHKOBI+Lt0zANBgkqhkiG9w0BAQUFADBRMQswCQYDVQQGEwJV @patch.object(_ambari_server_, "configure_os_settings") @patch('__builtin__.raw_input') @patch.object(_ambari_server_, "check_selinux") - @patch.object(_ambari_server_, "unpack_jce_policy") - def test_setup_remote_db_wo_client(self, unpack_jce_policy_mock, check_selinux_mock, raw_input, configure_os_settings_mock, + def test_setup_remote_db_wo_client(self, check_selinux_mock, raw_input, configure_os_settings_mock, download_jdk_mock, check_ambari_user_mock, is_root_mock, check_jdbc_drivers_mock, is_local_db_mock, store_remote_properties_mock, get_db_cli_tool_mock, get_YN_input, @@ -4111,7 +3982,6 @@ MIIFHjCCAwYCCQDpHKOBI+Lt0zANBgkqhkiG9w0BAQUFADBRMQswCQYDVQQGEwJV download_jdk_mock.return_value = 0 configure_os_settings_mock.return_value = 0 verify_setup_allowed_method.return_value = 0 - unpack_jce_policy_mock.return_value = 0 try: _ambari_server_.setup(args) @@ -5537,8 +5407,7 @@ MIIFHjCCAwYCCQDpHKOBI+Lt0zANBgkqhkiG9w0BAQUFADBRMQswCQYDVQQGEwJV @patch.object(_ambari_server_, "adjust_directory_permissions") @patch("sys.exit") @patch('__builtin__.raw_input') - @patch.object(_ambari_server_, "unpack_jce_policy") - def test_ambariServerSetupWithCustomDbName(self, unpack_jce_policy_mock, raw_input, exit_mock, adjust_dirs_mock, extract_views_mock, store_password_file_mock, + def test_ambariServerSetupWithCustomDbName(self, raw_input, exit_mock, adjust_dirs_mock, extract_views_mock, store_password_file_mock, get_is_secure_mock, setup_db_mock, is_root_mock, is_local_database_mock, check_selinux_mock, check_jdbc_drivers_mock, check_ambari_user_mock, check_postgre_up_mock, configure_postgres_mock, @@ -5569,7 +5438,6 @@ MIIFHjCCAwYCCQDpHKOBI+Lt0zANBgkqhkiG9w0BAQUFADBRMQswCQYDVQQGEwJV get_os_type_mock.return_value = "" get_os_family_mock.return_value = OSConst.REDHAT_FAMILY run_os_command_mock.return_value = 3,"","" - unpack_jce_policy_mock.return_value = 0 new_db = "newDBName" args.dbms = "postgres"