AMBARI-12790. Handle ambari-env.sh file like ambari.properties (dlysnichenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/7cf27fc4 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/7cf27fc4 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/7cf27fc4 Branch: refs/heads/trunk Commit: 7cf27fc4e9aa74b790ddafbfb4aa6c2c6841cc1b Parents: 9d81647 Author: Lisnichenko Dmitro <dlysniche...@hortonworks.com> Authored: Mon Aug 17 18:54:05 2015 +0300 Committer: Lisnichenko Dmitro <dlysniche...@hortonworks.com> Committed: Mon Aug 17 18:54:05 2015 +0300 ---------------------------------------------------------------------- .../python/ambari_server/serverConfiguration.py | 25 ++++++++++++++++++++ .../main/python/ambari_server/serverUpgrade.py | 8 ++++++- .../src/test/python/TestAmbariServer.py | 8 +++++-- 3 files changed, 38 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/7cf27fc4/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 74d31d5..df77159 100644 --- a/ambari-server/src/main/python/ambari_server/serverConfiguration.py +++ b/ambari-server/src/main/python/ambari_server/serverConfiguration.py @@ -60,6 +60,7 @@ BOOTSTRAP_DIR_PROPERTY = "bootstrap.dir" AMBARI_CONF_VAR = "AMBARI_CONF_DIR" AMBARI_PROPERTIES_FILE = "ambari.properties" +AMBARI_ENV_FILE = "ambari-env.sh" AMBARI_KRB_JAAS_LOGIN_FILE = "krb5JAASLogin.conf" GET_FQDN_SERVICE_URL = "server.fqdn.service.url" @@ -270,8 +271,10 @@ class ServerConfigDefaults(object): self.DEFAULT_CONF_DIR = "" self.PID_DIR = os.sep + os.path.join("var", "run", "ambari-server") self.DEFAULT_LIBS_DIR = "" + self.DEFAULT_VLIBS_DIR = "" self.AMBARI_PROPERTIES_BACKUP_FILE = "" + self.AMBARI_ENV_BACKUP_FILE = "" self.AMBARI_KRB_JAAS_LOGIN_BACKUP_FILE = "" # ownership/permissions mapping @@ -369,8 +372,10 @@ class ServerConfigDefaultsLinux(ServerConfigDefaults): # Configuration defaults self.DEFAULT_CONF_DIR = "/etc/ambari-server/conf" self.DEFAULT_LIBS_DIR = "/usr/lib/ambari-server" + self.DEFAULT_VLIBS_DIR = "/var/lib/ambari-server" self.AMBARI_PROPERTIES_BACKUP_FILE = "ambari.properties.rpmsave" + self.AMBARI_ENV_BACKUP_FILE = "ambari-env.sh.rpmsave" self.AMBARI_KRB_JAAS_LOGIN_BACKUP_FILE = "krb5JAASLogin.conf.rpmsave" # ownership/permissions mapping # path - permissions - user - group - recursive @@ -927,6 +932,26 @@ def update_krb_jaas_login_properties(): return 0 +def update_ambari_env(): + prev_env_file = search_file(configDefaults.AMBARI_ENV_BACKUP_FILE, configDefaults.DEFAULT_VLIBS_DIR) + env_file = search_file(AMBARI_ENV_FILE, configDefaults.DEFAULT_VLIBS_DIR) + + # Previous env file does not exist + if (not prev_env_file) or (prev_env_file is None): + print_warning_msg("Can not find %s file from previous version, skipping restore of environment settings" % + configDefaults.AMBARI_ENV_BACKUP_FILE) + return 0 + + try: + if env_file is not None: + os.remove(env_file) + os.rename(prev_env_file, env_file) + print_warning_msg("Original file %s kept" % AMBARI_ENV_FILE) + except OSError as e: + print "Couldn't move %s file: %s" % (prev_env_file, e) + return -1 + + return 0 def update_ambari_properties(): prev_conf_file = search_file(configDefaults.AMBARI_PROPERTIES_BACKUP_FILE, get_conf_dir()) http://git-wip-us.apache.org/repos/asf/ambari/blob/7cf27fc4/ambari-server/src/main/python/ambari_server/serverUpgrade.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/python/ambari_server/serverUpgrade.py b/ambari-server/src/main/python/ambari_server/serverUpgrade.py index c22ac7c..f9d65e9 100644 --- a/ambari-server/src/main/python/ambari_server/serverUpgrade.py +++ b/ambari-server/src/main/python/ambari_server/serverUpgrade.py @@ -37,7 +37,8 @@ from ambari_server.serverConfiguration import configDefaults, \ get_java_exe_path, get_stack_location, parse_properties_file, read_ambari_user, update_ambari_properties, \ update_database_name_property, get_admin_views_dir, get_views_dir,\ AMBARI_PROPERTIES_FILE, IS_LDAP_CONFIGURED, LDAP_PRIMARY_URL_PROPERTY, RESOURCES_DIR_PROPERTY, \ - SETUP_OR_UPGRADE_MSG, update_krb_jaas_login_properties, AMBARI_KRB_JAAS_LOGIN_FILE, get_db_type + SETUP_OR_UPGRADE_MSG, update_krb_jaas_login_properties, AMBARI_KRB_JAAS_LOGIN_FILE, get_db_type, update_ambari_env, \ + AMBARI_ENV_FILE from ambari_server.setupSecurity import adjust_directory_permissions, \ generate_env, ensure_can_start_under_current_user from ambari_server.utils import compare_versions @@ -292,6 +293,11 @@ def upgrade(args): err = AMBARI_PROPERTIES_FILE + ' file can\'t be updated. Exiting' raise FatalException(retcode, err) + retcode = update_ambari_env() + if not retcode == 0: + err = AMBARI_ENV_FILE + ' file can\'t be updated. Exiting' + raise FatalException(retcode, err) + retcode = update_krb_jaas_login_properties() if retcode == -2: pass # no changes done, let's be silent http://git-wip-us.apache.org/repos/asf/ambari/blob/7cf27fc4/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 cd90592..0a20e72 100644 --- a/ambari-server/src/test/python/TestAmbariServer.py +++ b/ambari-server/src/test/python/TestAmbariServer.py @@ -4880,7 +4880,8 @@ class TestAmbariServer(TestCase): @patch("ambari_server.serverUpgrade.upgrade_local_repo") @patch("ambari_server.serverUpgrade.move_user_custom_actions") @patch("ambari_server.serverUpgrade.update_krb_jaas_login_properties") - def test_upgrade_from_161(self, update_krb_jaas_login_properties_mock, move_user_custom_actions_mock, upgrade_local_repo_mock, get_ambari_properties_mock, + @patch("ambari_server.serverUpgrade.update_ambari_env") + def test_upgrade_from_161(self, update_ambari_env_mock, update_krb_jaas_login_properties_mock, move_user_custom_actions_mock, upgrade_local_repo_mock, get_ambari_properties_mock, get_ambari_properties_2_mock, get_ambari_properties_3_mock, get_ambari_version_mock, write_property_mock, is_root_mock, update_ambari_properties_mock, find_properties_file_mock, run_os_command_mock, run_schema_upgrade_mock, read_ambari_user_mock, print_warning_msg_mock, @@ -4925,6 +4926,7 @@ class TestAmbariServer(TestCase): is_root_mock.return_value = True update_ambari_properties_mock.return_value = 0 + update_ambari_env_mock.return_value = 0 get_ambari_version_mock.return_value = "1.7.0" move_user_custom_actions_mock.return_value = None update_krb_jaas_login_properties_mock.return_value = -2 @@ -5097,7 +5099,8 @@ class TestAmbariServer(TestCase): @patch("ambari_server.serverUpgrade.upgrade_local_repo") @patch("ambari_server.serverUpgrade.move_user_custom_actions") @patch("ambari_server.serverUpgrade.update_krb_jaas_login_properties") - def test_upgrade(self, update_krb_jaas_login_properties_mock, move_user_custom_actions, upgrade_local_repo_mock, + @patch("ambari_server.serverUpgrade.update_ambari_env") + def test_upgrade(self, update_ambari_env_mock, update_krb_jaas_login_properties_mock, move_user_custom_actions, upgrade_local_repo_mock, get_ambari_properties_mock, get_ambari_properties_2_mock, get_ambari_properties_3_mock, is_root_mock, get_ambari_version_mock, get_ambari_version_2_mock, parse_properties_file_mock, @@ -5132,6 +5135,7 @@ class TestAmbariServer(TestCase): get_ambari_properties_3_mock.return_value = get_ambari_properties_2_mock.return_value = \ get_ambari_properties_mock.return_value = properties update_ambari_properties_mock.return_value = 0 + update_ambari_env_mock.return_value = 0 run_schema_upgrade_mock.return_value = 0 isfile_mock.return_value = False get_ambari_version_2_mock.return_value = get_ambari_version_mock.return_value = CURR_AMBARI_VERSION