mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Advisor: Fix Healtcheck check (#100115)
This commit is contained in:
parent
bf1174cfdc
commit
6d159b6240
@ -6,9 +6,9 @@ import (
|
||||
"github.com/grafana/grafana/apps/advisor/pkg/app/checks/plugincheck"
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
"github.com/grafana/grafana/pkg/plugins/repo"
|
||||
"github.com/grafana/grafana/pkg/registry/apis/datasource"
|
||||
"github.com/grafana/grafana/pkg/services/datasources"
|
||||
"github.com/grafana/grafana/pkg/services/pluginsintegration/managedplugins"
|
||||
"github.com/grafana/grafana/pkg/services/pluginsintegration/plugincontext"
|
||||
"github.com/grafana/grafana/pkg/services/pluginsintegration/plugininstaller"
|
||||
"github.com/grafana/grafana/pkg/services/pluginsintegration/pluginstore"
|
||||
)
|
||||
@ -20,7 +20,7 @@ type CheckService interface {
|
||||
type Service struct {
|
||||
datasourceSvc datasources.DataSourceService
|
||||
pluginStore pluginstore.Store
|
||||
pluginContextProvider datasource.PluginContextWrapper
|
||||
pluginContextProvider *plugincontext.Provider
|
||||
pluginClient plugins.Client
|
||||
pluginRepo repo.Service
|
||||
pluginPreinstall plugininstaller.Preinstall
|
||||
@ -28,7 +28,7 @@ type Service struct {
|
||||
}
|
||||
|
||||
func ProvideService(datasourceSvc datasources.DataSourceService, pluginStore pluginstore.Store,
|
||||
pluginContextProvider datasource.PluginContextWrapper, pluginClient plugins.Client,
|
||||
pluginContextProvider *plugincontext.Provider, pluginClient plugins.Client,
|
||||
pluginRepo repo.Service, pluginPreinstall plugininstaller.Preinstall, managedPlugins managedplugins.Manager) *Service {
|
||||
return &Service{
|
||||
datasourceSvc: datasourceSvc,
|
||||
|
@ -7,8 +7,8 @@ import (
|
||||
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
||||
advisor "github.com/grafana/grafana/apps/advisor/pkg/apis/advisor/v0alpha1"
|
||||
"github.com/grafana/grafana/apps/advisor/pkg/app/checks"
|
||||
"github.com/grafana/grafana/pkg/apimachinery/identity"
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
"github.com/grafana/grafana/pkg/registry/apis/datasource"
|
||||
"github.com/grafana/grafana/pkg/services/datasources"
|
||||
"github.com/grafana/grafana/pkg/services/pluginsintegration/pluginstore"
|
||||
"github.com/grafana/grafana/pkg/util"
|
||||
@ -18,7 +18,7 @@ import (
|
||||
func New(
|
||||
datasourceSvc datasources.DataSourceService,
|
||||
pluginStore pluginstore.Store,
|
||||
pluginContextProvider datasource.PluginContextWrapper,
|
||||
pluginContextProvider pluginContextProvider,
|
||||
pluginClient plugins.Client,
|
||||
) checks.Check {
|
||||
return &check{
|
||||
@ -32,7 +32,7 @@ func New(
|
||||
type check struct {
|
||||
DatasourceSvc datasources.DataSourceService
|
||||
PluginStore pluginstore.Store
|
||||
PluginContextProvider datasource.PluginContextWrapper
|
||||
PluginContextProvider pluginContextProvider
|
||||
PluginClient plugins.Client
|
||||
}
|
||||
|
||||
@ -62,11 +62,11 @@ func (c *check) Run(ctx context.Context, obj *advisor.CheckSpec) (*advisor.Check
|
||||
}
|
||||
|
||||
// Health check execution
|
||||
pCtx, err := c.PluginContextProvider.PluginContextForDataSource(ctx, &backend.DataSourceInstanceSettings{
|
||||
Type: ds.Type,
|
||||
UID: ds.UID,
|
||||
APIVersion: ds.APIVersion,
|
||||
})
|
||||
requester, err := identity.GetRequester(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
pCtx, err := c.PluginContextProvider.GetWithDataSource(ctx, ds.Type, requester, ds)
|
||||
if err != nil {
|
||||
klog.ErrorS(err, "Error creating plugin context", "datasource", ds.Name)
|
||||
continue
|
||||
@ -96,3 +96,7 @@ func (c *check) Run(ctx context.Context, obj *advisor.CheckSpec) (*advisor.Check
|
||||
Errors: dsErrs,
|
||||
}, nil
|
||||
}
|
||||
|
||||
type pluginContextProvider interface {
|
||||
GetWithDataSource(ctx context.Context, pluginID string, user identity.Requester, ds *datasources.DataSource) (backend.PluginContext, error)
|
||||
}
|
||||
|
@ -6,9 +6,10 @@ import (
|
||||
|
||||
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
||||
advisor "github.com/grafana/grafana/apps/advisor/pkg/apis/advisor/v0alpha1"
|
||||
"github.com/grafana/grafana/pkg/apimachinery/identity"
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
"github.com/grafana/grafana/pkg/registry/apis/datasource"
|
||||
"github.com/grafana/grafana/pkg/services/datasources"
|
||||
"github.com/grafana/grafana/pkg/services/user"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
@ -29,7 +30,8 @@ func TestCheck_Run(t *testing.T) {
|
||||
PluginClient: mockPluginClient,
|
||||
}
|
||||
|
||||
report, err := check.Run(context.Background(), &advisor.CheckSpec{})
|
||||
ctx := identity.WithRequester(context.Background(), &user.SignedInUser{})
|
||||
report, err := check.Run(ctx, &advisor.CheckSpec{})
|
||||
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, int64(2), report.Count)
|
||||
@ -51,7 +53,8 @@ func TestCheck_Run(t *testing.T) {
|
||||
PluginClient: mockPluginClient,
|
||||
}
|
||||
|
||||
report, err := check.Run(context.Background(), &advisor.CheckSpec{})
|
||||
ctx := identity.WithRequester(context.Background(), &user.SignedInUser{})
|
||||
report, err := check.Run(ctx, &advisor.CheckSpec{})
|
||||
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, int64(1), report.Count)
|
||||
@ -74,7 +77,8 @@ func TestCheck_Run(t *testing.T) {
|
||||
PluginClient: mockPluginClient,
|
||||
}
|
||||
|
||||
report, err := check.Run(context.Background(), &advisor.CheckSpec{})
|
||||
ctx := identity.WithRequester(context.Background(), &user.SignedInUser{})
|
||||
report, err := check.Run(ctx, &advisor.CheckSpec{})
|
||||
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, int64(1), report.Count)
|
||||
@ -94,12 +98,10 @@ func (m *MockDatasourceSvc) GetAllDataSources(ctx context.Context, query *dataso
|
||||
}
|
||||
|
||||
type MockPluginContextProvider struct {
|
||||
datasource.PluginContextWrapper
|
||||
|
||||
pCtx backend.PluginContext
|
||||
}
|
||||
|
||||
func (m *MockPluginContextProvider) PluginContextForDataSource(ctx context.Context, datasourceSettings *backend.DataSourceInstanceSettings) (backend.PluginContext, error) {
|
||||
func (m *MockPluginContextProvider) GetWithDataSource(ctx context.Context, pluginID string, user identity.Requester, ds *datasources.DataSource) (backend.PluginContext, error) {
|
||||
return m.pCtx, nil
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user