mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Annotations: Fix database lock while updating annotations (#71199)
This commit is contained in:
parent
217265baee
commit
56f52dc97e
@ -143,7 +143,13 @@ func (r *xormRepositoryImpl) synchronizeTags(ctx context.Context, item *annotati
|
||||
}
|
||||
|
||||
func (r *xormRepositoryImpl) Update(ctx context.Context, item *annotations.Item) error {
|
||||
return r.db.WithTransactionalDbSession(ctx, func(sess *db.Session) error {
|
||||
return r.db.InTransaction(ctx, func(ctx context.Context) error {
|
||||
return r.update(ctx, item)
|
||||
})
|
||||
}
|
||||
|
||||
func (r *xormRepositoryImpl) update(ctx context.Context, item *annotations.Item) error {
|
||||
return r.db.WithDbSession(ctx, func(sess *db.Session) error {
|
||||
var (
|
||||
isExist bool
|
||||
err error
|
||||
|
@ -368,6 +368,35 @@ func TestIntegrationAnnotations(t *testing.T) {
|
||||
assert.Greater(t, items[0].Updated, items[0].Created)
|
||||
})
|
||||
|
||||
t.Run("Can update annotation with additional tags", func(t *testing.T) {
|
||||
query := &annotations.ItemQuery{
|
||||
OrgID: 1,
|
||||
DashboardID: 1,
|
||||
From: 0,
|
||||
To: 15,
|
||||
SignedInUser: testUser,
|
||||
}
|
||||
items, err := repo.Get(context.Background(), query)
|
||||
require.NoError(t, err)
|
||||
|
||||
annotationId := items[0].ID
|
||||
err = repo.Update(context.Background(), &annotations.Item{
|
||||
ID: annotationId,
|
||||
OrgID: 1,
|
||||
Text: "something new",
|
||||
Tags: []string{"newtag1", "newtag3"},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
|
||||
items, err = repo.Get(context.Background(), query)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, annotationId, items[0].ID)
|
||||
assert.Equal(t, []string{"newtag1", "newtag3"}, items[0].Tags)
|
||||
assert.Equal(t, "something new", items[0].Text)
|
||||
assert.Greater(t, items[0].Updated, items[0].Created)
|
||||
})
|
||||
|
||||
t.Run("Can update annotations with data", func(t *testing.T) {
|
||||
query := &annotations.ItemQuery{
|
||||
OrgID: 1,
|
||||
|
Loading…
Reference in New Issue
Block a user