// NewAdminClient creates a new AdminClient for a given project and instance. func NewAdminClient(ctx context.Context, project, instance string, opts ...cloud.ClientOption) (*AdminClient, error) { o, err := option.DefaultClientOptions(adminAddr, AdminScope, clientUserAgent) if err != nil { return nil, err } o = append(o, opts...) conn, err := transport.DialGRPC(ctx, o...) if err != nil { return nil, fmt.Errorf("dialing: %v", err) } return &AdminClient{ conn: conn, tClient: btapb.NewBigtableTableAdminClient(conn), project: project, instance: instance, md: metadata.Pairs(resourcePrefixHeader, fmt.Sprintf("projects/%s/instances/%s", project, instance)), }, nil }
// NewInstanceAdminClient creates a new InstanceAdminClient for a given project. func NewInstanceAdminClient(ctx context.Context, project string, opts ...cloud.ClientOption) (*InstanceAdminClient, error) { o, err := option.DefaultClientOptions(instanceAdminAddr, InstanceAdminScope, clientUserAgent) if err != nil { return nil, err } o = append(o, opts...) conn, err := transport.DialGRPC(ctx, o...) if err != nil { return nil, fmt.Errorf("dialing: %v", err) } return &InstanceAdminClient{ conn: conn, iClient: btapb.NewBigtableInstanceAdminClient(conn), project: project, md: metadata.Pairs(resourcePrefixHeader, "projects/"+project), }, 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 }
// NewClient creates a new Client for a given project and instance. func NewClient(ctx context.Context, project, instance string, opts ...cloud.ClientOption) (*Client, error) { o, err := option.DefaultClientOptions(prodAddr, Scope, clientUserAgent) if err != nil { return nil, err } o = append(o, opts...) conn, err := transport.DialGRPC(ctx, o...) if err != nil { return nil, fmt.Errorf("dialing: %v", err) } return &Client{ conn: conn, client: btspb.NewBigtableClient(conn), project: project, instance: instance, }, nil }
// NewClient creates a new Client for a given dataset. // If the project ID is empty, it is derived from the DATASTORE_PROJECT_ID environment variable. // If the DATASTORE_EMULATOR_HOST environment variable is set, client will use its value // to connect to a locally-running datastore emulator. func NewClient(ctx context.Context, projectID string, opts ...cloud.ClientOption) (*Client, error) { var o []cloud.ClientOption // Environment variables for gcd emulator: // https://cloud.google.com/datastore/docs/tools/datastore-emulator // If the emulator is available, dial it directly (and don't pass any credentials). if addr := os.Getenv("DATASTORE_EMULATOR_HOST"); addr != "" { conn, err := grpc.Dial(addr, grpc.WithInsecure()) if err != nil { return nil, fmt.Errorf("grpc.Dial: %v", err) } o = []cloud.ClientOption{cloud.WithBaseGRPC(conn)} } else { o = []cloud.ClientOption{ cloud.WithEndpoint(prodAddr), cloud.WithScopes(ScopeDatastore), cloud.WithUserAgent(userAgent), } } // Warn if we see the legacy emulator environment variables. if os.Getenv("DATASTORE_HOST") != "" && os.Getenv("DATASTORE_EMULATOR_HOST") == "" { log.Print("WARNING: legacy environment variable DATASTORE_HOST is ignored. Use DATASTORE_EMULATOR_HOST instead.") } if os.Getenv("DATASTORE_DATASET") != "" && os.Getenv("DATASTORE_PROJECT_ID") == "" { log.Print("WARNING: legacy environment variable DATASTORE_DATASET is ignored. Use DATASTORE_PROJECT_ID instead.") } if projectID == "" { projectID = os.Getenv("DATASTORE_PROJECT_ID") } if projectID == "" { return nil, errors.New("datastore: missing project/dataset id") } o = append(o, opts...) conn, err := transport.DialGRPC(ctx, o...) if err != nil { return nil, fmt.Errorf("dialing: %v", err) } return &Client{ conn: conn, client: pb.NewDatastoreClient(conn), dataset: projectID, }, nil }