Repository: ambari Updated Branches: refs/heads/trunk 3a05d2ca1 -> 9434e18be
AMBARI-6958. If postgres user cannot login, the upgrade fails (dlysnichenko) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/9434e18b Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/9434e18b Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/9434e18b Branch: refs/heads/trunk Commit: 9434e18beea56f82a1c2c6d7220b714923e7c2c4 Parents: 3a05d2c Author: Lisnichenko Dmitro <dlysniche...@hortonworks.com> Authored: Wed Aug 20 23:26:23 2014 +0300 Committer: Lisnichenko Dmitro <dlysniche...@hortonworks.com> Committed: Thu Aug 21 13:51:27 2014 +0300 ---------------------------------------------------------------------- ambari-server/src/main/python/ambari-server.py | 13 ++++-- .../src/test/python/TestAmbariServer.py | 43 ++++++++++++++++++++ 2 files changed, 52 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/9434e18b/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 bb9870b..23c8444 100755 --- a/ambari-server/src/main/python/ambari-server.py +++ b/ambari-server/src/main/python/ambari-server.py @@ -2632,7 +2632,14 @@ def change_objects_owner(args): command = CHANGE_OWNER_COMMAND[:] command[-1] = command[-1].format(database_name, 'ambari', new_owner) - return run_os_command(command) + retcode, stdout, stderr = run_os_command(command) + if not retcode == 0: + if VERBOSE: + if stdout: + print_error_msg(stdout.strip()) + if stderr: + print_error_msg(stderr.strip()) + raise FatalException(20, 'Unable to change owner of database objects') def compare_versions(version1, version2): @@ -2737,9 +2744,7 @@ def upgrade(args): parse_properties_file(args) #TODO check database version if args.persistence_type == 'local': - retcode, stdout, stderr = change_objects_owner(args) - if not retcode == 0: - raise FatalException(20, 'Unable to change owner of database objects') + change_objects_owner(args) retcode = run_schema_upgrade() if not retcode == 0: http://git-wip-us.apache.org/repos/asf/ambari/blob/9434e18b/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 ad80b1e..cd81a7e 100644 --- a/ambari-server/src/test/python/TestAmbariServer.py +++ b/ambari-server/src/test/python/TestAmbariServer.py @@ -5107,3 +5107,46 @@ MIIFHjCCAwYCCQDpHKOBI+Lt0zANBgkqhkiG9w0BAQUFADBRMQswCQYDVQQGEwJV self.assertTrue(perform_housekeeping_mock.called) + @patch.object(ambari_server, "run_os_command") + @patch.object(ambari_server, "print_error_msg") + def test_change_objects_owner_both(self, + print_error_msg_mock, + run_os_command_mock): + args = MagicMock() + stdout = " stdout " + stderr = " stderr " + run_os_command_mock.return_value = 1, stdout, stderr + + ambari_server.VERBOSE = True + self.assertRaises(FatalException, ambari_server.change_objects_owner, args) + print_error_msg_mock.assert_any_call("stderr") + print_error_msg_mock.assert_any_call("stdout") + + @patch.object(ambari_server, "run_os_command") + @patch.object(ambari_server, "print_error_msg") + def test_change_objects_owner_only_stdout(self, + print_error_msg_mock, + run_os_command_mock): + args = MagicMock() + stdout = " stdout " + stderr = "" + run_os_command_mock.return_value = 1, stdout, stderr + + ambari_server.VERBOSE = True + self.assertRaises(FatalException, ambari_server.change_objects_owner, args) + print_error_msg_mock.assert_called_once_with("stdout") + + @patch.object(ambari_server, "run_os_command") + @patch.object(ambari_server, "print_error_msg") + def test_change_objects_owner_only_stderr(self, + print_error_msg_mock, + run_os_command_mock): + args = MagicMock() + stdout = "" + stderr = " stderr " + run_os_command_mock.return_value = 1, stdout, stderr + + ambari_server.VERBOSE = True + self.assertRaises(FatalException, ambari_server.change_objects_owner, args) + print_error_msg_mock.assert_called_once_with("stderr") +