| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package dashboard
- import (
- "context"
- "fmt"
- "github.com/grafana/grafana/pkg/log"
- )
- type DashboardProvisioner struct {
- cfgReader *configReader
- log log.Logger
- ctx context.Context
- }
- func Provision(ctx context.Context, configDirectory string) (*DashboardProvisioner, error) {
- d := &DashboardProvisioner{
- cfgReader: &configReader{path: configDirectory},
- log: log.New("provisioning.dashboard"),
- ctx: ctx,
- }
- return d, d.Init(ctx)
- }
- func (provider *DashboardProvisioner) Init(ctx context.Context) error {
- cfgs, err := provider.cfgReader.readConfig()
- if err != nil {
- return err
- }
- for _, cfg := range cfgs {
- switch cfg.Type {
- case "file":
- fileReader, err := NewDashboardFilereader(cfg, provider.log.New("type", cfg.Type, "name", cfg.Name))
- if err != nil {
- return err
- }
- go fileReader.ReadAndListen(ctx)
- default:
- return fmt.Errorf("type %s is not supported", cfg.Type)
- }
- }
- return nil
- }
|