diff options
| author | Joffrey F <f.joffrey@gmail.com> | 2017-03-21 12:12:28 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-03-21 12:12:28 -0700 |
| commit | b474ea2fd6357a3abd3942e589001f41cb6b3f6b (patch) | |
| tree | b6044075cad3cfd4be84b94545686ac5d63135b7 /docker/models/plugins.py | |
| parent | 5742774c7d6357edda68ca6b5861693383bb01c1 (diff) | |
| parent | cca981823aa8d60d18a48b6b571be2350dcf7501 (diff) | |
| download | docker-py-2.2.0.tar.gz | |
Merge pull request #1519 from shin-/2.2.0-release2.2.0
2.2.0 release
Diffstat (limited to 'docker/models/plugins.py')
| -rw-r--r-- | docker/models/plugins.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/docker/models/plugins.py b/docker/models/plugins.py index 8b6ede9..6cdf01c 100644 --- a/docker/models/plugins.py +++ b/docker/models/plugins.py @@ -1,3 +1,4 @@ +from .. import errors from .resource import Collection, Model @@ -96,6 +97,30 @@ class Plugin(Model): """ return self.client.api.remove_plugin(self.name, force=force) + def upgrade(self, remote=None): + """ + Upgrade the plugin. + + Args: + remote (string): Remote reference to upgrade to. The + ``:latest`` tag is optional and is the default if omitted. + Default: this plugin's name. + + Returns: + A generator streaming the decoded API logs + """ + if self.enabled: + raise errors.DockerError( + 'Plugin must be disabled before upgrading.' + ) + + if remote is None: + remote = self.name + privileges = self.client.api.plugin_privileges(remote) + for d in self.client.api.upgrade_plugin(self.name, remote, privileges): + yield d + self._reload() + class PluginCollection(Collection): model = Plugin |
