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 package server
import ( import (
"github.com/grafana/grafana/pkg/services/grpcserver"
"github.com/grafana/grafana/pkg/services/notifications" "github.com/grafana/grafana/pkg/services/notifications"
"github.com/grafana/grafana/pkg/services/sqlstore" "github.com/grafana/grafana/pkg/services/sqlstore"
) )
func ProvideTestEnv(server *Server, store *sqlstore.SQLStore, ns *notifications.NotificationServiceMock) (*TestEnv, error) { func ProvideTestEnv(server *Server, store *sqlstore.SQLStore, ns *notifications.NotificationServiceMock, grpcServer grpcserver.Provider) (*TestEnv, error) {
return &TestEnv{server, store, ns}, nil return &TestEnv{server, store, ns, grpcServer}, nil
} }
type TestEnv struct { type TestEnv struct {
Server *Server Server *Server
SQLStore *sqlstore.SQLStore SQLStore *sqlstore.SQLStore
NotificationService *notifications.NotificationServiceMock NotificationService *notifications.NotificationServiceMock
GRPCServer grpcserver.Provider
} }

View File

@ -21,12 +21,14 @@ import (
type Provider interface { type Provider interface {
registry.BackgroundService registry.BackgroundService
GetServer() *grpc.Server GetServer() *grpc.Server
GetAddress() string
} }
type GPRCServerService struct { type GPRCServerService struct {
cfg *setting.Cfg cfg *setting.Cfg
logger log.Logger logger log.Logger
server *grpc.Server server *grpc.Server
address string
} }
func ProvideService(cfg *setting.Cfg, apiKey apikey.Service, userService user.Service) (Provider, error) { 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) return fmt.Errorf("GRPC server: failed to listen: %w", err)
} }
s.address = listener.Addr().String()
serveErr := make(chan error, 1) serveErr := make(chan error, 1)
go func() { go func() {
s.logger.Info("GRPC server: starting") s.logger.Info("GRPC server: starting")
@ -93,3 +97,7 @@ func (s *GPRCServerService) IsDisabled() bool {
func (s *GPRCServerService) GetServer() *grpc.Server { func (s *GPRCServerService) GetServer() *grpc.Server {
return s.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") _, err = logSection.NewKey("enabled", "false")
require.NoError(t, err) 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") cfgPath := filepath.Join(cfgDir, "test.ini")
@ -341,4 +347,5 @@ type GrafanaOpts struct {
EnableUnifiedAlerting bool EnableUnifiedAlerting bool
UnifiedAlertingDisabledOrgs []int64 UnifiedAlertingDisabledOrgs []int64
EnableLog bool EnableLog bool
GRPCServerAddress string
} }