diff options
author | Matthieu Nottale <matthieu.nottale@docker.com> | 2018-03-13 15:31:36 +0100 |
---|---|---|
committer | Joffrey F <f.joffrey@gmail.com> | 2018-04-25 17:55:16 -0700 |
commit | 1848d2c9492a7d97d1eec6baa95d7678d8d6a382 (patch) | |
tree | f20b500758c0cc73fc0e9494c9036d3228296e91 | |
parent | c0c46a3d14b6dc0980bb235eb1c4089f7bcbe5ce (diff) | |
download | docker-py-1848d2c9492a7d97d1eec6baa95d7678d8d6a382.tar.gz |
stop(), restart(): Adjust request timeout.
Signed-off-by: Matthieu Nottale <matthieu.nottale@docker.com>
-rw-r--r-- | docker/api/container.py | 11 | ||||
-rw-r--r-- | tests/integration/api_container_test.py | 11 | ||||
-rw-r--r-- | tests/unit/api_container_test.py | 4 |
3 files changed, 21 insertions, 5 deletions
diff --git a/docker/api/container.py b/docker/api/container.py index cb97b79..144a6d9 100644 --- a/docker/api/container.py +++ b/docker/api/container.py @@ -1018,7 +1018,10 @@ class ContainerApiMixin(object): """ params = {'t': timeout} url = self._url("/containers/{0}/restart", container) - res = self._post(url, params=params) + conn_timeout = self.timeout + if conn_timeout: + conn_timeout = max(conn_timeout, timeout+15) + res = self._post(url, params=params, timeout=conn_timeout) self._raise_for_status(res) @utils.check_resource('container') @@ -1107,9 +1110,11 @@ class ContainerApiMixin(object): else: params = {'t': timeout} url = self._url("/containers/{0}/stop", container) - + conn_timeout = self.timeout + if conn_timeout: + conn_timeout = max(conn_timeout, timeout + 15) res = self._post(url, params=params, - timeout=(timeout + (self.timeout or 0))) + timeout=conn_timeout) 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 e212518..3d985a4 100644 --- a/tests/integration/api_container_test.py +++ b/tests/integration/api_container_test.py @@ -1165,6 +1165,17 @@ class RestartContainerTest(BaseAPIIntegrationTest): assert info2['State']['Running'] is True self.client.kill(id) + def test_restart_with_hight_timeout(self): + container = self.client.create_container(BUSYBOX, ['sleep', '9999']) + id = container['Id'] + self.client.start(id) + self.client.timeout = 1 + self.client.restart(id, timeout=3) + self.client.timeout = None + self.client.restart(id, timeout=3) + self.client.timeout = 1 + self.client.stop(id, timeout=3) + def test_restart_with_dict_instead_of_id(self): container = self.client.create_container(BUSYBOX, ['sleep', '9999']) assert 'Id' in container diff --git a/tests/unit/api_container_test.py b/tests/unit/api_container_test.py index c33f129..1aed967 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) + timeout=(DEFAULT_TIMEOUT_SECONDS) ) 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) + timeout=(DEFAULT_TIMEOUT_SECONDS) ) def test_pause_container(self): |