浏览代码

provisioning: handle nil configs

bergquist 7 年之前
父节点
当前提交
165304a342

+ 4 - 0
pkg/services/provisioning/datasources/config_reader.go

@@ -57,6 +57,10 @@ func (cr *configReader) parseDatasourceConfig(path string, file os.FileInfo) (*D
 		return nil, err
 	}
 
+	if apiVersion == nil {
+		apiVersion = &ConfigVersion{ApiVersion: 0}
+	}
+
 	if apiVersion.ApiVersion > 0 {
 		var v1 *DatasourcesAsConfigV1
 		err = yaml.Unmarshal(yamlFile, &v1)

+ 8 - 0
pkg/services/provisioning/datasources/types.go

@@ -111,6 +111,10 @@ func (cfg *DatasourcesAsConfigV1) mapToDatasourceFromConfig(apiVersion int64) *D
 
 	r.ApiVersion = apiVersion
 
+	if cfg == nil {
+		return r
+	}
+
 	for _, ds := range cfg.Datasources {
 		r.Datasources = append(r.Datasources, &DataSourceFromConfig{
 			OrgId:             ds.OrgId,
@@ -148,6 +152,10 @@ func (cfg *DatasourcesAsConfigV0) mapToDatasourceFromConfig(apiVersion int64) *D
 
 	r.ApiVersion = apiVersion
 
+	if cfg == nil {
+		return r
+	}
+
 	for _, ds := range cfg.Datasources {
 		r.Datasources = append(r.Datasources, &DataSourceFromConfig{
 			OrgId:             ds.OrgId,