From 84fea7c148cac1217ff4d32d01963040009320da Mon Sep 17 00:00:00 2001 From: bergquist Date: Fri, 9 Feb 2018 15:43:58 +0100 Subject: [PATCH] provisioning: dont return error unless you want to cancel all operations --- .../provisioning/dashboards/file_reader.go | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/pkg/services/provisioning/dashboards/file_reader.go b/pkg/services/provisioning/dashboards/file_reader.go index 082992c4b75..4193fc5fdc2 100644 --- a/pkg/services/provisioning/dashboards/file_reader.go +++ b/pkg/services/provisioning/dashboards/file_reader.go @@ -120,16 +120,15 @@ func (fr *fileReader) startWalkingDisk() error { cmd := &models.DeleteDashboardCommand{OrgId: fr.Cfg.OrgId, Id: dashboardId} err := bus.Dispatch(cmd) if err != nil { - return err + fr.log.Error("failed to delete dashboard", "id", cmd.Id) } } - // insert/update dashboards based on json files + // save dashboards based on json files for path, fileInfo := range filesFoundOnDisk { err = fr.saveDashboard(path, folderId, fileInfo, provisionedDashboardRefs) if err != nil { - fr.log.Error("Failed to save dashboard", "error", err) - return err + fr.log.Error("failed to save dashboard", "error", err) } } @@ -142,8 +141,8 @@ func (fr *fileReader) saveDashboard(path string, folderId int64, fileInfo os.Fil return err } - provisionedData, allReadyProvisioned := provisionedDashboardRefs[path] - if allReadyProvisioned && provisionedData.Updated.Unix() == resolvedFileInfo.ModTime().Unix() { + provisionedData, alreadyProvisioned := provisionedDashboardRefs[path] + if alreadyProvisioned && provisionedData.Updated.Unix() == resolvedFileInfo.ModTime().Unix() { return nil // dashboard is already in sync with the database } @@ -153,7 +152,12 @@ func (fr *fileReader) saveDashboard(path string, folderId int64, fileInfo os.Fil return nil } - if allReadyProvisioned { + if dash.Dashboard.Id != 0 { + fr.log.Error("provisioned dashboard json files cannot contain id") + return nil + } + + if alreadyProvisioned { dash.Dashboard.SetId(provisionedData.DashboardId) }