mirror of
https://github.com/moby/moby.git
synced 2026-01-11 18:51:37 +00:00
plugin: remove/rename err-returns
Prevent accidentally shadowing these errors, which are used in defers, and while at it, also fixed some linting warnings about unhandled errors. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
@@ -92,7 +92,7 @@ func (pm *Manager) Enable(refOrID string, config *backend.PluginEnableConfig) er
|
||||
}
|
||||
|
||||
// Inspect examines a plugin config
|
||||
func (pm *Manager) Inspect(refOrID string) (tp *types.Plugin, err error) {
|
||||
func (pm *Manager) Inspect(refOrID string) (*types.Plugin, error) {
|
||||
p, err := pm.config.Store.GetV2Plugin(refOrID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -209,7 +209,7 @@ func (pm *Manager) Privileges(ctx context.Context, ref reference.Named, metaHead
|
||||
// Upgrade upgrades a plugin
|
||||
//
|
||||
// TODO: replace reference package usage with simpler url.Parse semantics
|
||||
func (pm *Manager) Upgrade(ctx context.Context, ref reference.Named, name string, metaHeader http.Header, authConfig *registry.AuthConfig, privileges types.PluginPrivileges, outStream io.Writer) (err error) {
|
||||
func (pm *Manager) Upgrade(ctx context.Context, ref reference.Named, name string, metaHeader http.Header, authConfig *registry.AuthConfig, privileges types.PluginPrivileges, outStream io.Writer) error {
|
||||
p, err := pm.config.Store.GetV2Plugin(name)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -257,7 +257,7 @@ func (pm *Manager) Upgrade(ctx context.Context, ref reference.Named, name string
|
||||
// Pull pulls a plugin, check if the correct privileges are provided and install the plugin.
|
||||
//
|
||||
// TODO: replace reference package usage with simpler url.Parse semantics
|
||||
func (pm *Manager) Pull(ctx context.Context, ref reference.Named, name string, metaHeader http.Header, authConfig *registry.AuthConfig, privileges types.PluginPrivileges, outStream io.Writer, opts ...CreateOpt) (err error) {
|
||||
func (pm *Manager) Pull(ctx context.Context, ref reference.Named, name string, metaHeader http.Header, authConfig *registry.AuthConfig, privileges types.PluginPrivileges, outStream io.Writer, opts ...CreateOpt) error {
|
||||
pm.muGC.RLock()
|
||||
defer pm.muGC.RUnlock()
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ func (pm *Manager) Enable(name string, config *backend.PluginEnableConfig) error
|
||||
}
|
||||
|
||||
// Inspect examines a plugin config
|
||||
func (pm *Manager) Inspect(refOrID string) (tp *types.Plugin, err error) {
|
||||
func (pm *Manager) Inspect(refOrID string) (*types.Plugin, error) {
|
||||
return nil, errNotSupported
|
||||
}
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ func setupProgressOutput(outStream io.Writer, cancel func()) (progress.Output, f
|
||||
|
||||
// fetch the content related to the passed in reference into the blob store and appends the provided c8dimages.Handlers
|
||||
// There is no need to use remotes.FetchHandler since it already gets set
|
||||
func (pm *Manager) fetch(ctx context.Context, ref reference.Named, auth *registry.AuthConfig, out progress.Output, metaHeader http.Header, handlers ...c8dimages.Handler) (err error) {
|
||||
func (pm *Manager) fetch(ctx context.Context, ref reference.Named, auth *registry.AuthConfig, out progress.Output, metaHeader http.Header, handlers ...c8dimages.Handler) error {
|
||||
// We need to make sure we have a domain on the reference
|
||||
withDomain, err := reference.ParseNormalizedNamed(ref.String())
|
||||
if err != nil {
|
||||
|
||||
@@ -212,7 +212,7 @@ func (pm *Manager) Shutdown() {
|
||||
}
|
||||
}
|
||||
|
||||
func (pm *Manager) upgradePlugin(p *v2.Plugin, configDigest, manifestDigest digest.Digest, blobsums []digest.Digest, tmpRootFSDir string, privileges *types.PluginPrivileges) (err error) {
|
||||
func (pm *Manager) upgradePlugin(p *v2.Plugin, configDigest, manifestDigest digest.Digest, blobsums []digest.Digest, tmpRootFSDir string, privileges *types.PluginPrivileges) (retErr error) {
|
||||
config, err := pm.setupNewPlugin(configDigest, privileges)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -234,20 +234,20 @@ func (pm *Manager) upgradePlugin(p *v2.Plugin, configDigest, manifestDigest dige
|
||||
}
|
||||
|
||||
defer func() {
|
||||
if err != nil {
|
||||
if rmErr := os.RemoveAll(orig); rmErr != nil {
|
||||
log.G(context.TODO()).WithError(rmErr).WithField("dir", backup).Error("error cleaning up after failed upgrade")
|
||||
if retErr != nil {
|
||||
if err := os.RemoveAll(orig); err != nil {
|
||||
log.G(context.TODO()).WithError(err).WithField("dir", backup).Error("error cleaning up after failed upgrade")
|
||||
return
|
||||
}
|
||||
if mvErr := os.Rename(backup, orig); mvErr != nil {
|
||||
err = errors.Wrap(mvErr, "error restoring old plugin root on upgrade failure")
|
||||
if err := os.Rename(backup, orig); err != nil {
|
||||
retErr = errors.Wrap(err, "error restoring old plugin root on upgrade failure")
|
||||
}
|
||||
if rmErr := os.RemoveAll(tmpRootFSDir); rmErr != nil && !os.IsNotExist(rmErr) {
|
||||
log.G(context.TODO()).WithError(rmErr).WithField("plugin", p.Name()).Errorf("error cleaning up plugin upgrade dir: %s", tmpRootFSDir)
|
||||
if err := os.RemoveAll(tmpRootFSDir); err != nil && !os.IsNotExist(err) {
|
||||
log.G(context.TODO()).WithError(err).WithField("plugin", p.Name()).Errorf("error cleaning up plugin upgrade dir: %s", tmpRootFSDir)
|
||||
}
|
||||
} else {
|
||||
if rmErr := os.RemoveAll(backup); rmErr != nil {
|
||||
log.G(context.TODO()).WithError(rmErr).WithField("dir", backup).Error("error cleaning up old plugin root after successful upgrade")
|
||||
if err := os.RemoveAll(backup); err != nil {
|
||||
log.G(context.TODO()).WithError(err).WithField("dir", backup).Error("error cleaning up old plugin root after successful upgrade")
|
||||
}
|
||||
|
||||
p.Config = configDigest
|
||||
@@ -261,10 +261,13 @@ func (pm *Manager) upgradePlugin(p *v2.Plugin, configDigest, manifestDigest dige
|
||||
|
||||
p.PluginObj.Config = config
|
||||
p.Manifest = manifestDigest
|
||||
err = pm.save(p)
|
||||
if err := pm.save(p); err != nil {
|
||||
return errors.Wrap(err, "error saving upgraded plugin config")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (pm *Manager) setupNewPlugin(configDigest digest.Digest, privileges *types.PluginPrivileges) (types.PluginConfig, error) {
|
||||
configRA, err := pm.blobStore.ReaderAt(context.TODO(), ocispec.Descriptor{Digest: configDigest})
|
||||
if err != nil {
|
||||
@@ -294,7 +297,7 @@ func (pm *Manager) setupNewPlugin(configDigest digest.Digest, privileges *types.
|
||||
}
|
||||
|
||||
// createPlugin creates a new plugin. take lock before calling.
|
||||
func (pm *Manager) createPlugin(name string, configDigest, manifestDigest digest.Digest, blobsums []digest.Digest, rootFSDir string, privileges *types.PluginPrivileges, opts ...CreateOpt) (p *v2.Plugin, err error) {
|
||||
func (pm *Manager) createPlugin(name string, configDigest, manifestDigest digest.Digest, blobsums []digest.Digest, rootFSDir string, privileges *types.PluginPrivileges, opts ...CreateOpt) (_ *v2.Plugin, retErr error) {
|
||||
if err := pm.config.Store.validateName(name); err != nil { // todo: this check is wrong. remove store
|
||||
return nil, errdefs.InvalidParameter(err)
|
||||
}
|
||||
@@ -304,7 +307,7 @@ func (pm *Manager) createPlugin(name string, configDigest, manifestDigest digest
|
||||
return nil, err
|
||||
}
|
||||
|
||||
p = &v2.Plugin{
|
||||
p := &v2.Plugin{
|
||||
PluginObj: types.Plugin{
|
||||
Name: name,
|
||||
ID: stringid.GenerateRandomID(),
|
||||
@@ -325,8 +328,8 @@ func (pm *Manager) createPlugin(name string, configDigest, manifestDigest digest
|
||||
}
|
||||
|
||||
defer func() {
|
||||
if err != nil {
|
||||
os.RemoveAll(pdir)
|
||||
if retErr != nil {
|
||||
_ = os.RemoveAll(pdir)
|
||||
}
|
||||
}()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user