| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package provisioning
- import (
- "context"
- "fmt"
- "path"
- "github.com/grafana/grafana/pkg/registry"
- "github.com/grafana/grafana/pkg/services/provisioning/notifiers"
- "github.com/grafana/grafana/pkg/services/provisioning/dashboards"
- "github.com/grafana/grafana/pkg/services/provisioning/datasources"
- "github.com/grafana/grafana/pkg/setting"
- )
- func init() {
- registry.RegisterService(&ProvisioningService{})
- }
- type ProvisioningService struct {
- Cfg *setting.Cfg `inject:""`
- }
- func (ps *ProvisioningService) Init() error {
- datasourcePath := path.Join(ps.Cfg.ProvisioningPath, "datasources")
- if err := datasources.Provision(datasourcePath); err != nil {
- return fmt.Errorf("Datasource provisioning error: %v", err)
- }
- alertNotificationsPath := path.Join(ps.Cfg.ProvisioningPath, "notifiers")
- if err := notifiers.Provision(alertNotificationsPath); err != nil {
- return fmt.Errorf("Alert notification provisioning error: %v", err)
- }
- return nil
- }
- func (ps *ProvisioningService) Run(ctx context.Context) error {
- dashboardPath := path.Join(ps.Cfg.ProvisioningPath, "dashboards")
- dashProvisioner := dashboards.NewDashboardProvisioner(dashboardPath)
- if err := dashProvisioner.Provision(ctx); err != nil {
- return err
- }
- <-ctx.Done()
- return ctx.Err()
- }
|