mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Add event after datasource create (#38467)
* Add event after datasource create
This commit is contained in:
committed by
GitHub
parent
1ced2bc6df
commit
785072086c
@@ -54,3 +54,11 @@ type DataSourceDeleted struct {
|
||||
UID string `json:"uid"`
|
||||
OrgID int64 `json:"org_id"`
|
||||
}
|
||||
|
||||
type DataSourceCreated struct {
|
||||
Timestamp time.Time `json:"timestamp"`
|
||||
Name string `json:"name"`
|
||||
ID int64 `json:"id"`
|
||||
UID string `json:"uid"`
|
||||
OrgID int64 `json:"org_id"`
|
||||
}
|
||||
|
@@ -214,6 +214,14 @@ func AddDataSource(cmd *models.AddDataSourceCommand) error {
|
||||
}
|
||||
|
||||
cmd.Result = ds
|
||||
|
||||
sess.publishAfterCommit(&events.DataSourceCreated{
|
||||
Timestamp: time.Now(),
|
||||
Name: cmd.Name,
|
||||
ID: ds.Id,
|
||||
UID: cmd.Uid,
|
||||
OrgID: cmd.OrgId,
|
||||
})
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
@@ -90,6 +90,33 @@ func TestDataAccess(t *testing.T) {
|
||||
require.Error(t, err)
|
||||
require.IsType(t, models.ErrDataSourceUidExists, err)
|
||||
})
|
||||
|
||||
t.Run("fires an event when the datasource is added", func(t *testing.T) {
|
||||
InitTestDB(t)
|
||||
|
||||
var created *events.DataSourceCreated
|
||||
bus.AddEventListener(func(e *events.DataSourceCreated) error {
|
||||
created = e
|
||||
return nil
|
||||
})
|
||||
|
||||
err := AddDataSource(&defaultAddDatasourceCommand)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Eventually(t, func() bool {
|
||||
return assert.NotNil(t, created)
|
||||
}, time.Second, time.Millisecond)
|
||||
|
||||
query := models.GetDataSourcesQuery{OrgId: 10}
|
||||
err = GetDataSources(&query)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 1, len(query.Result))
|
||||
|
||||
require.Equal(t, query.Result[0].Id, created.ID)
|
||||
require.Equal(t, query.Result[0].Uid, created.UID)
|
||||
require.Equal(t, int64(10), created.OrgID)
|
||||
require.Equal(t, "nisse", created.Name)
|
||||
})
|
||||
})
|
||||
|
||||
t.Run("UpdateDataSource", func(t *testing.T) {
|
||||
|
Reference in New Issue
Block a user