1
0
mirror of https://github.com/docker/cli.git synced 2026-01-13 18:22:35 +03:00

Fix removing plugins

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Upstream-commit: 5e156fd3d4b21267caca093dd0df7ed6bce85535
Component: engine
This commit is contained in:
Brian Goff
2016-06-15 11:21:31 -04:00
parent c845c179d8
commit cb7a4630c6
2 changed files with 9 additions and 7 deletions

View File

@@ -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
}

View File

@@ -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
}