frostfs-api-go/rpc/client/connect.go
Leonard Lyubich 25da5d2e13 Add v2 version to go module name
Replace all elements from `v2` to root directory.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-11-17 15:29:33 +03:00

51 lines
953 B
Go

package client
import (
"context"
"errors"
"github.com/nspcc-dev/neofs-api-go/v2/rpc/grpc"
grpcstd "google.golang.org/grpc"
"google.golang.org/grpc/credentials"
)
func (c *Client) createGRPCClient() (err error) {
c.gRPCClientOnce.Do(func() {
if err = c.openGRPCConn(); err != nil {
return
}
c.gRPCClient = grpc.New(grpc.WithClientConnection(c.conn))
})
return
}
var errInvalidEndpoint = errors.New("invalid endpoint options")
func (c *Client) openGRPCConn() error {
if c.conn != nil {
return nil
}
if c.addr == "" {
return errInvalidEndpoint
}
var err error
var credOpt grpcstd.DialOption
if c.tlsCfg != nil {
creds := credentials.NewTLS(c.tlsCfg)
credOpt = grpcstd.WithTransportCredentials(creds)
} else {
credOpt = grpcstd.WithInsecure()
}
dialCtx, cancel := context.WithTimeout(context.Background(), c.dialTimeout)
c.conn, err = grpcstd.DialContext(dialCtx, c.addr, credOpt)
cancel()
return err
}