diff options
author | Patrick Steinhardt <psteinhardt@gitlab.com> | 2023-09-06 15:44:10 +0300 |
---|---|---|
committer | Patrick Steinhardt <psteinhardt@gitlab.com> | 2023-09-07 09:34:57 +0300 |
commit | 1ea603e5db042d5dbc3d6b7a83b5934d2bfef86e (patch) | |
tree | 7fe9eeaa58797043178ef67fb0e4e2dbeea52bf4 /cmd | |
parent | 796b888a64dd5027301d3e3836e53caa7d185368 (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.go | 20 | ||||
-rw-r--r-- | cmd/gitaly-ssh/main_test.go | 8 | ||||
-rw-r--r-- | cmd/gitaly-ssh/receive_pack.go | 7 | ||||
-rw-r--r-- | cmd/gitaly-ssh/upload_archive.go | 7 | ||||
-rw-r--r-- | cmd/gitaly-ssh/upload_pack.go | 16 |
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 } |