Chore: expose grpc server address (#56013)

This commit is contained in:
Artur Wierzbicki 2022-09-29 16:42:01 +04:00 committed by GitHub
parent 1e8f8dff4b
commit 64eff8196c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 5 deletions

View File

@ -1,16 +1,18 @@
package server
import (
"github.com/grafana/grafana/pkg/services/grpcserver"
"github.com/grafana/grafana/pkg/services/notifications"
"github.com/grafana/grafana/pkg/services/sqlstore"
)
func ProvideTestEnv(server *Server, store *sqlstore.SQLStore, ns *notifications.NotificationServiceMock) (*TestEnv, error) {
return &TestEnv{server, store, ns}, nil
func ProvideTestEnv(server *Server, store *sqlstore.SQLStore, ns *notifications.NotificationServiceMock, grpcServer grpcserver.Provider) (*TestEnv, error) {
return &TestEnv{server, store, ns, grpcServer}, nil
}
type TestEnv struct {
Server *Server
SQLStore *sqlstore.SQLStore
NotificationService *notifications.NotificationServiceMock
GRPCServer grpcserver.Provider
}

View File

@ -21,12 +21,14 @@ import (
type Provider interface {
registry.BackgroundService
GetServer() *grpc.Server
GetAddress() string
}
type GPRCServerService struct {
cfg *setting.Cfg
logger log.Logger
server *grpc.Server
cfg *setting.Cfg
logger log.Logger
server *grpc.Server
address string
}
func ProvideService(cfg *setting.Cfg, apiKey apikey.Service, userService user.Service) (Provider, error) {
@ -62,6 +64,8 @@ func (s *GPRCServerService) Run(ctx context.Context) error {
return fmt.Errorf("GRPC server: failed to listen: %w", err)
}
s.address = listener.Addr().String()
serveErr := make(chan error, 1)
go func() {
s.logger.Info("GRPC server: starting")
@ -93,3 +97,7 @@ func (s *GPRCServerService) IsDisabled() bool {
func (s *GPRCServerService) GetServer() *grpc.Server {
return s.server
}
func (s *GPRCServerService) GetAddress() string {
return s.address
}

View File

@ -311,6 +311,12 @@ func CreateGrafDir(t *testing.T, opts ...GrafanaOpts) (string, string) {
_, err = logSection.NewKey("enabled", "false")
require.NoError(t, err)
}
if o.GRPCServerAddress != "" {
logSection, err := getOrCreateSection("grpc_server")
require.NoError(t, err)
_, err = logSection.NewKey("address", o.GRPCServerAddress)
require.NoError(t, err)
}
}
cfgPath := filepath.Join(cfgDir, "test.ini")
@ -341,4 +347,5 @@ type GrafanaOpts struct {
EnableUnifiedAlerting bool
UnifiedAlertingDisabledOrgs []int64
EnableLog bool
GRPCServerAddress string
}