Refactor plugin store to reduce nested if's in Get
This patch removes the nested if's  in the Get function
and makes the code more readable.
@@ -111,14 +111,9 @@ func (ps *Store) Remove(p *v2.Plugin) {
// Get returns an enabled plugin matching the given name and capability.
func (ps *Store) Get(name, capability string, mode int) (plugingetter.CompatPlugin, error) {
- var (
- p *v2.Plugin
- err error
- )
-
// Lookup using new model.
if ps != nil {
- p, err = ps.GetV2Plugin(name)
+ p, err := ps.GetV2Plugin(name)
if err == nil {
p.AddRefCount(mode)
if p.IsEnabled() {
@@ -133,20 +128,19 @@ func (ps *Store) Get(name, capability string, mode int) (plugingetter.CompatPlug
}
}
- // Lookup using legacy model.
- if allowV1PluginsFallback {
+ if !allowV1PluginsFallback {
+ return nil, errNotFound(name)
+ }
+
p, err := plugins.Get(name, capability)
- if err != nil {
+ if err == nil {
+ return p, nil
+ }
if errors.Cause(err) == plugins.ErrNotFound {
return nil, errNotFound(name)
}
return nil, errors.Wrap(systemError{err}, "legacy plugin")
}
- return p, nil
- }
-
- return nil, err
-}
// GetAllManagedPluginsByCap returns a list of managed plugins matching the given capability.
func (ps *Store) GetAllManagedPluginsByCap(capability string) []plugingetter.CompatPlugin {
