diff options
author | Joffrey F <joffrey@docker.com> | 2017-01-25 15:46:58 -0800 |
---|---|---|
committer | Joffrey F <joffrey@docker.com> | 2017-01-26 14:24:52 -0800 |
commit | a24b114af3aec0430fd27f8bbf460cfa396ae274 (patch) | |
tree | feb26803c76cce50d04292804a65aea2fd26f0b8 /docker | |
parent | 39deace7c62e3ebfd1a69beb9ac78e6aa7038b57 (diff) | |
download | docker-py-force_remove_volume.tar.gz |
Add 'force' parameter in remove_volumeforce_remove_volume
Signed-off-by: Joffrey F <joffrey@docker.com>
Diffstat (limited to 'docker')
-rw-r--r-- | docker/api/volume.py | 18 | ||||
-rw-r--r-- | docker/models/volumes.py | 15 |
2 files changed, 26 insertions, 7 deletions
diff --git a/docker/api/volume.py b/docker/api/volume.py index 9c6d5f8..5de089e 100644 --- a/docker/api/volume.py +++ b/docker/api/volume.py @@ -115,17 +115,27 @@ class VolumeApiMixin(object): return self._result(self._get(url), True) @utils.minimum_version('1.21') - def remove_volume(self, name): + def remove_volume(self, name, force=False): """ Remove a volume. Similar to the ``docker volume rm`` command. Args: name (str): The volume's name + force (bool): Force removal of volumes that were already removed + out of band by the volume driver plugin. Raises: - - ``docker.errors.APIError``: If volume failed to remove. + :py:class:`docker.errors.APIError` + If volume failed to remove. """ - url = self._url('/volumes/{0}', name) + params = {} + if force: + if utils.version_lt(self._version, '1.25'): + raise errors.InvalidVersion( + 'force removal was introduced in API 1.25' + ) + params = {'force': force} + + url = self._url('/volumes/{0}', name, params=params) resp = self._delete(url) self._raise_for_status(resp) diff --git a/docker/models/volumes.py b/docker/models/volumes.py index 5a31541..5fb0d1c 100644 --- a/docker/models/volumes.py +++ b/docker/models/volumes.py @@ -10,9 +10,18 @@ class Volume(Model): """The name of the volume.""" return self.attrs['Name'] - def remove(self): - """Remove this volume.""" - return self.client.api.remove_volume(self.id) + def remove(self, force=False): + """ + Remove this volume. + + Args: + force (bool): Force removal of volumes that were already removed + out of band by the volume driver plugin. + Raises: + :py:class:`docker.errors.APIError` + If volume failed to remove. + """ + return self.client.api.remove_volume(self.id, force=force) class VolumeCollection(Collection): |