You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by nc...@apache.org on 2015/12/06 14:01:31 UTC

ambari git commit: AMBARI-14223. Manual Upgrade from 2.2 to 2.3 failing while setting stack version in Ambari (ncole)

Repository: ambari
Updated Branches:
  refs/heads/trunk 10c514427 -> db63c2b4f


AMBARI-14223. Manual Upgrade from 2.2 to 2.3 failing while setting stack version in Ambari (ncole)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/db63c2b4
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/db63c2b4
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/db63c2b4

Branch: refs/heads/trunk
Commit: db63c2b4feb4c08cc434032b2089bc6716a69de0
Parents: 10c5144
Author: Nate Cole <nc...@hortonworks.com>
Authored: Fri Dec 4 16:57:22 2015 -0500
Committer: Nate Cole <nc...@hortonworks.com>
Committed: Sun Dec 6 07:58:41 2015 -0500

----------------------------------------------------------------------
 .../main/python/ambari_server/serverUpgrade.py  | 17 +++++++--
 .../src/test/python/TestAmbariServer.py         | 26 --------------
 .../src/test/python/TestServerUpgrade.py        | 37 +++++++++++++++++++-
 3 files changed, 50 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/db63c2b4/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 293a480..b51a623 100644
--- a/ambari-server/src/main/python/ambari_server/serverUpgrade.py
+++ b/ambari-server/src/main/python/ambari_server/serverUpgrade.py
@@ -26,12 +26,13 @@ import base64
 import urllib2
 import re
 import glob
+import optparse
 
 from ambari_commons.exceptions import FatalException
 from ambari_commons.logging_utils import print_info_msg, print_warning_msg, print_error_msg, get_verbose
 from ambari_commons.os_utils import is_root, run_os_command
 from ambari_server.dbConfiguration import DBMSConfigFactory, check_jdbc_drivers, \
-  get_jdbc_driver_path, ensure_jdbc_driver_is_installed
+  get_jdbc_driver_path, ensure_jdbc_driver_is_installed, LINUX_DBMS_KEYS_LIST
 from ambari_server.properties import Properties
 from ambari_server.serverConfiguration import configDefaults, \
   check_database_name_property, get_ambari_properties, get_ambari_version, \
@@ -39,7 +40,7 @@ from ambari_server.serverConfiguration import configDefaults, \
   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, update_ambari_env, \
-  AMBARI_ENV_FILE
+  AMBARI_ENV_FILE, JDBC_DATABASE_PROPERTY
 from ambari_server.setupSecurity import adjust_directory_permissions, \
   generate_env, ensure_can_start_under_current_user
 from ambari_server.utils import compare_versions
@@ -68,6 +69,7 @@ def upgrade_stack(args):
     err = 'Ambari-server upgradestack should be run with ' \
           'root-level privileges'
     raise FatalException(4, err)
+
   check_database_name_property()
 
   try:
@@ -86,8 +88,17 @@ def upgrade_stack(args):
   except IndexError:
     repo_url_os = None
 
+  parser = optparse.OptionParser()
+  parser.add_option("-d", type="int", dest="database_index")
+
+  db = get_ambari_properties()[JDBC_DATABASE_PROPERTY]
+
+  idx = LINUX_DBMS_KEYS_LIST.index(db)
+
+  (options, opt_args) = parser.parse_args(["-d {0}".format(idx)])
+
   stack_name, stack_version = stack_id.split(STACK_NAME_VER_SEP)
-  retcode = run_stack_upgrade(args, stack_name, stack_version, repo_url, repo_url_os)
+  retcode = run_stack_upgrade(options, stack_name, stack_version, repo_url, repo_url_os)
 
   if not retcode == 0:
     raise FatalException(retcode, 'Stack upgrade failed.')

http://git-wip-us.apache.org/repos/asf/ambari/blob/db63c2b4/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 0042714..16b46b1 100644
--- a/ambari-server/src/test/python/TestAmbariServer.py
+++ b/ambari-server/src/test/python/TestAmbariServer.py
@@ -4680,32 +4680,6 @@ class TestAmbariServer(TestCase):
     self.assertTrue(bkrestore_mock.called)
     pass
 
-  @patch("ambari_server.serverUpgrade.is_root")
-  @patch("ambari_server.serverUpgrade.check_database_name_property")
-  @patch("ambari_server.serverUpgrade.run_stack_upgrade")
-  def test_upgrade_stack(self, run_stack_upgrade_mock,
-                         check_database_name_property_mock, is_root_mock):
-    # Testing call under non-root
-    is_root_mock.return_value = False
-
-    args = ['', 'HDP-2.0']
-    try:
-      upgrade_stack(args)
-      self.fail("Should throw exception")
-    except FatalException as fe:
-      # Expected
-      self.assertTrue("root-level" in fe.reason)
-      pass
-
-    # Testing calls under root
-    is_root_mock.return_value = True
-    run_stack_upgrade_mock.return_value = 0
-    upgrade_stack(args)
-
-    self.assertTrue(run_stack_upgrade_mock.called)
-    run_stack_upgrade_mock.assert_called_with(['', 'HDP-2.0'], "HDP", "2.0", None, None)
-    pass
-
   @patch("ambari_server.serverUpgrade.get_ambari_properties")
   @patch("os.listdir")
   @patch("os.path.isfile")

http://git-wip-us.apache.org/repos/asf/ambari/blob/db63c2b4/ambari-server/src/test/python/TestServerUpgrade.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/TestServerUpgrade.py b/ambari-server/src/test/python/TestServerUpgrade.py
index 027830d..f728669 100644
--- a/ambari-server/src/test/python/TestServerUpgrade.py
+++ b/ambari-server/src/test/python/TestServerUpgrade.py
@@ -21,7 +21,8 @@ import sys
 from ambari_commons.exceptions import FatalException
 from unittest import TestCase
 from mock.mock import patch, MagicMock
-from ambari_server.serverUpgrade import set_current, SetCurrentVersionOptions
+from ambari_server.serverUpgrade import set_current, SetCurrentVersionOptions, upgrade_stack
+import ambari_server
 
 
 class TestServerUpgrade(TestCase):
@@ -134,6 +135,40 @@ class TestServerUpgrade(TestCase):
     self.assertEquals(request.origin_req_host, '127.0.0.1')
     self.assertEquals(request.headers, {'X-requested-by': 'ambari', 'Authorization': 'Basic ZHVtbXlfc3RyaW5nOmR1bW15X3N0cmluZw=='})
 
+  @patch("ambari_server.serverUpgrade.run_os_command")
+  @patch("ambari_server.serverUpgrade.get_java_exe_path")
+  @patch("ambari_server.serverConfiguration.get_ambari_properties")
+  @patch("ambari_server.serverUpgrade.get_ambari_properties")
+  @patch("ambari_server.serverUpgrade.check_database_name_property")
+  @patch("ambari_server.serverUpgrade.is_root")
+  def test_upgrade_stack(self, is_root_mock, c_d_n_p_mock, up_g_a_p_mock, server_g_a_p_mock, java_path_mock, run_os_mock):
+
+    run_os_mock.return_value = 0, "", ""
+
+    java_path_mock.return_value = ""
+
+    is_root_mock.return_value = True
+
+    def do_nothing():
+      pass
+    c_d_n_p_mock.side_effect = do_nothing
+
+    p = ambari_server.properties.Properties()
+    p._props = {
+      ambari_server.serverConfiguration.JDBC_DATABASE_PROPERTY: "mysql",
+      ambari_server.serverConfiguration.JDBC_DATABASE_NAME_PROPERTY: "ambari"
+    }
+
+    up_g_a_p_mock.side_effect = [p, p]
+    server_g_a_p_mock.side_effect = [p]
+
+    args = ["upgrade_stack", "HDP-2.3"]
+    upgrade_stack(args)
+
+    self.assertTrue(run_os_mock.called)
+    command = run_os_mock.call_args_list[0][0][0]
+    self.assertTrue("StackUpgradeHelper" in command and "HDP" in command and "2.3" in command)
+
   def testCurrentVersionOptions(self):
     # Negative test cases
     options = MagicMock()