From da028d88a2f133d038fa4a651318b60bed770ba5 Mon Sep 17 00:00:00 2001 From: Joffrey F Date: Wed, 25 Apr 2018 14:36:41 -0700 Subject: [PATCH] Total timeout should be HTTP timeout + operation timeout Signed-off-by: Joffrey F --- docker/api/container.py | 12 ++++++------ tests/integration/api_container_test.py | 2 +- tests/unit/api_container_test.py | 8 ++++---- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/docker/api/container.py b/docker/api/container.py index 144a6d90..4a49bab8 100644 --- a/docker/api/container.py +++ b/docker/api/container.py @@ -1018,10 +1018,9 @@ class ContainerApiMixin(object): """ params = {'t': timeout} url = self._url("/containers/{0}/restart", container) - conn_timeout = self.timeout - if conn_timeout: - conn_timeout = max(conn_timeout, timeout+15) - res = self._post(url, params=params, timeout=conn_timeout) + res = self._post( + url, params=params, timeout=timeout + (self.timeout or 0) + ) self._raise_for_status(res) @utils.check_resource('container') @@ -1113,8 +1112,9 @@ class ContainerApiMixin(object): conn_timeout = self.timeout if conn_timeout: conn_timeout = max(conn_timeout, timeout + 15) - res = self._post(url, params=params, - timeout=conn_timeout) + res = self._post( + url, params=params, timeout=timeout + (self.timeout or 0) + ) self._raise_for_status(res) @utils.check_resource('container') diff --git a/tests/integration/api_container_test.py b/tests/integration/api_container_test.py index 3d985a45..da9b3ec6 100644 --- a/tests/integration/api_container_test.py +++ b/tests/integration/api_container_test.py @@ -1165,7 +1165,7 @@ class RestartContainerTest(BaseAPIIntegrationTest): assert info2['State']['Running'] is True self.client.kill(id) - def test_restart_with_hight_timeout(self): + def test_restart_with_high_timeout(self): container = self.client.create_container(BUSYBOX, ['sleep', '9999']) id = container['Id'] self.client.start(id) diff --git a/tests/unit/api_container_test.py b/tests/unit/api_container_test.py index 1aed9677..a7e183c8 100644 --- a/tests/unit/api_container_test.py +++ b/tests/unit/api_container_test.py @@ -1264,7 +1264,7 @@ class ContainerTest(BaseAPIClientTest): 'POST', url_prefix + 'containers/3cc2351ab11b/stop', params={'t': timeout}, - timeout=(DEFAULT_TIMEOUT_SECONDS) + timeout=(DEFAULT_TIMEOUT_SECONDS + timeout) ) def test_stop_container_with_dict_instead_of_id(self): @@ -1277,7 +1277,7 @@ class ContainerTest(BaseAPIClientTest): 'POST', url_prefix + 'containers/3cc2351ab11b/stop', params={'t': timeout}, - timeout=(DEFAULT_TIMEOUT_SECONDS) + timeout=(DEFAULT_TIMEOUT_SECONDS + timeout) ) def test_pause_container(self): @@ -1335,7 +1335,7 @@ class ContainerTest(BaseAPIClientTest): 'POST', url_prefix + 'containers/3cc2351ab11b/restart', params={'t': 2}, - timeout=DEFAULT_TIMEOUT_SECONDS + timeout=(DEFAULT_TIMEOUT_SECONDS + 2) ) def test_restart_container_with_dict_instead_of_id(self): @@ -1345,7 +1345,7 @@ class ContainerTest(BaseAPIClientTest): 'POST', url_prefix + 'containers/3cc2351ab11b/restart', params={'t': 2}, - timeout=DEFAULT_TIMEOUT_SECONDS + timeout=(DEFAULT_TIMEOUT_SECONDS + 2) ) def test_remove_container(self):