diff options
author | Toon Claes <toon@gitlab.com> | 2021-04-20 12:34:08 +0300 |
---|---|---|
committer | Toon Claes <toon@gitlab.com> | 2021-04-20 12:34:08 +0300 |
commit | 88b95248f53231b8fc7f06070773df7dfb0ddcb7 (patch) | |
tree | 69482bd1ee1c2e362fa613843da41beb4bbab0eb | |
parent | bc425321d0f4493ff96538fc02ee341b2aa7c8d8 (diff) | |
parent | 9f3e9dbb0327dd3ac321ec37ba895a3fd4d43c94 (diff) |
Merge branch 'ps-gitaly-mtd' into 'master'
Fix creation of the gitaly server metadata
See merge request gitlab-org/gitaly!3367
5 files changed, 36 insertions, 9 deletions
diff --git a/internal/gitaly/service/conflicts/resolve_conflicts_test.go b/internal/gitaly/service/conflicts/resolve_conflicts_test.go index d2fe190e9..223cef81b 100644 --- a/internal/gitaly/service/conflicts/resolve_conflicts_test.go +++ b/internal/gitaly/service/conflicts/resolve_conflicts_test.go @@ -82,7 +82,7 @@ func testSuccessfulResolveConflictsRequestFeatured(t *testing.T, ctx context.Con repo := localrepo.New(git.NewExecCommandFactory(cfg), repoProto, cfg) - mdGS := testhelper.GitalyServersMetadata(t, cfg.SocketPath) + mdGS := testhelper.GitalyServersMetadataFromCfg(t, cfg) mdFF, _ := metadata.FromOutgoingContext(ctx) ctx = metadata.NewOutgoingContext(ctx, metadata.Join(mdGS, mdFF)) @@ -211,7 +211,7 @@ func testResolveConflictsNonOIDRequests(t *testing.T, cfg config.Cfg, rubySrv *r func testResolveConflictsNonOIDRequestsFeatured(t *testing.T, ctx context.Context, cfg config.Cfg, rubySrv *rubyserver.Server) { cfg, repoProto, _, client := conflicts.SetupConflictsServiceWithRuby(t, cfg, rubySrv, true) - ctx = testhelper.MergeOutgoingMetadata(ctx, testhelper.GitalyServersMetadata(t, cfg.SocketPath)) + ctx = testhelper.MergeOutgoingMetadata(ctx, testhelper.GitalyServersMetadataFromCfg(t, cfg)) stream, err := client.ResolveConflicts(ctx) require.NoError(t, err) @@ -315,7 +315,7 @@ func testResolveConflictsIdenticalContentFeatured(t *testing.T, ctx context.Cont }) require.NoError(t, err) - ctx = testhelper.MergeOutgoingMetadata(ctx, testhelper.GitalyServersMetadata(t, cfg.SocketPath)) + ctx = testhelper.MergeOutgoingMetadata(ctx, testhelper.GitalyServersMetadataFromCfg(t, cfg)) stream, err := client.ResolveConflicts(ctx) require.NoError(t, err) @@ -361,7 +361,7 @@ func testResolveConflictsStableIDFeatured(t *testing.T, ctx context.Context, cfg repo := localrepo.New(git.NewExecCommandFactory(cfg), repoProto, cfg) - md := testhelper.GitalyServersMetadata(t, cfg.SocketPath) + md := testhelper.GitalyServersMetadataFromCfg(t, cfg) ctx = testhelper.MergeOutgoingMetadata(ctx, md) stream, err := client.ResolveConflicts(ctx) @@ -433,7 +433,7 @@ func testFailedResolveConflictsRequestDueToResolutionError(t *testing.T, cfg con func testFailedResolveConflictsRequestDueToResolutionErrorFeatured(t *testing.T, ctx context.Context, cfg config.Cfg, rubySrv *rubyserver.Server) { cfg, repo, _, client := conflicts.SetupConflictsServiceWithRuby(t, cfg, rubySrv, true) - mdGS := testhelper.GitalyServersMetadata(t, cfg.SocketPath) + mdGS := testhelper.GitalyServersMetadataFromCfg(t, cfg) mdFF, _ := metadata.FromOutgoingContext(ctx) ctx = metadata.NewOutgoingContext(ctx, metadata.Join(mdGS, mdFF)) @@ -495,7 +495,7 @@ func testFailedResolveConflictsRequestDueToValidation(t *testing.T, cfg config.C func testFailedResolveConflictsRequestDueToValidationFeatured(t *testing.T, ctx context.Context, cfg config.Cfg, rubySrv *rubyserver.Server) { cfg, repo, _, client := conflicts.SetupConflictsServiceWithRuby(t, cfg, rubySrv, true) - mdGS := testhelper.GitalyServersMetadata(t, cfg.SocketPath) + mdGS := testhelper.GitalyServersMetadataFromCfg(t, cfg) ourCommitOid := "1450cd639e0bc6721eb02800169e464f212cde06" theirCommitOid := "824be604a34828eb682305f0d963056cfac87b2d" commitMsg := []byte(conflictResolutionCommitMessage) diff --git a/internal/gitaly/service/operations/commit_files_test.go b/internal/gitaly/service/operations/commit_files_test.go index 61cd00faa..c769d7460 100644 --- a/internal/gitaly/service/operations/commit_files_test.go +++ b/internal/gitaly/service/operations/commit_files_test.go @@ -945,7 +945,7 @@ func TestUserCommitFilesStableCommitID(t *testing.T) { defer cleanup() repo := localrepo.New(git.NewExecCommandFactory(cfg), repoProto, cfg) - for key, values := range testhelper.GitalyServersMetadata(t, cfg.SocketPath) { + for key, values := range testhelper.GitalyServersMetadataFromCfg(t, cfg) { for _, value := range values { ctx = metadata.AppendToOutgoingContext(ctx, key, value) } diff --git a/internal/gitaly/service/operations/testhelper_test.go b/internal/gitaly/service/operations/testhelper_test.go index 94bf6afc1..9333823ac 100644 --- a/internal/gitaly/service/operations/testhelper_test.go +++ b/internal/gitaly/service/operations/testhelper_test.go @@ -162,7 +162,7 @@ func setupOperationsServiceWithRuby( client, conn := newOperationClient(t, serverSocketPath) t.Cleanup(func() { conn.Close() }) - md := testhelper.GitalyServersMetadata(t, cfg.SocketPath) + md := testhelper.GitalyServersMetadataFromCfg(t, cfg) ctx = testhelper.MergeOutgoingMetadata(ctx, md) return ctx, cfg, repo, repoPath, client diff --git a/internal/gitaly/service/remote/fetch_internal_remote_test.go b/internal/gitaly/service/remote/fetch_internal_remote_test.go index 0c34b1564..1f7847914 100644 --- a/internal/gitaly/service/remote/fetch_internal_remote_test.go +++ b/internal/gitaly/service/remote/fetch_internal_remote_test.go @@ -222,7 +222,7 @@ func TestFailedFetchInternalRemote(t *testing.T) { ctx, cancel := testhelper.Context() defer cancel() - md := testhelper.GitalyServersMetadata(t, cfg.SocketPath) + md := testhelper.GitalyServersMetadataFromCfg(t, cfg) ctx = metadata.NewOutgoingContext(ctx, md) // Non-existing remote repo diff --git a/internal/testhelper/testhelper.go b/internal/testhelper/testhelper.go index 7bb67e36f..cb576d678 100644 --- a/internal/testhelper/testhelper.go +++ b/internal/testhelper/testhelper.go @@ -92,6 +92,33 @@ func GitalyServersMetadata(t testing.TB, serverSocketPath string) metadata.MD { return metadata.Pairs("gitaly-servers", base64.StdEncoding.EncodeToString(gitalyServersJSON)) } +// GitalyServersMetadataFromCfg returns a metadata pair for gitaly-servers to be used in +// inter-gitaly operations. +func GitalyServersMetadataFromCfg(t testing.TB, cfg config.Cfg) metadata.MD { + gitalyServers := storage.GitalyServers{} +storages: + for _, s := range cfg.Storages { + // It picks up the first address configured: TLS, TCP or UNIX. + for _, addr := range []string{cfg.TLSListenAddr, cfg.ListenAddr, cfg.SocketPath} { + if addr != "" { + gitalyServers[s.Name] = storage.ServerInfo{ + Address: addr, + Token: cfg.Auth.Token, + } + continue storages + } + } + require.FailNow(t, "no address found on the config") + } + + gitalyServersJSON, err := json.Marshal(gitalyServers) + if err != nil { + t.Fatal(err) + } + + return metadata.Pairs("gitaly-servers", base64.StdEncoding.EncodeToString(gitalyServersJSON)) +} + // MustRunCommand runs a command with an optional standard input and returns the standard output, or fails. func MustRunCommand(t testing.TB, stdin io.Reader, name string, args ...string) []byte { if t != nil { |