summaryrefslogtreecommitdiff
path: root/docker/models/plugins.py
diff options
context:
space:
mode:
authorJoffrey F <f.joffrey@gmail.com>2017-03-21 12:12:28 -0700
committerGitHub <noreply@github.com>2017-03-21 12:12:28 -0700
commitb474ea2fd6357a3abd3942e589001f41cb6b3f6b (patch)
treeb6044075cad3cfd4be84b94545686ac5d63135b7 /docker/models/plugins.py
parent5742774c7d6357edda68ca6b5861693383bb01c1 (diff)
parentcca981823aa8d60d18a48b6b571be2350dcf7501 (diff)
downloaddocker-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.py25
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