85b965cbec
* object extractors * update bluge to use summary values * gosec * move to store/object package * references * references * references * same thign but with protobuf * now the service * now with summary * now with summary * from protobuf * from protobuf * cleanup * remove hand crafted file * update proto definitions * update comments * remove properties * remove properties * re-generate * add batch * move ref to raw struct * GRPC test infra * fix merge * add delete * lint * rename to dummyobjectserver * update comment * refactor collection, simplify dummy server * update * refactor test structure * more tests * more tests * replace collection with infra/persistentcollection * skip if not integration test suite * very important lint fix Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
72 lines
1.9 KiB
Go
72 lines
1.9 KiB
Go
package object_server_tests
|
|
|
|
import (
|
|
"testing"
|
|
|
|
apikeygenprefix "github.com/grafana/grafana/pkg/components/apikeygenprefixed"
|
|
"github.com/grafana/grafana/pkg/server"
|
|
"github.com/grafana/grafana/pkg/services/org"
|
|
saAPI "github.com/grafana/grafana/pkg/services/serviceaccounts/api"
|
|
saTests "github.com/grafana/grafana/pkg/services/serviceaccounts/tests"
|
|
"github.com/grafana/grafana/pkg/services/store/object"
|
|
"github.com/grafana/grafana/pkg/tests/testinfra"
|
|
"github.com/stretchr/testify/require"
|
|
"google.golang.org/grpc"
|
|
"google.golang.org/grpc/credentials/insecure"
|
|
)
|
|
|
|
func createServiceAccountAdminToken(t *testing.T, env *server.TestEnv) string {
|
|
t.Helper()
|
|
|
|
account := saTests.SetupUserServiceAccount(t, env.SQLStore, saTests.TestUser{
|
|
Name: "grpc-server-sa",
|
|
Role: string(org.RoleAdmin),
|
|
Login: "grpc-server-sa",
|
|
IsServiceAccount: true,
|
|
OrgID: 1,
|
|
})
|
|
|
|
keyGen, err := apikeygenprefix.New(saAPI.ServiceID)
|
|
require.NoError(t, err)
|
|
|
|
_ = saTests.SetupApiKey(t, env.SQLStore, saTests.TestApiKey{
|
|
Name: "grpc-server-test",
|
|
Role: org.RoleAdmin,
|
|
OrgId: account.OrgID,
|
|
Key: keyGen.HashedKey,
|
|
ServiceAccountID: &account.ID,
|
|
})
|
|
|
|
return keyGen.ClientSecret
|
|
}
|
|
|
|
type testContext struct {
|
|
authToken string
|
|
client object.ObjectStoreClient
|
|
}
|
|
|
|
func createTestContext(t *testing.T) testContext {
|
|
t.Helper()
|
|
|
|
dir, path := testinfra.CreateGrafDir(t, testinfra.GrafanaOpts{
|
|
EnableFeatureToggles: []string{"grpcServer"},
|
|
GRPCServerAddress: "127.0.0.1:0", // :0 for choosing the port automatically
|
|
})
|
|
_, env := testinfra.StartGrafanaEnv(t, dir, path)
|
|
|
|
authToken := createServiceAccountAdminToken(t, env)
|
|
|
|
conn, err := grpc.Dial(
|
|
env.GRPCServer.GetAddress(),
|
|
grpc.WithTransportCredentials(insecure.NewCredentials()),
|
|
)
|
|
require.NoError(t, err)
|
|
|
|
client := object.NewObjectStoreClient(conn)
|
|
|
|
return testContext{
|
|
authToken: authToken,
|
|
client: client,
|
|
}
|
|
}
|