Plugins: Plugin Store API returns DTO model (#41340)

* toying around

* fix refs

* remove unused fields

* go further

* add context

* ensure streaming handler is set
This commit is contained in:
Will Browne
2021-11-17 12:04:22 +01:00
committed by GitHub
parent dbb8246b6b
commit 2e3e7a7e55
24 changed files with 494 additions and 353 deletions
+5 -5
View File
@@ -330,8 +330,8 @@ func (uss *UsageStats) updateTotalStats(ctx context.Context) {
}
func (uss *UsageStats) ShouldBeReported(dsType string) bool {
ds := uss.pluginStore.Plugin(dsType)
if ds == nil {
ds, exists := uss.pluginStore.Plugin(context.TODO(), dsType)
if !exists {
return false
}
@@ -367,13 +367,13 @@ func (uss *UsageStats) GetUsageStatsId(ctx context.Context) string {
}
func (uss *UsageStats) appCount() int {
return len(uss.pluginStore.Plugins(plugins.App))
return len(uss.pluginStore.Plugins(context.TODO(), plugins.App))
}
func (uss *UsageStats) panelCount() int {
return len(uss.pluginStore.Plugins(plugins.Panel))
return len(uss.pluginStore.Plugins(context.TODO(), plugins.Panel))
}
func (uss *UsageStats) dataSourceCount() int {
return len(uss.pluginStore.Plugins(plugins.DataSource))
return len(uss.pluginStore.Plugins(context.TODO(), plugins.DataSource))
}
@@ -554,15 +554,17 @@ func TestMetrics(t *testing.T) {
type fakePluginStore struct {
plugins.Store
plugins map[string]*plugins.Plugin
plugins map[string]plugins.PluginDTO
}
func (pr fakePluginStore) Plugin(pluginID string) *plugins.Plugin {
return pr.plugins[pluginID]
func (pr fakePluginStore) Plugin(_ context.Context, pluginID string) (plugins.PluginDTO, bool) {
p, exists := pr.plugins[pluginID]
return p, exists
}
func (pr fakePluginStore) Plugins(pluginTypes ...plugins.Type) []*plugins.Plugin {
var result []*plugins.Plugin
func (pr fakePluginStore) Plugins(_ context.Context, pluginTypes ...plugins.Type) []plugins.PluginDTO {
var result []plugins.PluginDTO
for _, v := range pr.plugins {
for _, t := range pluginTypes {
if v.Type == t {
@@ -578,7 +580,7 @@ func setupSomeDataSourcePlugins(t *testing.T, uss *UsageStats) {
t.Helper()
uss.pluginStore = &fakePluginStore{
plugins: map[string]*plugins.Plugin{
plugins: map[string]plugins.PluginDTO{
models.DS_ES: {
Signature: "internal",
},