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.

Signed-off-by: Boaz Shuster <ripcurld.github@gmail.com>
Upstream-commit: 36ebf9489c3c6c8422d8ff9bb6e2cb65a9a66698
Component: engine
This commit is contained in:
Boaz Shuster
2017-10-09 22:21:27 +03:00
parent a08850286d
commit 3547a4b45b
+11 -17
View File
@@ -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,19 +128,18 @@ func (ps *Store) Get(name, capability string, mode int) (plugingetter.CompatPlug
}
}
// Lookup using legacy model.
if allowV1PluginsFallback {
p, err := plugins.Get(name, capability)
if err != nil {
if errors.Cause(err) == plugins.ErrNotFound {
return nil, errNotFound(name)
}
return nil, errors.Wrap(systemError{err}, "legacy plugin")
}
return p, nil
if !allowV1PluginsFallback {
return nil, errNotFound(name)
}
return nil, err
p, err := plugins.Get(name, capability)
if err == nil {
return p, nil
}
if errors.Cause(err) == plugins.ErrNotFound {
return nil, errNotFound(name)
}
return nil, errors.Wrap(systemError{err}, "legacy plugin")
}
// GetAllManagedPluginsByCap returns a list of managed plugins matching the given capability.