// NewClient returns a new log client, logging to the named log in the // provided project. // // The exported fields on the returned client may be modified before // the client is used for logging. Once log entries are in flight, // the fields must not be modified. func NewClient(ctx context.Context, projectID, logName string, opts ...cloud.ClientOption) (*Client, error) { httpClient, endpoint, err := transport.NewHTTPClient(ctx, append([]cloud.ClientOption{ cloud.WithEndpoint(prodAddr), cloud.WithScopes(api.CloudPlatformScope), cloud.WithUserAgent(userAgent), }, opts...)...) if err != nil { return nil, err } svc, err := api.New(httpClient) if err != nil { return nil, err } svc.BasePath = endpoint c := &Client{ svc: svc, logs: api.NewProjectsLogsEntriesService(svc), logName: logName, projID: projectID, } for i := range c.writer { level := Level(i) c.writer[level] = levelWriter{level, c} c.logger[level] = log.New(c.writer[level], "", 0) } return c, nil }
// NewClient creates a new Client for a given dataset. func NewClient(ctx context.Context, projectID string, opts ...cloud.ClientOption) (*Client, error) { o := []cloud.ClientOption{ cloud.WithEndpoint(prodAddr), cloud.WithScopes(ScopeDatastore, ScopeUserEmail), cloud.WithUserAgent(userAgent), } o = append(o, opts...) client, err := transport.NewProtoClient(ctx, o...) if err != nil { return nil, fmt.Errorf("dialing: %v", err) } return &Client{ client: client, dataset: projectID, }, nil }
// NewClusterAdminClient creates a new ClusterAdminClient for a given project. func NewClusterAdminClient(ctx context.Context, project string, opts ...cloud.ClientOption) (*ClusterAdminClient, error) { o := []cloud.ClientOption{ cloud.WithEndpoint(clusterAdminAddr), cloud.WithScopes(ClusterAdminScope), cloud.WithUserAgent(clientUserAgent), } o = append(o, opts...) conn, err := transport.DialGRPC(ctx, o...) if err != nil { return nil, fmt.Errorf("dialing: %v", err) } return &ClusterAdminClient{ conn: conn, cClient: btcspb.NewBigtableClusterServiceClient(conn), project: project, }, nil }
// CreateGooglePubSubClient returns client communicate with google Pub/Sub service func CreateGooglePubSubClient() (*pubsub.Client, error) { envValue := os.Getenv(NDGooglePubSubURL) if envValue != "" { googlePubSubURL = envValue } envValue = os.Getenv(NDGoogleProjectID) if envValue != "" { googleProjectID = envValue } ctx := cloud.NewContext(googleProjectID, http.DefaultClient) o := []cloud.ClientOption{ cloud.WithBaseHTTP(http.DefaultClient), cloud.WithEndpoint(googleDatastoreURL), } client, _ := pubsub.NewClient(ctx, googleProjectID, o...) return client, nil }
// CreateGoogleDatastoreClient create client to communicate to google Datastore service func CreateGoogleDatastoreClient() (*datastore.Client, error) { envValue := os.Getenv(NDGoogleDatastoreURL) if envValue != "" { googleDatastoreURL = envValue } envValue = os.Getenv(NDGoogleProjectID) if envValue != "" { googleProjectID = envValue } ctx := cloud.NewContext(googleProjectID, http.DefaultClient) o := []cloud.ClientOption{ cloud.WithBaseHTTP(http.DefaultClient), cloud.WithEndpoint(googleDatastoreURL), } client, err := datastore.NewClient(ctx, googleProjectID, o...) if err != nil { return nil, err } return client, nil }
// NewClient create a new PubSub client. func NewClient(ctx context.Context, projectID string, opts ...cloud.ClientOption) (*Client, error) { o := []cloud.ClientOption{ cloud.WithEndpoint(prodAddr), cloud.WithScopes(raw.PubsubScope, raw.CloudPlatformScope), cloud.WithUserAgent(userAgent), } o = append(o, opts...) httpClient, endpoint, err := transport.NewHTTPClient(ctx, o...) if err != nil { return nil, fmt.Errorf("dialing: %v", err) } s, err := raw.New(httpClient) if err != nil { return nil, err } s.BasePath = endpoint c := &Client{ projectID: projectID, s: s, } return c, nil }