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
path: root/cmd
diff options
context:
space:
mode:
authorPatrick Steinhardt <psteinhardt@gitlab.com>2023-09-06 15:44:10 +0300
committerPatrick Steinhardt <psteinhardt@gitlab.com>2023-09-07 09:34:57 +0300
commit1ea603e5db042d5dbc3d6b7a83b5934d2bfef86e (patch)
tree7fe9eeaa58797043178ef67fb0e4e2dbeea52bf4 /cmd
parent796b888a64dd5027301d3e3836e53caa7d185368 (diff)
cmd/gitaly-ssh: Convert to use internal `gitalyclient` package
Stop using the public `client` package in favor of our own internal `gitalyclient` package. This ensures we can continue to refactor our internal API without breaking dependents on our public API.
Diffstat (limited to 'cmd')
-rw-r--r--cmd/gitaly-ssh/main.go20
-rw-r--r--cmd/gitaly-ssh/main_test.go8
-rw-r--r--cmd/gitaly-ssh/receive_pack.go7
-rw-r--r--cmd/gitaly-ssh/upload_archive.go7
-rw-r--r--cmd/gitaly-ssh/upload_pack.go16
5 files changed, 33 insertions, 25 deletions
diff --git a/cmd/gitaly-ssh/main.go b/cmd/gitaly-ssh/main.go
index 121186378..5b1bf262f 100644
--- a/cmd/gitaly-ssh/main.go
+++ b/cmd/gitaly-ssh/main.go
@@ -9,15 +9,15 @@ import (
"github.com/sirupsen/logrus"
gitalyauth "gitlab.com/gitlab-org/gitaly/v16/auth"
- "gitlab.com/gitlab-org/gitaly/v16/client"
"gitlab.com/gitlab-org/gitaly/v16/internal/featureflag"
- internalclient "gitlab.com/gitlab-org/gitaly/v16/internal/grpc/client"
+ "gitlab.com/gitlab-org/gitaly/v16/internal/grpc/client"
+ "gitlab.com/gitlab-org/gitaly/v16/internal/grpc/sidechannel"
"gitlab.com/gitlab-org/gitaly/v16/internal/log"
"gitlab.com/gitlab-org/labkit/tracing"
"google.golang.org/grpc"
)
-type packFn func(context.Context, *grpc.ClientConn, *client.SidechannelRegistry, string) (int32, error)
+type packFn func(context.Context, *grpc.ClientConn, *sidechannel.Registry, string) (int32, error)
type gitalySSHCommand struct {
// The git packer that shall be executed. One of receivePack,
@@ -117,8 +117,8 @@ func (cmd gitalySSHCommand) run(logger logrus.FieldLogger) (int, error) {
}
}
- registry := client.NewSidechannelRegistry(logger)
- conn, err := getConnection(ctx, cmd.address, registry)
+ registry := sidechannel.NewRegistry()
+ conn, err := getConnection(ctx, cmd.address, registry, logger)
if err != nil {
return 1, err
}
@@ -132,25 +132,25 @@ func (cmd gitalySSHCommand) run(logger logrus.FieldLogger) (int, error) {
return int(code), nil
}
-func getConnection(ctx context.Context, url string, registry *client.SidechannelRegistry) (*grpc.ClientConn, error) {
+func getConnection(ctx context.Context, url string, registry *sidechannel.Registry, logger logrus.FieldLogger) (*grpc.ClientConn, error) {
if url == "" {
return nil, fmt.Errorf("gitaly address can not be empty")
}
if useSidechannel() {
- return client.DialSidechannel(ctx, url, registry, dialOpts())
+ return sidechannel.Dial(ctx, registry, logger, url, dialOpts())
}
- return client.DialContext(ctx, url, dialOpts())
+ return client.Dial(ctx, url, client.WithGrpcOptions(dialOpts()))
}
func dialOpts() []grpc.DialOption {
- connOpts := client.DefaultDialOpts
+ var connOpts []grpc.DialOption
if token := os.Getenv("GITALY_TOKEN"); token != "" {
connOpts = append(connOpts, grpc.WithPerRPCCredentials(gitalyauth.RPCCredentialsV2(token)))
}
- return append(connOpts, internalclient.UnaryInterceptor(), internalclient.StreamInterceptor())
+ return append(connOpts, client.UnaryInterceptor(), client.StreamInterceptor())
}
func useSidechannel() bool { return os.Getenv("GITALY_USE_SIDECHANNEL") == "1" }
diff --git a/cmd/gitaly-ssh/main_test.go b/cmd/gitaly-ssh/main_test.go
index 258509e9c..640b7e5e6 100644
--- a/cmd/gitaly-ssh/main_test.go
+++ b/cmd/gitaly-ssh/main_test.go
@@ -7,19 +7,19 @@ import (
"testing"
"github.com/stretchr/testify/assert"
- "gitlab.com/gitlab-org/gitaly/v16/client"
+ "gitlab.com/gitlab-org/gitaly/v16/internal/grpc/sidechannel"
"gitlab.com/gitlab-org/gitaly/v16/internal/testhelper"
"google.golang.org/grpc"
)
func TestRun(t *testing.T) {
- var successPacker packFn = func(context.Context, *grpc.ClientConn, *client.SidechannelRegistry, string) (int32, error) {
+ var successPacker packFn = func(context.Context, *grpc.ClientConn, *sidechannel.Registry, string) (int32, error) {
return 0, nil
}
- var exitCodePacker packFn = func(context.Context, *grpc.ClientConn, *client.SidechannelRegistry, string) (int32, error) {
+ var exitCodePacker packFn = func(context.Context, *grpc.ClientConn, *sidechannel.Registry, string) (int32, error) {
return 123, nil
}
- var errorPacker packFn = func(context.Context, *grpc.ClientConn, *client.SidechannelRegistry, string) (int32, error) {
+ var errorPacker packFn = func(context.Context, *grpc.ClientConn, *sidechannel.Registry, string) (int32, error) {
return 1, fmt.Errorf("fail")
}
diff --git a/cmd/gitaly-ssh/receive_pack.go b/cmd/gitaly-ssh/receive_pack.go
index f5cc8a51f..268e3d69f 100644
--- a/cmd/gitaly-ssh/receive_pack.go
+++ b/cmd/gitaly-ssh/receive_pack.go
@@ -5,13 +5,14 @@ import (
"fmt"
"os"
- "gitlab.com/gitlab-org/gitaly/v16/client"
+ "gitlab.com/gitlab-org/gitaly/v16/internal/gitaly/gitalyclient"
+ "gitlab.com/gitlab-org/gitaly/v16/internal/grpc/sidechannel"
"gitlab.com/gitlab-org/gitaly/v16/proto/go/gitalypb"
"google.golang.org/grpc"
"google.golang.org/protobuf/encoding/protojson"
)
-func receivePack(ctx context.Context, conn *grpc.ClientConn, registry *client.SidechannelRegistry, req string) (int32, error) {
+func receivePack(ctx context.Context, conn *grpc.ClientConn, registry *sidechannel.Registry, req string) (int32, error) {
var request gitalypb.SSHReceivePackRequest
if err := protojson.Unmarshal([]byte(req), &request); err != nil {
@@ -21,5 +22,5 @@ func receivePack(ctx context.Context, conn *grpc.ClientConn, registry *client.Si
ctx, cancel := context.WithCancel(ctx)
defer cancel()
- return client.ReceivePack(ctx, conn, os.Stdin, os.Stdout, os.Stderr, &request)
+ return gitalyclient.ReceivePack(ctx, conn, os.Stdin, os.Stdout, os.Stderr, &request)
}
diff --git a/cmd/gitaly-ssh/upload_archive.go b/cmd/gitaly-ssh/upload_archive.go
index de1d434f7..f92ffa965 100644
--- a/cmd/gitaly-ssh/upload_archive.go
+++ b/cmd/gitaly-ssh/upload_archive.go
@@ -5,13 +5,14 @@ import (
"fmt"
"os"
- "gitlab.com/gitlab-org/gitaly/v16/client"
+ "gitlab.com/gitlab-org/gitaly/v16/internal/gitaly/gitalyclient"
+ "gitlab.com/gitlab-org/gitaly/v16/internal/grpc/sidechannel"
"gitlab.com/gitlab-org/gitaly/v16/proto/go/gitalypb"
"google.golang.org/grpc"
"google.golang.org/protobuf/encoding/protojson"
)
-func uploadArchive(ctx context.Context, conn *grpc.ClientConn, registry *client.SidechannelRegistry, req string) (int32, error) {
+func uploadArchive(ctx context.Context, conn *grpc.ClientConn, registry *sidechannel.Registry, req string) (int32, error) {
var request gitalypb.SSHUploadArchiveRequest
if err := protojson.Unmarshal([]byte(req), &request); err != nil {
return 0, fmt.Errorf("json unmarshal: %w", err)
@@ -20,5 +21,5 @@ func uploadArchive(ctx context.Context, conn *grpc.ClientConn, registry *client.
ctx, cancel := context.WithCancel(ctx)
defer cancel()
- return client.UploadArchive(ctx, conn, os.Stdin, os.Stdout, os.Stderr, &request)
+ return gitalyclient.UploadArchive(ctx, conn, os.Stdin, os.Stdout, os.Stderr, &request)
}
diff --git a/cmd/gitaly-ssh/upload_pack.go b/cmd/gitaly-ssh/upload_pack.go
index b4a9e0755..d300a3fc0 100644
--- a/cmd/gitaly-ssh/upload_pack.go
+++ b/cmd/gitaly-ssh/upload_pack.go
@@ -5,7 +5,8 @@ import (
"fmt"
"os"
- "gitlab.com/gitlab-org/gitaly/v16/client"
+ "gitlab.com/gitlab-org/gitaly/v16/internal/gitaly/gitalyclient"
+ "gitlab.com/gitlab-org/gitaly/v16/internal/grpc/sidechannel"
"gitlab.com/gitlab-org/gitaly/v16/proto/go/gitalypb"
"google.golang.org/grpc"
"google.golang.org/protobuf/encoding/protojson"
@@ -22,7 +23,7 @@ func uploadPackConfig(config []string) []string {
return append([]string{GitConfigShowAllRefs}, config...)
}
-func uploadPack(ctx context.Context, conn *grpc.ClientConn, registry *client.SidechannelRegistry, req string) (int32, error) {
+func uploadPack(ctx context.Context, conn *grpc.ClientConn, registry *sidechannel.Registry, req string) (int32, error) {
var request gitalypb.SSHUploadPackRequest
if err := protojson.Unmarshal([]byte(req), &request); err != nil {
return 0, fmt.Errorf("json unmarshal: %w", err)
@@ -33,10 +34,10 @@ func uploadPack(ctx context.Context, conn *grpc.ClientConn, registry *client.Sid
ctx, cancel := context.WithCancel(ctx)
defer cancel()
- return client.UploadPack(ctx, conn, os.Stdin, os.Stdout, os.Stderr, &request)
+ return gitalyclient.UploadPack(ctx, conn, os.Stdin, os.Stdout, os.Stderr, &request)
}
-func uploadPackWithSidechannel(ctx context.Context, conn *grpc.ClientConn, registry *client.SidechannelRegistry, req string) (int32, error) {
+func uploadPackWithSidechannel(ctx context.Context, conn *grpc.ClientConn, registry *sidechannel.Registry, req string) (int32, error) {
var request gitalypb.SSHUploadPackWithSidechannelRequest
if err := protojson.Unmarshal([]byte(req), &request); err != nil {
return 0, fmt.Errorf("json unmarshal: %w", err)
@@ -47,5 +48,10 @@ func uploadPackWithSidechannel(ctx context.Context, conn *grpc.ClientConn, regis
ctx, cancel := context.WithCancel(ctx)
defer cancel()
- return client.UploadPackWithSidechannel(ctx, conn, registry, os.Stdin, os.Stdout, os.Stderr, &request)
+ result, err := gitalyclient.UploadPackWithSidechannel(ctx, conn, registry, os.Stdin, os.Stdout, os.Stderr, &request)
+ if err != nil {
+ return 0, err
+ }
+
+ return result.ExitCode, nil
}