summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoffrey F <joffrey@docker.com>2018-04-25 16:30:24 -0700
committerJoffrey F <joffrey@docker.com>2018-04-25 16:30:24 -0700
commit827bd98d074d3a60882fc21886912d5b84d17f3b (patch)
tree07d7e7a14228eac9229f17eaa7a987cbe7b9d31d
parentc6c45d9c455f975163a9a3197511e2f9ef9d28ab (diff)
parentae8f77737c164d2474681f839c43f51400b9e119 (diff)
downloaddocker-py-827bd98d074d3a60882fc21886912d5b84d17f3b.tar.gz
Merge branch 'master' of github.com:docker/docker-py
-rw-r--r--docker/api/config.py8
-rw-r--r--docker/api/container.py12
-rw-r--r--tests/integration/api_container_test.py9
-rw-r--r--tests/unit/api_container_test.py4
4 files changed, 23 insertions, 10 deletions
diff --git a/docker/api/config.py b/docker/api/config.py
index b46b09c..767bef2 100644
--- a/docker/api/config.py
+++ b/docker/api/config.py
@@ -6,7 +6,7 @@ from .. import utils
class ConfigApiMixin(object):
- @utils.minimum_version('1.25')
+ @utils.minimum_version('1.30')
def create_config(self, name, data, labels=None):
"""
Create a config
@@ -35,7 +35,7 @@ class ConfigApiMixin(object):
self._post_json(url, data=body), True
)
- @utils.minimum_version('1.25')
+ @utils.minimum_version('1.30')
@utils.check_resource('id')
def inspect_config(self, id):
"""
@@ -53,7 +53,7 @@ class ConfigApiMixin(object):
url = self._url('/configs/{0}', id)
return self._result(self._get(url), True)
- @utils.minimum_version('1.25')
+ @utils.minimum_version('1.30')
@utils.check_resource('id')
def remove_config(self, id):
"""
@@ -73,7 +73,7 @@ class ConfigApiMixin(object):
self._raise_for_status(res)
return True
- @utils.minimum_version('1.25')
+ @utils.minimum_version('1.30')
def configs(self, filters=None):
"""
List configs
diff --git a/docker/api/container.py b/docker/api/container.py
index cb97b79..05676f1 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 is not None:
+ conn_timeout += timeout
+ res = self._post(url, params=params, timeout=conn_timeout)
self._raise_for_status(res)
@utils.check_resource('container')
@@ -1107,9 +1110,10 @@ class ContainerApiMixin(object):
else:
params = {'t': timeout}
url = self._url("/containers/{0}/stop", container)
-
- res = self._post(url, params=params,
- timeout=(timeout + (self.timeout or 0)))
+ conn_timeout = self.timeout
+ if conn_timeout is not None:
+ conn_timeout += timeout
+ res = self._post(url, params=params, 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..afd439f 100644
--- a/tests/integration/api_container_test.py
+++ b/tests/integration/api_container_test.py
@@ -1165,6 +1165,15 @@ class RestartContainerTest(BaseAPIIntegrationTest):
assert info2['State']['Running'] is True
self.client.kill(id)
+ def test_restart_with_low_timeout(self):
+ container = self.client.create_container(BUSYBOX, ['sleep', '9999'])
+ self.client.start(container)
+ self.client.timeout = 1
+ self.client.restart(container, timeout=3)
+ self.client.timeout = None
+ self.client.restart(container, timeout=3)
+ self.client.kill(container)
+
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..a7e183c 100644
--- a/tests/unit/api_container_test.py
+++ b/tests/unit/api_container_test.py
@@ -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):