Skip to content

Commit

Permalink
remove explicit trail calls, rely on gRPC interceptors
Browse files Browse the repository at this point in the history
  • Loading branch information
nklaassen committed Jan 24, 2025
1 parent 4a11c0a commit 91e8130
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 16 deletions.
15 changes: 7 additions & 8 deletions lib/vnet/client_application_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ import (
"github.com/gravitational/trace"

"github.com/gravitational/teleport/api"
"github.com/gravitational/teleport/api/trail"
vnetv1 "github.com/gravitational/teleport/gen/proto/go/teleport/lib/vnet/v1"
)

Expand Down Expand Up @@ -74,7 +73,7 @@ func (s *clientApplicationService) AuthenticateProcess(ctx context.Context, req
func (s *clientApplicationService) ResolveAppInfo(ctx context.Context, req *vnetv1.ResolveAppInfoRequest) (*vnetv1.ResolveAppInfoResponse, error) {
appInfo, err := s.appProvider.ResolveAppInfo(ctx, req.GetFqdn())
if err != nil {
return nil, trail.ToGRPC(err)
return nil, trace.Wrap(err, "resolving app info")
}
return &vnetv1.ResolveAppInfoResponse{
AppInfo: appInfo,
Expand All @@ -86,11 +85,11 @@ func (s *clientApplicationService) ResolveAppInfo(ctx context.Context, req *vnet
// issue signatures in [clientApplicationService.SignForApp].
func (s *clientApplicationService) ReissueAppCert(ctx context.Context, req *vnetv1.ReissueAppCertRequest) (*vnetv1.ReissueAppCertResponse, error) {
if req.AppInfo == nil {
return nil, trail.ToGRPC(trace.BadParameter("missing AppInfo"))
return nil, trace.BadParameter("missing AppInfo")
}
cert, err := s.appProvider.ReissueAppCert(ctx, req.GetAppInfo(), uint16(req.GetTargetPort()))
if err != nil {
return nil, trail.ToGRPC(trace.Wrap(err, "reissuing app certificate"))
return nil, trace.Wrap(err, "reissuing app certificate")
}
s.setSignerForApp(req.GetAppInfo().GetAppKey(), uint16(req.GetTargetPort()), cert.PrivateKey.(crypto.Signer))
return &vnetv1.ReissueAppCertResponse{
Expand All @@ -114,18 +113,18 @@ func (s *clientApplicationService) SignForApp(ctx context.Context, req *vnetv1.S
case vnetv1.Hash_HASH_SHA256:
hash = crypto.SHA256
default:
return nil, trail.ToGRPC(trace.BadParameter("unsupported hash %v", req.GetHash()))
return nil, trace.BadParameter("unsupported hash %v", req.GetHash())
}
appKey := req.GetAppKey()

signer, ok := s.getSignerForApp(req.GetAppKey(), uint16(req.GetTargetPort()))
if !ok {
return nil, trail.ToGRPC(trace.BadParameter("no signer for app %v", appKey))
return nil, trace.BadParameter("no signer for app %v", appKey)
}

signature, err := signer.Sign(rand.Reader, req.GetDigest(), hash)
if err != nil {
return nil, trail.ToGRPC(trace.Wrap(err, "signing for app %v", appKey))
return nil, trace.Wrap(err, "signing for app %v", appKey)
}
return &vnetv1.SignForAppResponse{
Signature: signature,
Expand All @@ -149,7 +148,7 @@ func (s *clientApplicationService) getSignerForApp(appKey *vnetv1.AppKey, target
// established through VNet for observability.
func (s *clientApplicationService) OnNewConnection(ctx context.Context, req *vnetv1.OnNewConnectionRequest) (*vnetv1.OnNewConnectionResponse, error) {
if err := s.appProvider.OnNewConnection(ctx, req.GetAppKey()); err != nil {
return nil, trail.ToGRPC(err)
return nil, trace.Wrap(err)
}
return &vnetv1.OnNewConnectionResponse{}, nil
}
Expand Down
15 changes: 7 additions & 8 deletions lib/vnet/client_application_service_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import (
"context"

"github.com/gravitational/teleport/api"
"github.com/gravitational/teleport/api/trail"
"github.com/gravitational/teleport/api/utils/grpc/interceptors"
vnetv1 "github.com/gravitational/teleport/gen/proto/go/teleport/lib/vnet/v1"
"github.com/gravitational/trace"
Expand Down Expand Up @@ -58,7 +57,7 @@ func (c *clientApplicationServiceClient) close() error {
// Ping pings the client application.
func (c *clientApplicationServiceClient) Ping(ctx context.Context) error {
if _, err := c.clt.Ping(ctx, &vnetv1.PingRequest{}); err != nil {
return trail.FromGRPC(err)
return trace.Wrap(err, "pinging client application")
}
return nil
}
Expand All @@ -70,7 +69,7 @@ func (c *clientApplicationServiceClient) AuthenticateProcess(ctx context.Context
PipePath: pipePath,
})
if err != nil {
return trail.FromGRPC(err)
return trace.Wrap(err, "authenticating process")
}
if resp.Version != api.Version {
return trace.BadParameter("version mismatch, user process version is %s, admin process version is %s",
Expand All @@ -86,7 +85,7 @@ func (c *clientApplicationServiceClient) ResolveAppInfo(ctx context.Context, fqd
Fqdn: fqdn,
})
if err != nil {
return nil, trail.FromGRPC(err)
return nil, trace.Wrap(err, "resolving app info")
}
return resp.GetAppInfo(), nil
}
Expand All @@ -98,7 +97,7 @@ func (c *clientApplicationServiceClient) ReissueAppCert(ctx context.Context, app
TargetPort: uint32(targetPort),
})
if err != nil {
return nil, trail.FromGRPC(err)
return nil, trace.Wrap(err, "reissuing app cert")
}
return resp.GetCert(), nil
}
Expand All @@ -108,7 +107,7 @@ func (c *clientApplicationServiceClient) ReissueAppCert(ctx context.Context, app
func (c *clientApplicationServiceClient) SignForApp(ctx context.Context, req *vnetv1.SignForAppRequest) ([]byte, error) {
resp, err := c.clt.SignForApp(ctx, req)
if err != nil {
return nil, trail.FromGRPC(err)
return nil, trace.Wrap(err, "signing for app")
}
return resp.GetSignature(), nil
}
Expand All @@ -119,7 +118,7 @@ func (c *clientApplicationServiceClient) OnNewConnection(ctx context.Context, ap
AppKey: appKey,
})
if err != nil {
return trail.FromGRPC(err)
return trace.Wrap(err)
}
return nil
}
Expand All @@ -132,7 +131,7 @@ func (c *clientApplicationServiceClient) OnInvalidLocalPort(ctx context.Context,
TargetPort: uint32(targetPort),
})
if err != nil {
return trail.FromGRPC(err)
return trace.Wrap(err)
}
return nil
}

0 comments on commit 91e8130

Please sign in to comment.