@ -105,6 +105,27 @@ func (fr *fileReader) startWalkingDisk() error {
return err
}
fr . deleteDashboardIfFileIsMissing ( provisionedDashboardRefs , filesFoundOnDisk )
sanityChecker := newProvisioningSanityChecker ( fr . Cfg . Name )
// save dashboards based on json files
for path , fileInfo := range filesFoundOnDisk {
provisioningMetadata , err := fr . saveDashboard ( path , folderId , fileInfo , provisionedDashboardRefs )
sanityChecker . track ( provisioningMetadata )
if err != nil {
fr . log . Error ( "failed to save dashboard" , "error" , err )
}
}
sanityChecker . logWarnings ( fr . log )
return nil
}
func ( fr * fileReader ) deleteDashboardIfFileIsMissing ( provisionedDashboardRefs map [ string ] * models . DashboardProvisioning , filesFoundOnDisk map [ string ] os . FileInfo ) {
if fr . Cfg . DisableDeletion {
return
}
// find dashboards to delete since json file is missing
var dashboardToDelete [ ] int64
for path , provisioningData := range provisionedDashboardRefs {
@ -113,7 +134,6 @@ func (fr *fileReader) startWalkingDisk() error {
dashboardToDelete = append ( dashboardToDelete , provisioningData . DashboardId )
}
}
// delete dashboard that are missing json file
for _ , dashboardId := range dashboardToDelete {
fr . log . Debug ( "deleting provisioned dashboard. missing on disk" , "id" , dashboardId )
@ -123,20 +143,6 @@ func (fr *fileReader) startWalkingDisk() error {
fr . log . Error ( "failed to delete dashboard" , "id" , cmd . Id )
}
}
sanityChecker := newProvisioningSanityChecker ( fr . Cfg . Name )
// save dashboards based on json files
for path , fileInfo := range filesFoundOnDisk {
provisioningMetadata , err := fr . saveDashboard ( path , folderId , fileInfo , provisionedDashboardRefs )
sanityChecker . track ( provisioningMetadata )
if err != nil {
fr . log . Error ( "failed to save dashboard" , "error" , err )
}
}
sanityChecker . logWarnings ( fr . log )
return nil
}
func ( fr * fileReader ) saveDashboard ( path string , folderId int64 , fileInfo os . FileInfo , provisionedDashboardRefs map [ string ] * models . DashboardProvisioning ) ( provisioningMetadata , error ) {