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 (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
@ -23,6 +22,7 @@ import (
|
||||||
"github.com/docker/docker/plugin/distribution"
|
"github.com/docker/docker/plugin/distribution"
|
||||||
"github.com/docker/docker/plugin/v2"
|
"github.com/docker/docker/plugin/v2"
|
||||||
"github.com/docker/docker/reference"
|
"github.com/docker/docker/reference"
|
||||||
|
"github.com/pkg/errors"
|
||||||
"golang.org/x/net/context"
|
"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.
|
// 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)
|
p, err := pm.pluginStore.GetByName(name)
|
||||||
pm.mu.RLock()
|
pm.mu.RLock()
|
||||||
c := pm.cMap[p]
|
c := pm.cMap[p]
|
||||||
|
@ -294,12 +294,18 @@ func (pm *Manager) Remove(name string, config *types.PluginRmConfig) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
id := p.GetID()
|
id := p.GetID()
|
||||||
pm.pluginStore.Remove(p)
|
|
||||||
pluginDir := filepath.Join(pm.libRoot, id)
|
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
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue