diff options
author | Jacob Vosmaer <jacob@gitlab.com> | 2019-10-15 13:54:28 +0300 |
---|---|---|
committer | Jacob Vosmaer <jacob@gitlab.com> | 2019-10-15 13:54:28 +0300 |
commit | abec38c29d2a67bf6f16def8c3456c22593cd3d6 (patch) | |
tree | 9d70a25141753a9e07d433016efb0e668d53cf9c | |
parent | 1094a6e37497fcf16cfb4049a9939d0b928c75e0 (diff) | |
parent | 63ff8b330016f4a89ba445b52e70e811158b42cb (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.yml | 5 | ||||
-rw-r--r-- | internal/praefect/server_test.go | 7 | ||||
-rw-r--r-- | internal/praefect/service/server/info.go | 9 |
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 } |