Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorToon Claes <toon@gitlab.com>2021-04-20 12:34:08 +0300
committerToon Claes <toon@gitlab.com>2021-04-20 12:34:08 +0300
commit88b95248f53231b8fc7f06070773df7dfb0ddcb7 (patch)
tree69482bd1ee1c2e362fa613843da41beb4bbab0eb
parentbc425321d0f4493ff96538fc02ee341b2aa7c8d8 (diff)
parent9f3e9dbb0327dd3ac321ec37ba895a3fd4d43c94 (diff)
Merge branch 'ps-gitaly-mtd' into 'master'
Fix creation of the gitaly server metadata See merge request gitlab-org/gitaly!3367
-rw-r--r--internal/gitaly/service/conflicts/resolve_conflicts_test.go12
-rw-r--r--internal/gitaly/service/operations/commit_files_test.go2
-rw-r--r--internal/gitaly/service/operations/testhelper_test.go2
-rw-r--r--internal/gitaly/service/remote/fetch_internal_remote_test.go2
-rw-r--r--internal/testhelper/testhelper.go27
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 {