diff --git a/docker/api/container.py b/docker/api/container.py index d1b870f9c2..f2b22d44bb 100644 --- a/docker/api/container.py +++ b/docker/api/container.py @@ -775,7 +775,7 @@ def get_archive(self, container, path, chunk_size=DEFAULT_DATA_CHUNK_SIZE, ) @utils.check_resource('container') - def inspect_container(self, container): + def inspect_container(self, container, size=False): """ Identical to the `docker inspect` command, but only for containers. @@ -790,8 +790,9 @@ def inspect_container(self, container): :py:class:`docker.errors.APIError` If the server returns an error. """ + params = {"size": "true" if size else "false"} return self._result( - self._get(self._url("/containers/{0}/json", container)), True + self._get(self._url("/containers/{0}/json", container), params=params), True ) @utils.check_resource('container') diff --git a/tests/unit/api_container_test.py b/tests/unit/api_container_test.py index b2e5237a2a..d5d8e84505 100644 --- a/tests/unit/api_container_test.py +++ b/tests/unit/api_container_test.py @@ -1517,7 +1517,18 @@ def test_inspect_container(self): fake_request.assert_called_with( 'GET', url_prefix + 'containers/' + fake_api.FAKE_CONTAINER_ID + '/json', - timeout=DEFAULT_TIMEOUT_SECONDS + timeout=DEFAULT_TIMEOUT_SECONDS, + params={'size': 'false'} + ) + + def test_inspect_container_with_size(self): + self.client.inspect_container(fake_api.FAKE_CONTAINER_ID, size=True) + + fake_request.assert_called_with( + 'GET', + url_prefix + 'containers/' + fake_api.FAKE_CONTAINER_ID + '/json', + timeout=DEFAULT_TIMEOUT_SECONDS, + params={'size': 'true'} ) def test_inspect_container_undefined_id(self): diff --git a/tests/unit/fake_api.py b/tests/unit/fake_api.py index 03e53cc648..a6e11eb619 100644 --- a/tests/unit/fake_api.py +++ b/tests/unit/fake_api.py @@ -143,7 +143,7 @@ def post_fake_create_container(): return status_code, response -def get_fake_inspect_container(tty=False): +def get_fake_inspect_container(tty=False, size=False): status_code = 200 response = { 'Id': FAKE_CONTAINER_ID, @@ -167,6 +167,11 @@ def get_fake_inspect_container(tty=False): }, "MacAddress": "02:42:ac:11:00:0a" } + if size: + response.update({ + "SizeRw": 50178, + "SizeRootFs": 152129365 + }) return status_code, response