dashboards: save provisioning meta data

This commit is contained in:
bergquist 2018-01-23 20:22:04 +01:00
parent 67a9e6a71d
commit 77a4ccb822
4 changed files with 27 additions and 24 deletions

View File

@ -1,2 +1 @@
package models

View File

@ -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
}

View File

@ -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)
}

View File

@ -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)
})
})
})