Skip to content
This repository has been archived by the owner on Nov 8, 2022. It is now read-only.

Commit

Permalink
Merge pull request #1242 from geauxvirtual/tb/1211
Browse files Browse the repository at this point in the history
Fix #1211: Return better error for plugin not found when starting a task
  • Loading branch information
IRCody authored Oct 11, 2016
2 parents 63d33ca + fea7d5e commit dcc1f27
Showing 1 changed file with 14 additions and 12 deletions.
26 changes: 14 additions & 12 deletions control/subscription_group.go
Original file line number Diff line number Diff line change
Expand Up @@ -245,15 +245,9 @@ func (p *subscriptionGroups) validatePluginSubscription(pl core.SubscribedPlugin
"_block": "validate-plugin-subscription",
"plugin": fmt.Sprintf("%s:%d", pl.Name(), pl.Version()),
}).Info(fmt.Sprintf("validating dependencies for plugin %s:%d", pl.Name(), pl.Version()))
lp, err := p.pluginManager.get(fmt.Sprintf("%s"+core.Separator+"%s"+core.Separator+"%d", pl.TypeName(), pl.Name(), pl.Version()))
lp, err := p.pluginManager.get(key(pl))
if err != nil {
se := serror.New(fmt.Errorf("Plugin not found: type(%s) name(%s) version(%d)", pl.TypeName(), pl.Name(), pl.Version()))
se.SetFields(map[string]interface{}{
"name": pl.Name(),
"version": pl.Version(),
"type": pl.TypeName(),
})
serrs = append(serrs, se)
serrs = append(serrs, pluginNotFoundError(pl))
return serrs
}

Expand Down Expand Up @@ -396,7 +390,7 @@ func (s *subscriptionGroup) subscribePlugins(id string,
for i, sub := range plugins {
plg, err := s.pluginManager.get(key(sub))
if err != nil {
serrs = append(serrs, serror.New(err))
serrs = append(serrs, pluginNotFoundError(sub))
return serrs
}
plgs[i] = plg
Expand Down Expand Up @@ -448,9 +442,7 @@ func (p *subscriptionGroup) unsubscribePlugins(id string,
"version": plugin.Version(),
"_block": "subscriptionGroup.unsubscribePlugins",
}).Debug("plugin unsubscription")
pool, err := p.pluginRunner.AvailablePlugins().getPool(
fmt.Sprintf("%s"+core.Separator+"%s"+core.Separator+"%d", plugin.TypeName(),
plugin.Name(), plugin.Version()))
pool, err := p.pluginRunner.AvailablePlugins().getPool(key(plugin))
if err != nil {
serrs = append(serrs, err)
return serrs
Expand Down Expand Up @@ -538,6 +530,16 @@ func comparePlugins(newPlugins,
return
}

func pluginNotFoundError(pl core.SubscribedPlugin) serror.SnapError {
se := serror.New(fmt.Errorf("Plugin not found: type(%s) name(%s) version(%d)", pl.TypeName(), pl.Name(), pl.Version()))
se.SetFields(map[string]interface{}{
"name": pl.Name(),
"version": pl.Version(),
"type": pl.TypeName(),
})
return se
}

func key(p core.SubscribedPlugin) string {
return fmt.Sprintf("%v"+core.Separator+"%v"+core.Separator+"%v", p.TypeName(), p.Name(), p.Version())
}

0 comments on commit dcc1f27

Please sign in to comment.