You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by dm...@apache.org on 2015/08/17 17:53:13 UTC

[2/2] ambari git commit: AMBARI-12790. Handle ambari-env.sh file like ambari.properties (dlysnichenko)

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 <dl...@hortonworks.com>
Authored: Mon Aug 17 18:54:05 2015 +0300
Committer: Lisnichenko Dmitro <dl...@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