func subscribedPluginsContain(list []core.SubscribedPlugin, lookup core.SubscribedPlugin) bool { for _, plugin := range list { if plugin.TypeName() == lookup.TypeName() && plugin.Name() == lookup.Name() && plugin.Version() == lookup.Version() { return true } } return false }
// Convert core.SubscribedPlugin to SubscribedPlugin protobuf message func ToSubPluginMsg(pl core.SubscribedPlugin) *SubscribedPlugin { return &SubscribedPlugin{ TypeName: pl.TypeName(), Name: pl.Name(), Version: int64(pl.Version()), Config: ConfigToConfigMap(pl.Config()), } }
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 (p *pluginControl) validatePluginSubscription(pl core.SubscribedPlugin) []serror.SnapError { var serrs = []serror.SnapError{} controlLogger.WithFields(log.Fields{ "_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:%s:%d", pl.TypeName(), pl.Name(), pl.Version())) 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) return serrs } if lp.ConfigPolicy != nil { ncd := lp.ConfigPolicy.Get([]string{""}) _, errs := ncd.Process(pl.Config().Table()) if errs != nil && errs.HasErrors() { for _, e := range errs.Errors() { se := serror.New(e) se.SetFields(map[string]interface{}{"name": pl.Name(), "version": pl.Version()}) serrs = append(serrs, se) } } } return serrs }
func key(p core.SubscribedPlugin) string { return fmt.Sprintf("%v"+core.Separator+"%v"+core.Separator+"%v", p.TypeName(), p.Name(), p.Version()) }
func (p *subscriptionGroups) validatePluginSubscription(pl core.SubscribedPlugin, mergedConfig *cdata.ConfigDataNode) []serror.SnapError { var serrs = []serror.SnapError{} controlLogger.WithFields(log.Fields{ "_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(key(pl)) if err != nil { serrs = append(serrs, pluginNotFoundError(pl)) return serrs } if lp.ConfigPolicy != nil { ncd := lp.ConfigPolicy.Get([]string{""}) _, errs := ncd.Process(mergedConfig.Table()) if errs != nil && errs.HasErrors() { for _, e := range errs.Errors() { se := serror.New(e) se.SetFields(map[string]interface{}{"name": pl.Name(), "version": pl.Version()}) serrs = append(serrs, se) } } } return serrs }