AMBARI-18741: Not able to change the default port ambari server listens to (Anita Jebaraj via dili)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/352fe851 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/352fe851 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/352fe851 Branch: refs/heads/branch-feature-AMBARI-18634 Commit: 352fe85181d81cf23f82953f05bc66a7c88d639b Parents: 79de029 Author: Di Li <[email protected]> Authored: Tue Nov 8 11:05:26 2016 -0500 Committer: Di Li <[email protected]> Committed: Tue Nov 8 11:05:26 2016 -0500 ---------------------------------------------------------------------- .../python/ambari_server/serverConfiguration.py | 13 +++++++++++++ .../src/main/python/ambari_server/utils.py | 9 ++------- ambari-server/src/test/python/TestUtils.py | 17 +++++++++++++---- 3 files changed, 28 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/352fe851/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 766f4cc..04509cf 100644 --- a/ambari-server/src/main/python/ambari_server/serverConfiguration.py +++ b/ambari-server/src/main/python/ambari_server/serverConfiguration.py @@ -685,6 +685,19 @@ def get_master_key_location(properties): keyLocation = properties[SECURITY_KEYS_DIR] return keyLocation +def get_ambari_server_ui_port(properties): + ambari_server_ui_port = CLIENT_API_PORT + client_api_port = properties.get_property(CLIENT_API_PORT_PROPERTY) + if client_api_port: + ambari_server_ui_port = client_api_port + api_ssl = properties.get_property(SSL_API) + if api_ssl and str(api_ssl).lower() == "true": + ambari_server_ui_port = DEFAULT_SSL_API_PORT + ssl_api_port = properties.get_property(SSL_API_PORT) + if ssl_api_port: + ambari_server_ui_port = ssl_api_port + return ambari_server_ui_port + # Copy file to /tmp and save with file.# (largest # is latest file) def backup_file_in_temp(filePath): if filePath is not None: http://git-wip-us.apache.org/repos/asf/ambari/blob/352fe851/ambari-server/src/main/python/ambari_server/utils.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/python/ambari_server/utils.py b/ambari-server/src/main/python/ambari_server/utils.py index 757c333..1ff8d1e 100644 --- a/ambari-server/src/main/python/ambari_server/utils.py +++ b/ambari-server/src/main/python/ambari_server/utils.py @@ -150,13 +150,8 @@ def wait_for_pid(pids, server_init_timeout, occupy_port_timeout, init_web_ui_tim """ Check pid for existence during timeout """ - ambari_server_ui_port = 8080 - api_ssl = properties.get_property("api.ssl") - ssl_api_port = properties.get_property("client.api.ssl.port") - if api_ssl and str(api_ssl).lower() == "true": - if ssl_api_port: - ambari_server_ui_port = int(ssl_api_port) - + from ambari_server.serverConfiguration import get_ambari_server_ui_port + ambari_server_ui_port = int(get_ambari_server_ui_port(properties)) server_ui_port_occupied = False tstart = time.time() pid_live = 0 http://git-wip-us.apache.org/repos/asf/ambari/blob/352fe851/ambari-server/src/test/python/TestUtils.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/TestUtils.py b/ambari-server/src/test/python/TestUtils.py index 367b7fe..bedd75c 100644 --- a/ambari-server/src/test/python/TestUtils.py +++ b/ambari-server/src/test/python/TestUtils.py @@ -123,15 +123,18 @@ class TestUtils(TestCase): @patch('time.time') @patch.object(utils, 'pid_exists') @patch('time.sleep') - @patch("ambari_server.serverConfiguration.get_ambari_properties") @patch("socket.socket") @patch('__builtin__.open') - def test_wait_for_pid(self, open_mock, socket_mock, get_properties_mock, sleep_mock, pid_exists_mock, time_mock): + def test_wait_for_pid(self, open_mock, socket_mock, sleep_mock, pid_exists_mock, time_mock): + from ambari_server.serverConfiguration import SSL_API, CLIENT_API_PORT_PROPERTY pid_exists_mock.return_value = True time_mock.side_effect = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51] s = socket_mock.return_value s.connect = MagicMock() - + properties = FakeProperties({ + SSL_API: "false", + CLIENT_API_PORT_PROPERTY: "8080" + }) out = StringIO.StringIO() sys.stdout = out live_pids = utils.wait_for_pid([ @@ -143,7 +146,7 @@ class TestUtils(TestCase): "exe": "", "cmd": "" }, - ], 5, 40, 10, '', '', get_properties_mock) + ], 5, 40, 10, '', '', properties) self.assertEqual(".\nServer started listening on 8080\n\nDB configs consistency check: no errors and warnings were " "found.\nWaiting for 10 seconds, for server WEB UI initialization\n........", out.getvalue()) sys.stdout = sys.__stdout__ @@ -249,3 +252,9 @@ class TestUtils(TestCase): self.assertEquals(utils.compare_versions("2.0.0_1","2.0.0_2"),0) self.assertEquals(utils.compare_versions("2.0.0-abc","2.0.0_abc"),0) +class FakeProperties(object): + def __init__(self, prop_map): + self.prop_map = prop_map + + def get_property(self, prop_name): + return self.prop_map[prop_name] \ No newline at end of file
