|
|
@@ -78,6 +78,7 @@ func (fr *fileReader) ReadAndListen(ctx context.Context) error {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+// startWalkingDisk finds and saves dashboards on disk.
|
|
|
func (fr *fileReader) startWalkingDisk() error {
|
|
|
resolvedPath := fr.resolvePath(fr.Path)
|
|
|
if _, err := os.Stat(resolvedPath); err != nil {
|
|
|
@@ -119,6 +120,7 @@ func (fr *fileReader) startWalkingDisk() error {
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
+// handleMissingDashboardFiles will unprovision or delete dashboards which are missing on disk.
|
|
|
func (fr *fileReader) handleMissingDashboardFiles(provisionedDashboardRefs map[string]*models.DashboardProvisioning, filesFoundOnDisk map[string]os.FileInfo) {
|
|
|
// find dashboards to delete since json file is missing
|
|
|
var dashboardToDelete []int64
|
|
|
@@ -151,6 +153,7 @@ func (fr *fileReader) handleMissingDashboardFiles(provisionedDashboardRefs map[s
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+// saveDashboard saves or updates the dashboard provisioning file at path.
|
|
|
func (fr *fileReader) saveDashboard(path string, folderId int64, fileInfo os.FileInfo, provisionedDashboardRefs map[string]*models.DashboardProvisioning) (provisioningMetadata, error) {
|
|
|
provisioningMetadata := provisioningMetadata{}
|
|
|
resolvedFileInfo, err := resolveSymlink(fileInfo, path)
|
|
|
@@ -189,7 +192,7 @@ func (fr *fileReader) saveDashboard(path string, folderId int64, fileInfo os.Fil
|
|
|
dash.Dashboard.SetId(provisionedData.DashboardId)
|
|
|
}
|
|
|
|
|
|
- fr.log.Debug("saving new dashboard", "provisoner", fr.Cfg.Name, "file", path, "folderId", dash.Dashboard.FolderId)
|
|
|
+ fr.log.Debug("saving new dashboard", "provisioner", fr.Cfg.Name, "file", path, "folderId", dash.Dashboard.FolderId)
|
|
|
dp := &models.DashboardProvisioning{
|
|
|
ExternalId: path,
|
|
|
Name: fr.Cfg.Name,
|
|
|
@@ -234,6 +237,8 @@ func getOrCreateFolderId(cfg *DashboardsAsConfig, service dashboards.DashboardPr
|
|
|
dash.Dashboard.IsFolder = true
|
|
|
dash.Overwrite = true
|
|
|
dash.OrgId = cfg.OrgId
|
|
|
+ // set dashboard folderUid if given
|
|
|
+ dash.Dashboard.SetUid(cfg.FolderUid)
|
|
|
dbDash, err := service.SaveFolderForProvisionedDashboards(dash)
|
|
|
if err != nil {
|
|
|
return 0, err
|