config_reader.go 921 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package dashboard
  2. import (
  3. "io/ioutil"
  4. "path/filepath"
  5. "strings"
  6. yaml "gopkg.in/yaml.v2"
  7. )
  8. type configReader struct {
  9. path string
  10. }
  11. func (cr *configReader) readConfig() ([]*DashboardsAsConfig, error) {
  12. files, err := ioutil.ReadDir(cr.path)
  13. if err != nil {
  14. return nil, err
  15. }
  16. var dashboards []*DashboardsAsConfig
  17. for _, file := range files {
  18. if !strings.HasSuffix(file.Name(), ".yaml") && !strings.HasSuffix(file.Name(), ".yml") {
  19. continue
  20. }
  21. filename, _ := filepath.Abs(filepath.Join(cr.path, file.Name()))
  22. yamlFile, err := ioutil.ReadFile(filename)
  23. if err != nil {
  24. return nil, err
  25. }
  26. var datasource []*DashboardsAsConfig
  27. err = yaml.Unmarshal(yamlFile, &datasource)
  28. if err != nil {
  29. return nil, err
  30. }
  31. dashboards = append(dashboards, datasource...)
  32. }
  33. for i := range dashboards {
  34. if dashboards[i].OrgId == 0 {
  35. dashboards[i].OrgId = 1
  36. }
  37. }
  38. return dashboards, nil
  39. }