Browse Source

dashboards: save provisioning meta data

bergquist 8 years ago
parent
commit
77a4ccb822

+ 0 - 1
pkg/models/dashboard_provisioning.go

@@ -1,2 +1 @@
 package models
-

+ 17 - 15
pkg/services/provisioning/dashboards/file_reader.go

@@ -25,12 +25,12 @@ var (
 )
 
 type fileReader struct {
-	Cfg                        *DashboardsAsConfig
-	Path                       string
-	log                        log.Logger
-	dashboardRepo              dashboards.Repository
-	cache                      *dashboardCache
-	createWalk                 func(fr *fileReader, folderId int64) filepath.WalkFunc
+	Cfg           *DashboardsAsConfig
+	Path          string
+	log           log.Logger
+	dashboardRepo dashboards.Repository
+	cache         *dashboardCache
+	createWalk    func(fr *fileReader, folderId int64) filepath.WalkFunc
 }
 
 func NewDashboardFileReader(cfg *DashboardsAsConfig, log log.Logger) (*fileReader, error) {
@@ -50,12 +50,12 @@ func NewDashboardFileReader(cfg *DashboardsAsConfig, log log.Logger) (*fileReade
 	}
 
 	return &fileReader{
-		Cfg:                        cfg,
-		Path:                       path,
-		log:                        log,
-		dashboardRepo:              dashboards.GetRepository(),
-		cache:      NewDashboardCache(),
-		createWalk: createWalkFn,
+		Cfg:           cfg,
+		Path:          path,
+		log:           log,
+		dashboardRepo: dashboards.GetRepository(),
+		cache:         NewDashboardCache(),
+		createWalk:    createWalkFn,
 	}, nil
 }
 
@@ -209,9 +209,11 @@ func createWalkFn(fr *fileReader, folderId int64) filepath.WalkFunc {
 	}
 }
 func saveDashboard(fr *fileReader, path string, dash *dashboards.SaveDashboardDTO, modTime time.Time) error {
-	//dash.Extras["provisioning.filepath"] = path
-	_, err := fr.dashboardRepo.SaveDashboard(dash)
-
+	d := &models.DashboardProvisioning{
+		ExternalId: path,
+		Name:       fr.Cfg.Name,
+	}
+	_, err := fr.dashboardRepo.SaveProvisionedDashboard(dash, d)
 
 	return err
 }

+ 8 - 8
pkg/services/sqlstore/dashboard_provisioning.go

@@ -28,25 +28,25 @@ func SaveProvisionedDashboard(cmd *models.SaveProvisionedDashboardCommand) error
 		}
 
 		cmd.Result = cmd.DashboardCmd.Result
-		return saveProvionedData(sess, cmd.DashboardProvisioning)
+
+		return saveProvionedData(sess, cmd.DashboardProvisioning, cmd.Result)
 	})
 }
 
-func saveProvionedData(sess *DBSession, cmd *models.DashboardProvisioning) error {
-	results := &models.DashboardProvisioning{}
+func saveProvionedData(sess *DBSession, cmd *models.DashboardProvisioning, dashboard *models.Dashboard) error {
+	result := &models.DashboardProvisioning{}
 
-	exist, err := sess.Where("dashboard_id=?", cmd.DashboardId).Get(results)
+	exist, err := sess.Where("dashboard_id=?", dashboard.Id).Get(result)
 	if err != nil {
 		return err
 	}
 
-	cmd.Id = results.Id
+	cmd.Id = result.Id
 	cmd.Updated = time.Now()
+	cmd.DashboardId = dashboard.Id
 
-	println("exists", exist)
 	if exist {
-
-		_, err = sess.ID(results.Id).Update(cmd)
+		_, err = sess.ID(result.Id).Update(cmd)
 	} else {
 		_, err = sess.Insert(cmd)
 	}

+ 2 - 0
pkg/services/sqlstore/dashboard_provisioning_test.go

@@ -35,6 +35,7 @@ func TestDashboardProvisioningTest(t *testing.T) {
 			So(err, ShouldBeNil)
 			So(cmd.Result, ShouldNotBeNil)
 			So(cmd.Result.Id, ShouldNotEqual, 0)
+			dashId := cmd.Result.Id
 
 			Convey("Can query for provisioned dashboards", func() {
 				query := &models.GetProvisionedDashboardDataQuery{Name: "default"}
@@ -42,6 +43,7 @@ func TestDashboardProvisioningTest(t *testing.T) {
 				So(err, ShouldBeNil)
 
 				So(len(query.Result), ShouldEqual, 1)
+				So(query.Result[0].DashboardId, ShouldEqual, dashId)
 			})
 		})
 	})