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:
authorJacob Vosmaer <jacob@gitlab.com>2019-10-15 13:54:28 +0300
committerJacob Vosmaer <jacob@gitlab.com>2019-10-15 13:54:28 +0300
commitabec38c29d2a67bf6f16def8c3456c22593cd3d6 (patch)
tree9d70a25141753a9e07d433016efb0e668d53cf9c
parent1094a6e37497fcf16cfb4049a9939d0b928c75e0 (diff)
parent63ff8b330016f4a89ba445b52e70e811158b42cb (diff)
Merge branch 'jc-fix-consolidated-server-info' into 'master'
Fix praefect server info to include git version, server version Closes #2083 See merge request gitlab-org/gitaly!1550
-rw-r--r--changelogs/unreleased/jc-fix-consolidated-server-info.yml5
-rw-r--r--internal/praefect/server_test.go7
-rw-r--r--internal/praefect/service/server/info.go9
3 files changed, 21 insertions, 0 deletions
diff --git a/changelogs/unreleased/jc-fix-consolidated-server-info.yml b/changelogs/unreleased/jc-fix-consolidated-server-info.yml
new file mode 100644
index 000000000..6851be625
--- /dev/null
+++ b/changelogs/unreleased/jc-fix-consolidated-server-info.yml
@@ -0,0 +1,5 @@
+---
+title: Fix praefect server info to include git version, server version
+merge_request: 1550
+author:
+type: fixed
diff --git a/internal/praefect/server_test.go b/internal/praefect/server_test.go
index 6586a8eae..df0529166 100644
--- a/internal/praefect/server_test.go
+++ b/internal/praefect/server_test.go
@@ -11,6 +11,7 @@ import (
"github.com/stretchr/testify/require"
"gitlab.com/gitlab-org/gitaly/client"
internalauth "gitlab.com/gitlab-org/gitaly/internal/auth"
+ "gitlab.com/gitlab-org/gitaly/internal/git"
"gitlab.com/gitlab-org/gitaly/internal/log"
"gitlab.com/gitlab-org/gitaly/internal/praefect/config"
"gitlab.com/gitlab-org/gitaly/internal/praefect/conn"
@@ -21,6 +22,7 @@ import (
"gitlab.com/gitlab-org/gitaly/internal/server/auth"
gitalyserver "gitlab.com/gitlab-org/gitaly/internal/service/server"
"gitlab.com/gitlab-org/gitaly/internal/testhelper"
+ "gitlab.com/gitlab-org/gitaly/internal/version"
"gitlab.com/gitlab-org/gitaly/proto/go/gitalypb"
"google.golang.org/grpc"
"google.golang.org/grpc/codes"
@@ -168,6 +170,11 @@ func TestGitalyServerInfo(t *testing.T) {
metadata, err := client.ServerInfo(ctx, &gitalypb.ServerInfoRequest{})
require.NoError(t, err)
require.Len(t, metadata.GetStorageStatuses(), len(conf.Nodes))
+ require.Equal(t, version.GetVersion(), metadata.GetServerVersion())
+
+ gitVersion, err := git.Version()
+ require.NoError(t, err)
+ require.Equal(t, gitVersion, metadata.GetGitVersion())
for _, storageStatus := range metadata.GetStorageStatuses() {
require.NotNil(t, storageStatus, "none of the storage statuses should be nil")
diff --git a/internal/praefect/service/server/info.go b/internal/praefect/service/server/info.go
index db01acf4f..9647af4db 100644
--- a/internal/praefect/service/server/info.go
+++ b/internal/praefect/service/server/info.go
@@ -16,10 +16,13 @@ func (s *Server) ServerInfo(ctx context.Context, in *gitalypb.ServerInfoRequest)
storageStatuses := make([][]*gitalypb.ServerInfoResponse_StorageStatus, len(s.conf.Nodes))
+ var gitVersion, serverVersion string
+
g, ctx := errgroup.WithContext(ctx)
for i, node := range s.conf.Nodes {
i := i // necessary since it will be used in a goroutine below
+ node := node
cc, err := s.clientCC.GetConnection(node.Storage)
if err != nil {
return nil, helper.ErrInternalf("error getting client connection for %s: %v", node.Storage, err)
@@ -33,6 +36,10 @@ func (s *Server) ServerInfo(ctx context.Context, in *gitalypb.ServerInfoRequest)
storageStatuses[i] = resp.GetStorageStatuses()
+ if node.DefaultPrimary {
+ gitVersion, serverVersion = resp.GetGitVersion(), resp.GetServerVersion()
+ }
+
return nil
})
}
@@ -47,5 +54,7 @@ func (s *Server) ServerInfo(ctx context.Context, in *gitalypb.ServerInfoRequest)
response.StorageStatuses = append(response.StorageStatuses, storageStatus...)
}
+ response.GitVersion, response.ServerVersion = gitVersion, serverVersion
+
return &response, nil
}