Address missing core.dcos_url when mesos_master_url is provided (#640)

This commit is contained in:
Stephen Won
2016-06-02 15:54:36 -07:00
committed by tamarrow
parent 86d649e7fe
commit 31909db7de
2 changed files with 13 additions and 15 deletions

View File

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

View File

@@ -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