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 }