github.com/instill-ai/component@v0.16.0-beta/pkg/connector/instill/v0/client.go (about)

     1  package instill
     2  
     3  import (
     4  	"crypto/tls"
     5  	"strings"
     6  
     7  	"google.golang.org/grpc"
     8  	"google.golang.org/grpc/credentials"
     9  	"google.golang.org/grpc/credentials/insecure"
    10  
    11  	mgmtPB "github.com/instill-ai/protogen-go/core/mgmt/v1beta"
    12  	modelPB "github.com/instill-ai/protogen-go/model/model/v1alpha"
    13  )
    14  
    15  // initModelPublicServiceClient initialises a ModelPublicServiceClient instance
    16  func initModelPublicServiceClient(serverURL string) (modelPB.ModelPublicServiceClient, *grpc.ClientConn) {
    17  	var clientDialOpts grpc.DialOption
    18  
    19  	if strings.HasPrefix(serverURL, "https://") {
    20  		clientDialOpts = grpc.WithTransportCredentials(credentials.NewTLS(&tls.Config{InsecureSkipVerify: true}))
    21  	} else {
    22  		clientDialOpts = grpc.WithTransportCredentials(insecure.NewCredentials())
    23  	}
    24  
    25  	serverURL = stripProtocolFromURL(serverURL)
    26  	clientConn, err := grpc.Dial(serverURL, clientDialOpts)
    27  	if err != nil {
    28  		return nil, nil
    29  	}
    30  
    31  	return modelPB.NewModelPublicServiceClient(clientConn), clientConn
    32  }
    33  
    34  func initMgmtPublicServiceClient(serverURL string) (mgmtPB.MgmtPublicServiceClient, *grpc.ClientConn) {
    35  	var clientDialOpts grpc.DialOption
    36  
    37  	if strings.HasPrefix(serverURL, "https://") {
    38  		clientDialOpts = grpc.WithTransportCredentials(credentials.NewTLS(&tls.Config{InsecureSkipVerify: true}))
    39  	} else {
    40  		clientDialOpts = grpc.WithTransportCredentials(insecure.NewCredentials())
    41  	}
    42  
    43  	serverURL = stripProtocolFromURL(serverURL)
    44  	clientConn, err := grpc.Dial(serverURL, clientDialOpts)
    45  	if err != nil {
    46  		return nil, nil
    47  	}
    48  
    49  	return mgmtPB.NewMgmtPublicServiceClient(clientConn), clientConn
    50  }
    51  
    52  func stripProtocolFromURL(url string) string {
    53  	index := strings.Index(url, "://")
    54  	if index > 0 {
    55  		return url[strings.Index(url, "://")+3:]
    56  	}
    57  	return url
    58  }