From 5e156fd3d4b21267caca093dd0df7ed6bce85535 Mon Sep 17 00:00:00 2001 From: Brian Goff Date: Wed, 15 Jun 2016 11:21:31 -0400 Subject: [PATCH] Fix removing plugins Signed-off-by: Brian Goff --- plugin/backend.go | 4 ---- plugin/manager.go | 12 +++++++++--- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/plugin/backend.go b/plugin/backend.go index 541f06c936..cf9473b8f6 100644 --- a/plugin/backend.go +++ b/plugin/backend.go @@ -76,10 +76,6 @@ func (pm *Manager) Pull(name string, metaHeader http.Header, authConfig *types.A } p := pm.newPlugin(ref, pluginID) - if ref, ok := ref.(reference.NamedTagged); ok { - p.p.Tag = ref.Tag() - } - if err := pm.initPlugin(p); err != nil { return nil, err } diff --git a/plugin/manager.go b/plugin/manager.go index 8d298453a6..9c128b207c 100644 --- a/plugin/manager.go +++ b/plugin/manager.go @@ -58,7 +58,12 @@ func (p *plugin) Client() *plugins.Client { } func (p *plugin) Name() string { - return p.p.Name + name := p.p.Name + if len(p.p.Tag) > 0 { + // TODO: this feels hacky, maybe we should be storing the distribution reference rather than splitting these + name += ":" + p.p.Tag + } + return name } func (pm *Manager) newPlugin(ref reference.Named, id string) *plugin { @@ -300,12 +305,13 @@ func (pm *Manager) initPlugin(p *plugin) error { func (pm *Manager) remove(p *plugin) error { if p.p.Active { - return fmt.Errorf("plugin %s is active", p.p.Name) + return fmt.Errorf("plugin %s is active", p.Name()) } pm.Lock() // fixme: lock single record defer pm.Unlock() os.RemoveAll(p.stateSourcePath) - delete(pm.plugins, p.p.Name) + delete(pm.plugins, p.p.ID) + delete(pm.nameToID, p.Name()) pm.save() return nil }