diff --git a/pkg/services/provisioning/dashboards/config_reader.go b/pkg/services/provisioning/dashboards/config_reader.go index ee3cf2085b2..183c6e2adb2 100644 --- a/pkg/services/provisioning/dashboards/config_reader.go +++ b/pkg/services/provisioning/dashboards/config_reader.go @@ -2,6 +2,7 @@ package dashboards import ( "io/ioutil" + "os" "path/filepath" "strings" @@ -14,7 +15,13 @@ type configReader struct { log log.Logger } -func parseConfigs(yamlFile []byte) ([]*DashboardsAsConfig, error) { +func (cr *configReader) parseConfigs(file os.FileInfo) ([]*DashboardsAsConfig, error) { + filename, _ := filepath.Abs(filepath.Join(cr.path, file.Name())) + yamlFile, err := ioutil.ReadFile(filename) + if err != nil { + return nil, err + } + apiVersion := &ConfigVersion{ApiVersion: 0} yaml.Unmarshal(yamlFile, &apiVersion) @@ -38,6 +45,7 @@ func parseConfigs(yamlFile []byte) ([]*DashboardsAsConfig, error) { } if v0 != nil { + cr.log.Warn("[Deprecated] the dashboard provisioning config is outdated. please upgrade", "filename", filename) return convertv0ToDashboardAsConfig(v0), nil } } @@ -49,7 +57,6 @@ func (cr *configReader) readConfig() ([]*DashboardsAsConfig, error) { var dashboards []*DashboardsAsConfig files, err := ioutil.ReadDir(cr.path) - if err != nil { cr.log.Error("cant read dashboard provisioning files from directory", "path", cr.path) return dashboards, nil @@ -60,13 +67,7 @@ func (cr *configReader) readConfig() ([]*DashboardsAsConfig, error) { continue } - filename, _ := filepath.Abs(filepath.Join(cr.path, file.Name())) - yamlFile, err := ioutil.ReadFile(filename) - if err != nil { - return nil, err - } - - parsedDashboards, err := parseConfigs(yamlFile) + parsedDashboards, err := cr.parseConfigs(file) if err != nil { } diff --git a/pkg/services/provisioning/datasources/config_reader.go b/pkg/services/provisioning/datasources/config_reader.go index 434b487bd2d..de1aec74b22 100644 --- a/pkg/services/provisioning/datasources/config_reader.go +++ b/pkg/services/provisioning/datasources/config_reader.go @@ -2,6 +2,7 @@ package datasources import ( "io/ioutil" + "os" "path/filepath" "strings" @@ -24,13 +25,7 @@ func (cr *configReader) readConfig(path string) ([]*DatasourcesAsConfig, error) for _, file := range files { if strings.HasSuffix(file.Name(), ".yaml") || strings.HasSuffix(file.Name(), ".yml") { - filename, _ := filepath.Abs(filepath.Join(path, file.Name())) - yamlFile, err := ioutil.ReadFile(filename) - if err != nil { - return nil, err - } - - datasource, err := parseDatasourceConfig(yamlFile) + datasource, err := cr.parseDatasourceConfig(path, file) if err != nil { return nil, err } @@ -49,7 +44,13 @@ func (cr *configReader) readConfig(path string) ([]*DatasourcesAsConfig, error) return datasources, nil } -func parseDatasourceConfig(yamlFile []byte) (*DatasourcesAsConfig, error) { +func (cr *configReader) parseDatasourceConfig(path string, file os.FileInfo) (*DatasourcesAsConfig, error) { + filename, _ := filepath.Abs(filepath.Join(path, file.Name())) + yamlFile, err := ioutil.ReadFile(filename) + if err != nil { + return nil, err + } + var apiVersion *ConfigVersion err := yaml.Unmarshal(yamlFile, &apiVersion) if err != nil { @@ -62,8 +63,8 @@ func parseDatasourceConfig(yamlFile []byte) (*DatasourcesAsConfig, error) { if err != nil { return nil, err } - return v1.mapToDatasourceFromConfig(apiVersion.ApiVersion), nil + return v1.mapToDatasourceFromConfig(apiVersion.ApiVersion), nil } var v0 *DatasourcesAsConfigV0 @@ -71,6 +72,9 @@ func parseDatasourceConfig(yamlFile []byte) (*DatasourcesAsConfig, error) { if err != nil { return nil, err } + + cr.log.Warn("[Deprecated] the datasource provisioning config is outdated. please upgrade", "filename", filename) + return v0.mapToDatasourceFromConfig(apiVersion.ApiVersion), nil }