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()