ProvisioningService: Change the ProvisioningService interface for easier extension (#32910)

* Made a public constructor in order to instantiate it from the service override

* Removed unused plugins.DataRequestHandler

* Added a Run and RunInitProvisioners methods that can be run from Enterprise

* Adding a mock for Run and RunInitProvisioners as well
This commit is contained in:
gamab
2021-04-21 13:41:34 +02:00
committed by GitHub
parent 63e2977837
commit a151dfaa04
4 changed files with 49 additions and 17 deletions

View File

@ -1,22 +1,28 @@
package provisioning
import "context"
type Calls struct {
RunInitProvisioners []interface{}
ProvisionDatasources []interface{}
ProvisionPlugins []interface{}
ProvisionNotifications []interface{}
ProvisionDashboards []interface{}
GetDashboardProvisionerResolvedPath []interface{}
GetAllowUIUpdatesFromConfig []interface{}
Run []interface{}
}
type ProvisioningServiceMock struct {
Calls *Calls
RunInitProvisionersFunc func() error
ProvisionDatasourcesFunc func() error
ProvisionPluginsFunc func() error
ProvisionNotificationsFunc func() error
ProvisionDashboardsFunc func() error
GetDashboardProvisionerResolvedPathFunc func(name string) string
GetAllowUIUpdatesFromConfigFunc func(name string) bool
RunFunc func(ctx context.Context) error
}
func NewProvisioningServiceMock() *ProvisioningServiceMock {
@ -25,6 +31,14 @@ func NewProvisioningServiceMock() *ProvisioningServiceMock {
}
}
func (mock *ProvisioningServiceMock) RunInitProvisioners() error {
mock.Calls.RunInitProvisioners = append(mock.Calls.RunInitProvisioners, nil)
if mock.RunInitProvisionersFunc != nil {
return mock.RunInitProvisionersFunc()
}
return nil
}
func (mock *ProvisioningServiceMock) ProvisionDatasources() error {
mock.Calls.ProvisionDatasources = append(mock.Calls.ProvisionDatasources, nil)
if mock.ProvisionDatasourcesFunc != nil {
@ -72,3 +86,11 @@ func (mock *ProvisioningServiceMock) GetAllowUIUpdatesFromConfig(name string) bo
}
return false
}
func (mock *ProvisioningServiceMock) Run(ctx context.Context) error {
mock.Calls.Run = append(mock.Calls.Run, nil)
if mock.RunFunc != nil {
return mock.RunFunc(ctx)
}
return nil
}