Client

Parent client for calling the Google Cloud Bigtable API.

This is the base from which all interactions with the API occur.

In the hierarchy of API concepts * a client owns a cluster * a cluster owns a table * a table owns column families * a table owns data

gcloud_bigtable.client.ADMIN_SCOPE = 'https://www.googleapis.com/auth/cloud-bigtable.admin'

Scope for interacting with the Cluster Admin and Table Admin APIs.

class gcloud_bigtable.client.Client(credentials=None, project_id=None, read_only=False, admin=False, user_agent='gcloud-bigtable-python', timeout_seconds=10)[source]

Bases: object

Client for interacting with Google Cloud Bigtable API.

Parameters:
  • credentials (oauth2client.client.OAuth2Credentials or NoneType) – (Optional) The OAuth2 Credentials to use for this cluster. If not provided, defaulst to the Google Application Default Credentials.
  • project_id (string) – (Optional) The ID of the project which owns the clusters, tables and data. If not provided, will attempt to determine from the environment.
  • read_only (boolean) – (Optional) Boolean indicating if the data scope should be for reading only (or for writing as well). Defaults to False.
  • admin (boolean) – (Optional) Boolean indicating if the client will be used to interact with the Cluster Admin or Table Admin APIs. This requires the ADMIN_SCOPE. Defaults to False.
  • user_agent (string) – (Optional) The user agent to be used with API request. Defaults to DEFAULT_USER_AGENT.
  • timeout_seconds (integer) – Number of seconds for request time-out. If not passed, defaults to DEFAULT_TIMEOUT_SECONDS.
Raises:

ValueError if both read_only and admin are True

cluster(zone, cluster_id, display_name=None, serve_nodes=3)[source]

Factory to create a cluster associated with this client.

Parameters:
  • zone (string) – The name of the zone where the cluster resides.
  • cluster_id (string) – The ID of the cluster.
  • display_name (string) – (Optional) The display name for the cluster in the Cloud Console UI. (Must be between 4 and 30 characters.) If this value is not set in the constructor, will fall back to the cluster ID.
  • serve_nodes (integer) – (Optional) The number of nodes in the cluster. Defaults to 3.
Return type:

Cluster

Returns:

The cluster owned by this client.

credentials

Getter for client’s credentials.

Return type:oauth2client.client.OAuth2Credentials
Returns:The credentials stored on the client.
classmethod from_service_account_json(json_credentials_path, project_id=None, read_only=False, admin=False)[source]

Factory to retrieve JSON credentials while creating client object.

Parameters:
  • json_credentials_path (string) – The path to a private key file (this file was given to you when you created the service account). This file must contain a JSON object with a private key and other credentials information (downloaded from the Google APIs console).
  • project_id (string) – The ID of the project which owns the clusters, tables and data. Will be passed to Client constructor.
  • read_only (boolean) – Boolean indicating if the data scope should be for reading only (or for writing as well). Will be passed to Client constructor.
  • admin (boolean) – Boolean indicating if the client will be used to interact with the Cluster Admin or Table Admin APIs. Will be passed to Client constructor.
Return type:

Client

Returns:

The client created with the retrieved JSON credentials.

classmethod from_service_account_p12(client_email, private_key_path, project_id=None, read_only=False, admin=False)[source]

Factory to retrieve P12 credentials while creating client object.

Note

Unless you have an explicit reason to use a PKCS12 key for your service account, we recommend using a JSON key.

Parameters:
  • client_email (string) – The e-mail attached to the service account.
  • private_key_path (string) – The path to a private key file (this file was given to you when you created the service account). This file must be in P12 format.
  • project_id (string) – The ID of the project which owns the clusters, tables and data. Will be passed to Client constructor.
  • read_only (boolean) – Boolean indicating if the data scope should be for reading only (or for writing as well). Will be passed to Client constructor.
  • admin (boolean) – Boolean indicating if the client will be used to interact with the Cluster Admin or Table Admin APIs. Will be passed to Client constructor.
Return type:

Client

Returns:

The client created with the retrieved P12 credentials.

list_clusters(timeout_seconds=None)[source]

Lists clusters owned by the project.

Parameters:timeout_seconds (integer) – Number of seconds for request time-out. If not passed, defaults to value set on client.
Return type:tuple
Returns:A pair of results, the first is a list of Cluster s returned and the second is a list of strings (the failed zones in the request).
list_zones(timeout_seconds=None)[source]

Lists zones associated with project.

Parameters:timeout_seconds (integer) – Number of seconds for request time-out. If not passed, defaults to value set on client.
Return type:list of strings
Returns:The names of the zones
Raises:ValueError if one of the zones is not in OK state.
project_id

Getter for client’s project ID.

Return type:string
Returns:The project ID stored on the client.
project_name

Project name to be used with Cluster Admin API.

Note

This property will not change if project_id does not, but the return value is not cached.

The project name is of the form “projects/{project_id}”.

Return type:string
Returns:The project name to be used with the Cloud Bigtable Admin API RPC service.
gcloud_bigtable.client.DATA_SCOPE = 'https://www.googleapis.com/auth/cloud-bigtable.data'

Scope for reading and writing table data.

gcloud_bigtable.client.PROJECT_ENV_VAR = 'GCLOUD_PROJECT'

Environment variable used to provide an implicit project ID.

gcloud_bigtable.client.READ_ONLY_SCOPE = 'https://www.googleapis.com/auth/cloud-bigtable.data.readonly'

Scope for reading table data.