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 }
// Converts ConfigDataNode to ConfigMap protobuf message func ConfigToConfigMap(cd *cdata.ConfigDataNode) *ConfigMap { if cd == nil { return nil } return ToConfigMap(cd.Table()) }