mirror of https://github.com/docker/compose.git
Fix timeout value in error message
Signed-off-by: Aanand Prasad <aanand.prasad@gmail.com>
This commit is contained in:
parent
f9c5816ab8
commit
b72f911ccf
|
@ -13,7 +13,6 @@ from requests.exceptions import SSLError
|
||||||
from requests.packages.urllib3.exceptions import ReadTimeoutError
|
from requests.packages.urllib3.exceptions import ReadTimeoutError
|
||||||
|
|
||||||
from ..const import API_VERSION_TO_ENGINE_VERSION
|
from ..const import API_VERSION_TO_ENGINE_VERSION
|
||||||
from ..const import HTTP_TIMEOUT
|
|
||||||
from .utils import call_silently
|
from .utils import call_silently
|
||||||
from .utils import is_mac
|
from .utils import is_mac
|
||||||
from .utils import is_ubuntu
|
from .utils import is_ubuntu
|
||||||
|
@ -46,7 +45,7 @@ def handle_connection_errors(client):
|
||||||
raise ConnectionError()
|
raise ConnectionError()
|
||||||
except RequestsConnectionError as e:
|
except RequestsConnectionError as e:
|
||||||
if e.args and isinstance(e.args[0], ReadTimeoutError):
|
if e.args and isinstance(e.args[0], ReadTimeoutError):
|
||||||
log_timeout_error()
|
log_timeout_error(client.timeout)
|
||||||
raise ConnectionError()
|
raise ConnectionError()
|
||||||
|
|
||||||
if call_silently(['which', 'docker']) != 0:
|
if call_silently(['which', 'docker']) != 0:
|
||||||
|
@ -66,13 +65,13 @@ def handle_connection_errors(client):
|
||||||
raise ConnectionError()
|
raise ConnectionError()
|
||||||
|
|
||||||
|
|
||||||
def log_timeout_error():
|
def log_timeout_error(timeout):
|
||||||
log.error(
|
log.error(
|
||||||
"An HTTP request took too long to complete. Retry with --verbose to "
|
"An HTTP request took too long to complete. Retry with --verbose to "
|
||||||
"obtain debug information.\n"
|
"obtain debug information.\n"
|
||||||
"If you encounter this issue regularly because of slow network "
|
"If you encounter this issue regularly because of slow network "
|
||||||
"conditions, consider setting COMPOSE_HTTP_TIMEOUT to a higher "
|
"conditions, consider setting COMPOSE_HTTP_TIMEOUT to a higher "
|
||||||
"value (current value: %s)." % HTTP_TIMEOUT)
|
"value (current value: %s)." % timeout)
|
||||||
|
|
||||||
|
|
||||||
def log_api_error(e, client_version):
|
def log_api_error(e, client_version):
|
||||||
|
|
|
@ -6,6 +6,7 @@ import os
|
||||||
import docker
|
import docker
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
|
from compose.cli import errors
|
||||||
from compose.cli.docker_client import docker_client
|
from compose.cli.docker_client import docker_client
|
||||||
from compose.cli.docker_client import tls_config_from_options
|
from compose.cli.docker_client import tls_config_from_options
|
||||||
from tests import mock
|
from tests import mock
|
||||||
|
@ -19,11 +20,25 @@ class DockerClientTestCase(unittest.TestCase):
|
||||||
del os.environ['HOME']
|
del os.environ['HOME']
|
||||||
docker_client(os.environ)
|
docker_client(os.environ)
|
||||||
|
|
||||||
|
@mock.patch.dict(os.environ)
|
||||||
def test_docker_client_with_custom_timeout(self):
|
def test_docker_client_with_custom_timeout(self):
|
||||||
timeout = 300
|
os.environ['COMPOSE_HTTP_TIMEOUT'] = '123'
|
||||||
with mock.patch('compose.cli.docker_client.HTTP_TIMEOUT', 300):
|
|
||||||
client = docker_client(os.environ)
|
client = docker_client(os.environ)
|
||||||
self.assertEqual(client.timeout, int(timeout))
|
assert client.timeout == 123
|
||||||
|
|
||||||
|
@mock.patch.dict(os.environ)
|
||||||
|
def test_custom_timeout_error(self):
|
||||||
|
os.environ['COMPOSE_HTTP_TIMEOUT'] = '123'
|
||||||
|
client = docker_client(os.environ)
|
||||||
|
|
||||||
|
with mock.patch('compose.cli.errors.log') as fake_log:
|
||||||
|
with pytest.raises(errors.ConnectionError):
|
||||||
|
with errors.handle_connection_errors(client):
|
||||||
|
raise errors.RequestsConnectionError(
|
||||||
|
errors.ReadTimeoutError(None, None, None))
|
||||||
|
|
||||||
|
assert fake_log.error.call_count == 1
|
||||||
|
assert '123' in fake_log.error.call_args[0][0]
|
||||||
|
|
||||||
|
|
||||||
class TLSConfigTestCase(unittest.TestCase):
|
class TLSConfigTestCase(unittest.TestCase):
|
||||||
|
|
Loading…
Reference in New Issue