0f56462fbe
* Generate API for writing templates * Persist templates app logic layer * Validate templates * Extract logic, make set and delete methods * Drop post route for templates * Fix response details, wire up remainder of API * Authorize routes * Mirror some existing tests on new APIs * Generate mock for prov store * Wire up prov store mock, add tests using it * Cover cases for both storage paths * Add happy path tests and fix bugs if file contains no template section * Normalize template content with define statement * Tests for deletion * Fix linter error * Move provenance field to DTO * empty commit * ID to name * Fix in auth too
29 lines
1.4 KiB
Go
29 lines
1.4 KiB
Go
package provisioning
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/grafana/grafana/pkg/services/ngalert/models"
|
|
)
|
|
|
|
// AMStore is a store of Alertmanager configurations.
|
|
//go:generate mockery --name AMConfigStore --structname MockAMConfigStore --inpackage --filename persist_mock.go --with-expecter
|
|
type AMConfigStore interface {
|
|
GetLatestAlertmanagerConfiguration(ctx context.Context, query *models.GetLatestAlertmanagerConfigurationQuery) error
|
|
UpdateAlertmanagerConfiguration(ctx context.Context, cmd *models.SaveAlertmanagerConfigurationCmd) error
|
|
}
|
|
|
|
// ProvisioningStore is a store of provisioning data for arbitrary objects.
|
|
//go:generate mockery --name ProvisioningStore --structname MockProvisioningStore --inpackage --filename provisioning_store_mock.go --with-expecter
|
|
type ProvisioningStore interface {
|
|
GetProvenance(ctx context.Context, o models.Provisionable, org int64) (models.Provenance, error)
|
|
GetProvenances(ctx context.Context, org int64, resourceType string) (map[string]models.Provenance, error)
|
|
SetProvenance(ctx context.Context, o models.Provisionable, org int64, p models.Provenance) error
|
|
DeleteProvenance(ctx context.Context, o models.Provisionable, org int64) error
|
|
}
|
|
|
|
// TransactionManager represents the ability to issue and close transactions through contexts.
|
|
type TransactionManager interface {
|
|
InTransaction(ctx context.Context, work func(ctx context.Context) error) error
|
|
}
|