Unified/Blob: Allow direct access to UIDs (#101339)
This commit is contained in:
@@ -6,6 +6,7 @@ import (
|
||||
"encoding/hex"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
"github.com/google/uuid"
|
||||
|
||||
@@ -57,6 +58,7 @@ func (b *backend) PutResourceBlob(ctx context.Context, req *resource.PutBlobRequ
|
||||
err = b.db.WithTx(ctx, ReadCommitted, func(ctx context.Context, tx db.Tx) error {
|
||||
_, err := dbutil.Exec(ctx, tx, sqlResourceBlobInsert, sqlResourceBlobInsertRequest{
|
||||
SQLTemplate: sqltemplate.New(b.dialect),
|
||||
Now: time.Now(),
|
||||
Info: info,
|
||||
Key: req.Resource,
|
||||
ContentType: req.ContentType,
|
||||
@@ -83,6 +85,12 @@ func (b *backend) GetResourceBlob(ctx context.Context, key *resource.ResourceKey
|
||||
ctx, span := b.tracer.Start(ctx, tracePrefix+"GetResourceBlob")
|
||||
defer span.End()
|
||||
|
||||
if info == nil {
|
||||
return &resource.GetBlobResponse{
|
||||
Error: resource.NewBadRequestError("missing blob info"),
|
||||
}, nil
|
||||
}
|
||||
|
||||
rsp := &resource.GetBlobResponse{}
|
||||
err := b.db.WithTx(ctx, ReadCommitted, func(ctx context.Context, tx db.Tx) error {
|
||||
rows, err := dbutil.QueryRows(ctx, tx, sqlResourceBlobQuery, sqlResourceBlobQueryRequest{
|
||||
|
||||
@@ -31,39 +31,43 @@ func TestMain(m *testing.M) {
|
||||
|
||||
// TestStorageBackend is a test for the StorageBackend interface.
|
||||
func TestIntegrationSQLStorageBackend(t *testing.T) {
|
||||
unitest.RunStorageBackendTest(t, func(ctx context.Context) resource.StorageBackend {
|
||||
dbstore := infraDB.InitTestDB(t)
|
||||
eDB, err := dbimpl.ProvideResourceDB(dbstore, setting.NewCfg(), nil)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, eDB)
|
||||
t.Run("IsHA (polling notifier)", func(t *testing.T) {
|
||||
unitest.RunStorageBackendTest(t, func(ctx context.Context) resource.StorageBackend {
|
||||
dbstore := infraDB.InitTestDB(t)
|
||||
eDB, err := dbimpl.ProvideResourceDB(dbstore, setting.NewCfg(), nil)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, eDB)
|
||||
|
||||
backend, err := sql.NewBackend(sql.BackendOptions{
|
||||
DBProvider: eDB,
|
||||
IsHA: true,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, backend)
|
||||
err = backend.Init(testutil.NewDefaultTestContext(t))
|
||||
require.NoError(t, err)
|
||||
return backend
|
||||
}, nil)
|
||||
// Run single instance tests with in-process notifier.
|
||||
unitest.RunStorageBackendTest(t, func(ctx context.Context) resource.StorageBackend {
|
||||
dbstore := infraDB.InitTestDB(t)
|
||||
eDB, err := dbimpl.ProvideResourceDB(dbstore, setting.NewCfg(), nil)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, eDB)
|
||||
backend, err := sql.NewBackend(sql.BackendOptions{
|
||||
DBProvider: eDB,
|
||||
IsHA: true,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, backend)
|
||||
err = backend.Init(testutil.NewDefaultTestContext(t))
|
||||
require.NoError(t, err)
|
||||
return backend
|
||||
}, nil)
|
||||
})
|
||||
|
||||
backend, err := sql.NewBackend(sql.BackendOptions{
|
||||
DBProvider: eDB,
|
||||
IsHA: false,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, backend)
|
||||
err = backend.Init(testutil.NewDefaultTestContext(t))
|
||||
require.NoError(t, err)
|
||||
return backend
|
||||
}, nil)
|
||||
t.Run("NotHA (in process notifier)", func(t *testing.T) {
|
||||
unitest.RunStorageBackendTest(t, func(ctx context.Context) resource.StorageBackend {
|
||||
dbstore := infraDB.InitTestDB(t)
|
||||
eDB, err := dbimpl.ProvideResourceDB(dbstore, setting.NewCfg(), nil)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, eDB)
|
||||
|
||||
backend, err := sql.NewBackend(sql.BackendOptions{
|
||||
DBProvider: eDB,
|
||||
IsHA: false,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, backend)
|
||||
err = backend.Init(testutil.NewDefaultTestContext(t))
|
||||
require.NoError(t, err)
|
||||
return backend
|
||||
}, nil)
|
||||
})
|
||||
}
|
||||
|
||||
func TestClientServer(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user