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 {
|
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 (
|
var (
|
||||||
isExist bool
|
isExist bool
|
||||||
err error
|
err error
|
||||||
|
@ -368,6 +368,35 @@ func TestIntegrationAnnotations(t *testing.T) {
|
|||||||
assert.Greater(t, items[0].Updated, items[0].Created)
|
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) {
|
t.Run("Can update annotations with data", func(t *testing.T) {
|
||||||
query := &annotations.ItemQuery{
|
query := &annotations.ItemQuery{
|
||||||
OrgID: 1,
|
OrgID: 1,
|
||||||
|
Loading…
Reference in New Issue
Block a user