mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Merge pull request #29372 from tophj-ibm/fix-plugin-disable-error
[plugins] return err when failing remove
This commit is contained in:
commit
d0ab04ac16
1 changed files with 12 additions and 6 deletions
|
@ -5,7 +5,6 @@ package plugin
|
|||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
|
@ -23,6 +22,7 @@ import (
|
|||
"github.com/docker/docker/plugin/distribution"
|
||||
"github.com/docker/docker/plugin/v2"
|
||||
"github.com/docker/docker/reference"
|
||||
"github.com/pkg/errors"
|
||||
"golang.org/x/net/context"
|
||||
)
|
||||
|
||||
|
@ -268,7 +268,7 @@ func (pm *Manager) Push(name string, metaHeader http.Header, authConfig *types.A
|
|||
}
|
||||
|
||||
// Remove deletes plugin's root directory.
|
||||
func (pm *Manager) Remove(name string, config *types.PluginRmConfig) error {
|
||||
func (pm *Manager) Remove(name string, config *types.PluginRmConfig) (err error) {
|
||||
p, err := pm.pluginStore.GetByName(name)
|
||||
pm.mu.RLock()
|
||||
c := pm.cMap[p]
|
||||
|
@ -294,12 +294,18 @@ func (pm *Manager) Remove(name string, config *types.PluginRmConfig) error {
|
|||
}
|
||||
|
||||
id := p.GetID()
|
||||
pm.pluginStore.Remove(p)
|
||||
pluginDir := filepath.Join(pm.libRoot, id)
|
||||
if err := os.RemoveAll(pluginDir); err != nil {
|
||||
logrus.Warnf("unable to remove %q from plugin remove: %v", pluginDir, err)
|
||||
|
||||
defer func() {
|
||||
if err == nil || config.ForceRemove {
|
||||
pm.pluginStore.Remove(p)
|
||||
pm.pluginEventLogger(id, name, "remove")
|
||||
}
|
||||
}()
|
||||
|
||||
if err = os.RemoveAll(pluginDir); err != nil {
|
||||
return errors.Wrap(err, "failed to remove plugin directory")
|
||||
}
|
||||
pm.pluginEventLogger(id, name, "remove")
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue