mirror of https://github.com/docker/docker-py.git
Add optional parameters for pruning build cache.
Signed-off-by: Steve Swor <sworisbreathing@users.noreply.github.com>
This commit is contained in:
parent
18fdc23b7c
commit
37e930f4d0
|
@ -275,10 +275,16 @@ class BuildApiMixin(object):
|
||||||
return self._stream_helper(response, decode=decode)
|
return self._stream_helper(response, decode=decode)
|
||||||
|
|
||||||
@utils.minimum_version('1.31')
|
@utils.minimum_version('1.31')
|
||||||
def prune_builds(self):
|
def prune_builds(self, prune_all=False, keep_storage=None, filters=None):
|
||||||
"""
|
"""
|
||||||
Delete the builder cache
|
Delete the builder cache
|
||||||
|
|
||||||
|
Args:
|
||||||
|
prune_all (bool): Remove all unused build cache, not just dangling
|
||||||
|
ones.
|
||||||
|
keep_storage (int): Amount of disk space to keep for cache.
|
||||||
|
filters (dict): Filters to process on the prune list.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
(dict): A dictionary containing information about the operation's
|
(dict): A dictionary containing information about the operation's
|
||||||
result. The ``SpaceReclaimed`` key indicates the amount of
|
result. The ``SpaceReclaimed`` key indicates the amount of
|
||||||
|
@ -288,8 +294,13 @@ class BuildApiMixin(object):
|
||||||
:py:class:`docker.errors.APIError`
|
:py:class:`docker.errors.APIError`
|
||||||
If the server returns an error.
|
If the server returns an error.
|
||||||
"""
|
"""
|
||||||
|
params = {'all': prune_all}
|
||||||
|
if keep_storage is not None:
|
||||||
|
params['keep-storage'] = keep_storage
|
||||||
|
if filters is not None:
|
||||||
|
params['filters'] = utils.convert_filters(filters)
|
||||||
url = self._url("/build/prune")
|
url = self._url("/build/prune")
|
||||||
return self._result(self._post(url), True)
|
return self._result(self._post(url, params=params), True)
|
||||||
|
|
||||||
def _set_auth_headers(self, headers):
|
def _set_auth_headers(self, headers):
|
||||||
log.debug('Looking for auth config')
|
log.debug('Looking for auth config')
|
||||||
|
|
|
@ -593,3 +593,20 @@ class BuildTest(BaseAPIIntegrationTest):
|
||||||
prune_result = self.client.prune_builds()
|
prune_result = self.client.prune_builds()
|
||||||
assert 'SpaceReclaimed' in prune_result
|
assert 'SpaceReclaimed' in prune_result
|
||||||
assert isinstance(prune_result['SpaceReclaimed'], int)
|
assert isinstance(prune_result['SpaceReclaimed'], int)
|
||||||
|
|
||||||
|
@requires_api_version('1.31')
|
||||||
|
@pytest.mark.xfail(
|
||||||
|
True,
|
||||||
|
reason='Currently fails on 18.09: '
|
||||||
|
'https://github.com/moby/moby/issues/37920'
|
||||||
|
)
|
||||||
|
def test_prune_builds_all(self):
|
||||||
|
prune_result = self.client.prune_builds(prune_all=True)
|
||||||
|
assert 'SpaceReclaimed' in prune_result
|
||||||
|
assert isinstance(prune_result['SpaceReclaimed'], int)
|
||||||
|
|
||||||
|
@requires_api_version('1.31')
|
||||||
|
def test_prune_builds_keep_storage(self):
|
||||||
|
prune_result = self.client.prune_builds(keep_storage=1)
|
||||||
|
assert 'SpaceReclaimed' in prune_result
|
||||||
|
assert isinstance(prune_result['SpaceReclaimed'], int)
|
||||||
|
|
Loading…
Reference in New Issue