diff --git a/docker/api/build.py b/docker/api/build.py index 1380f9cc..6ba7751f 100644 --- a/docker/api/build.py +++ b/docker/api/build.py @@ -276,12 +276,13 @@ class BuildApiMixin: return self._stream_helper(response, decode=decode) @utils.minimum_version('1.31') - def prune_builds(self, filters=None, keep_storage=None): + def prune_builds(self, filters=None, keep_storage=None, all=None): """ Delete the builder cache Args: filters (dict): Filters to process on the prune list. + Needs Docker API v1.39+ Available filters: - dangling (bool): When set to true (or 1), prune only unused and untagged images. @@ -289,6 +290,9 @@ class BuildApiMixin: timestamps, or Go duration strings (e.g. 10m, 1h30m) computed relative to the daemon's local time. keep_storage (int): Amount of disk space in bytes to keep for cache. + Needs Docker API v1.39+ + all (bool): Remove all types of build cache. + Needs Docker API v1.39+ Returns: (dict): A dictionary containing information about the operation's @@ -300,11 +304,19 @@ class BuildApiMixin: If the server returns an error. """ url = self._url("/build/prune") + if (filters, keep_storage, all) != (None, None, None) \ + and utils.version_lt(self._version, '1.39'): + raise errors.InvalidVersion( + '`filters`, `keep_storage`, and `all` args are only available ' + 'for API version > 1.38' + ) params = {} if filters is not None: params['filters'] = utils.convert_filters(filters) if keep_storage is not None: params['keep-storage'] = keep_storage + if keep_storage is not None: + params['keep-storage'] = keep_storage return self._result(self._post(url, params=params), True) def _set_auth_headers(self, headers):