From 31909db7de9a82d615ebae230d97996a27d55e4a Mon Sep 17 00:00:00 2001 From: Stephen Won Date: Thu, 2 Jun 2016 15:54:36 -0700 Subject: [PATCH] Address missing core.dcos_url when mesos_master_url is provided (#640) --- cli/tests/unit/test_task.py | 5 ++++- dcos/mesos.py | 23 +++++++++-------------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/cli/tests/unit/test_task.py b/cli/tests/unit/test_task.py index 6b9be81..a03b50d 100644 --- a/cli/tests/unit/test_task.py +++ b/cli/tests/unit/test_task.py @@ -9,7 +9,10 @@ from mock import MagicMock, patch from .common import assert_mock -def test_log_master_unavailable(): +@patch('dcos.util.get_config') +def test_log_master_unavailable(config_mock): + config_mock.return_value = {'core.dcos_url': 'foo'} + """ Test master's state.json being unavailable """ client = mesos.DCOSClient() client.get_master_state = _mock_exception() diff --git a/dcos/mesos.py b/dcos/mesos.py index f7a07c6..2f6ed54 100644 --- a/dcos/mesos.py +++ b/dcos/mesos.py @@ -30,14 +30,11 @@ class DCOSClient(object): def __init__(self): config = util.get_config() - self._dcos_url = None - self._mesos_master_url = None - mesos_master_url = config.get('core.mesos_master_url') - if mesos_master_url is None: - self._dcos_url = util.get_config_vals(['core.dcos_url'], config)[0] - else: - self._mesos_master_url = mesos_master_url + self._dcos_url = config.get("core.dcos_url") + if self._dcos_url is None: + raise util.missing_config_exception(['core.dcos_url']) + self._mesos_master_url = config.get('core.mesos_master_url') self._timeout = config.get('core.timeout') @@ -49,10 +46,8 @@ class DCOSClient(object): :returns: DCOS URL :rtype: str """ - if self._dcos_url: - return urllib.parse.urljoin(self._dcos_url, path) - else: - raise util.missing_config_exception('core.dcos_url') + + return urllib.parse.urljoin(self._dcos_url, path) def master_url(self, path): """ Create a master URL @@ -83,11 +78,11 @@ class DCOSClient(object): """ - if self._dcos_url: + if self._mesos_master_url: + return urllib.parse.urljoin(private_url, path) + else: return urllib.parse.urljoin(self._dcos_url, 'slave/{}/{}'.format(slave_id, path)) - else: - return urllib.parse.urljoin(private_url, path) def get_master_state(self): """Get the Mesos master state json object