Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
a43b2eb
Split 'Makefile' into datastore and bigtable portions.
tseaver Jun 24, 2016
0f4a064
Generate Bigtable V2 protos.
tseaver Jun 24, 2016
9d7d8af
Exclude new '_generated_v2' files from coverage.
tseaver Jun 24, 2016
9a2d313
Drop 'Table.rename'.
tseaver Jun 26, 2016
f5b1719
Drop overlooked docs / system test usage of 'Table.rename'.
tseaver Jun 26, 2016
e570b03
Merge pull request #1903 from tseaver/bigtable-v2-regenerate_protobufs
tseaver Jun 26, 2016
16b04c9
Parse JSON acceptance tests.
tseaver Jun 25, 2016
ebf27b5
Add 'ReadRowsResponseV2' wrapper.
tseaver Jun 26, 2016
35103f9
Merge pull request #1908 from tseaver/bigtable-v2-drop_table_rename
tseaver Jun 26, 2016
47b9246
Alias Bigtable V1 imports / factories / entry point constants.
tseaver Jun 26, 2016
377f0da
Merge pull request #1907 from tseaver/bigtable-v2-read_rows_response_…
tseaver Jun 27, 2016
cdbc47c
Merge pull request #1912 from tseaver/bigtable-v2-alias_imports_endpo…
tseaver Jun 27, 2016
3c533e0
Factor out generating GCRule-related protobufs.
tseaver Jun 26, 2016
7e9c61d
Update bigtable.column_family to use V2 protos.
tseaver Jun 26, 2016
ae3d818
Merge pull request #1913 from tseaver/bigtable-v2-column_family_crud
tseaver Jun 27, 2016
5d179bc
Clarify: testcases leaving incomplete final rows do not raise.
tseaver Jun 27, 2016
6b2f07f
Distinguish response-level errors from invalid chunks.
tseaver Jun 27, 2016
fcc3751
Merge pull request #1915 from tseaver/bigtable-v2-readrowsresponse-er…
tseaver Jun 27, 2016
8916b6c
Factor out generating RowFilter-related protobufs.
tseaver Jun 27, 2016
1b0fb53
Convert to non-instance-admin Bigtable V2 protos.
tseaver Jun 27, 2016
3b48e0f
Merge pull request #1919 from tseaver/bigtable-v2-convert_imports
tseaver Jun 27, 2016
4ed0b8f
Drop 'Cluster.table' and 'Cluster.list_tables'.
tseaver Jun 27, 2016
7cbb215
In V2, tables hold a ref. to their instance, not a cluster.
tseaver Jun 27, 2016
498271e
Add V2 Instance type.
tseaver Jun 27, 2016
e144b09
Convert instance admin to V2 protobufs.
tseaver Jun 28, 2016
9880a42
Adjust docs for V2 instance admin patterns.
tseaver Jun 28, 2016
90cd2e7
Merge pull request #1923 from tseaver/bigtable-v2-instance_admin
tseaver Jun 28, 2016
aa95442
Use 'grpcio-tools' in a virtualenv to generate latest Bigtable V2 pro…
tseaver Jun 28, 2016
d97d030
Remove duplicated line.
tseaver Jun 28, 2016
4a223b7
Use 'grpcio-tools' in a virtualenv to generate from latest Bigtable V…
tseaver Jun 28, 2016
568a463
Use 'grpcio-tools' in a virtualenv to generate from latest datastore …
tseaver Jun 28, 2016
24989d6
Accomodate final V2 renames: 'name' -> 'parent'.
tseaver Jun 28, 2016
6d3ff2e
Merge pull request #1925 from tseaver/bigtable-v2-generate_v2_protos_…
tseaver Jun 28, 2016
a488a8a
More 'cluster' -> 'instance' renames.
tseaver Jun 28, 2016
7214045
Use (same) actual V2 admin endpoint host for instance / table admin.
tseaver Jun 28, 2016
c6b747e
Use class-level constants.
tseaver Jun 28, 2016
40f609e
Add 'Client.list_instances' method.
tseaver Jun 28, 2016
c87ca51
Clean out remaining refs to V1-generated code.
tseaver Jun 28, 2016
0ac2def
Merge pull request #1926 from tseaver/bigtable-v2-cleanups
tseaver Jun 28, 2016
3467d99
Work around borked gRPC generation for g.longrunning.operations.
tseaver Jun 28, 2016
784fe01
Revise Bigtable system tests to fit instance-based patterns.
tseaver Jun 28, 2016
024c7f3
Plumb cluster 'location'/'serve_nodes' through instance creation.
tseaver Jun 28, 2016
5e85b5d
CreateInstance operation name includes location.
tseaver Jun 28, 2016
d2c9daf
'Row/ColumnFamily._table' has '_instance'.
tseaver Jun 28, 2016
a01d02e
V2 UpdateTable no longer returns operation.
tseaver Jun 28, 2016
9bdeef7
'PartialRowData' no longer keeps 'committed' state.
tseaver Jun 28, 2016
893d451
Typo fix.
tseaver Jun 28, 2016
d8a01c2
Switch to passing location ID, rather than full path, to instance.
tseaver Jun 28, 2016
6f4aced
Lint fixes.
tseaver Jun 28, 2016
0c625c5
Merge pull request #1930 from tseaver/bigtable-v2-system_tests
tseaver Jun 29, 2016
82adc5e
Adjust to V2 'instance'-based patterns.
tseaver Jun 28, 2016
40b2016
Rename testcases for clarity.
tseaver Jun 28, 2016
9dfa823
'Table.read_rows': no responses -> None.
tseaver Jun 28, 2016
e92da5c
V2 wraps row for 'ReadModifyWriteRow' request in new response message
tseaver Jun 28, 2016
0e80bdd
happybase.Table.scan: proocess all rows from a single request.
tseaver Jun 28, 2016
d18a316
Valet service.
tseaver Jun 29, 2016
d085294
Merge pull request #1931 from tseaver/bigtable-v2-happybase
tseaver Jun 29, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions docs/bigtable-client-intro.rst
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ Configuration
Admin API Access
----------------

If you'll be using your client to make `Cluster Admin`_ and `Table Admin`_
If you'll be using your client to make `Instance Admin`_ and `Table Admin`_
API requests, you'll need to pass the ``admin`` argument:

.. code:: python
Expand All @@ -89,10 +89,10 @@ Next Step
---------

After a :class:`Client <gcloud.bigtable.client.Client>`, the next highest-level
object is a :class:`Cluster <gcloud.bigtable.cluster.Cluster>`. You'll need
object is a :class:`Instance <gcloud.bigtable.instance.Instance>`. You'll need
one before you can interact with tables or data.

Head next to learn about the :doc:`bigtable-cluster-api`.
Head next to learn about the :doc:`bigtable-instance-api`.

.. _Cluster Admin: https://github.com/GoogleCloudPlatform/cloud-bigtable-client/tree/master/bigtable-protos/src/main/proto/google/bigtable/admin/cluster/v1
.. _Instance Admin: https://github.com/GoogleCloudPlatform/cloud-bigtable-client/tree/master/bigtable-protos/src/main/proto/google/bigtable/admin/instance/v1
.. _Table Admin: https://github.com/GoogleCloudPlatform/cloud-bigtable-client/tree/master/bigtable-protos/src/main/proto/google/bigtable/admin/table/v1
187 changes: 0 additions & 187 deletions docs/bigtable-cluster-api.rst

This file was deleted.

133 changes: 133 additions & 0 deletions docs/bigtable-instance-api.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
Instance Admin API
==================

.. warning::

gRPC is required for using the Cloud Bigtable API. As of May 2016,
``grpcio`` is only supported in Python 2.7, so importing
:mod:`gcloud.bigtable` in other versions of Python will fail.

After creating a :class:`Client <gcloud.bigtable.client.Client>`, you can
interact with individual instances for a project.

List Intances
-------------

If you want a comprehensive list of all existing intances, make a
`ListInstances`_ API request with
:meth:`Client.list_intances() <gcloud.bigtable.client.Client.list_intances>`:

.. code:: python

intances = client.list_intances()

This comment was marked as spam.

This comment was marked as spam.


Instance Factory
----------------

To create a :class:`Instance <gcloud.bigtable.instance.Instance>` object:

.. code:: python

instance = client.instance(instance_id, display_name=display_name)

``display_name`` is optional. When not provided,
``display_name`` defaults to the ``instance_id`` value.

Even if this :class:`Instance <gcloud.bigtable.instance.Instance>` already
has been created with the API, you'll want this object to use as a

This comment was marked as spam.

This comment was marked as spam.

parent of a :class:`Table <gcloud.bigtable.table.Table>` just as the
:class:`Client <gcloud.bigtable.client.Client>` is used as the parent of
a :class:`Instance <gcloud.bigtable.instance.Instance>`.

Create a new Instance
---------------------

After creating the instance object, make a `CreateInstance`_ API request
with :meth:`create() <gcloud.bigtable.instance.Instance.create>`:

.. code:: python

instance.display_name = 'My very own instance'
instance.create()

Check on Current Operation
--------------------------

.. note::

When modifying a instance (via a `CreateInstance`_ request), the Bigtable
API will return a `long-running operation`_ and a corresponding
:class:`Operation <gcloud.bigtable.instance.Operation>` object
will be returned by
:meth:`create() <gcloud.bigtable.instance.Instance.create>``.

You can check if a long-running operation (for a
:meth:`create() <gcloud.bigtable.instance.Instance.create>` has finished
by making a `GetOperation`_ request with
:meth:`Operation.finished() <gcloud.bigtable.instance.Operation.finished>`:

.. code:: python

>>> operation = instance.create()
>>> operation.finished()
True

.. note::

Once an :class:`Operation <gcloud.bigtable.instance.Operation>` object
has returned :data:`True` from
:meth:`finished() <gcloud.bigtable.instance.Operation.finished>`, the
object should not be re-used. Subsequent calls to
:meth:`finished() <gcloud.bigtable.instance.Operation.finished>`
will result in a :class:`ValueError <exceptions.ValueError>`.

Get metadata for an existing Instance
-------------------------------------

After creating the instance object, make a `GetInstance`_ API request
with :meth:`reload() <gcloud.bigtable.instance.Instance.reload>`:

.. code:: python

instance.reload()

This will load ``display_name`` for the existing ``instance`` object.

Update an existing Instance
---------------------------

After creating the instance object, make an `UpdateInstance`_ API request
with :meth:`update() <gcloud.bigtable.instance.Instance.update>`:

.. code:: python

client.display_name = 'New display_name'
instance.update()

Delete an existing Instance
---------------------------

Make a `DeleteInstance`_ API request with
:meth:`delete() <gcloud.bigtable.instance.Instance.delete>`:

.. code:: python

instance.delete()

Next Step
---------

Now we go down the hierarchy from
:class:`Instance <gcloud.bigtable.instance.Instance>` to a
:class:`Table <gcloud.bigtable.table.Table>`.

Head next to learn about the :doc:`bigtable-table-api`.

.. _Instance Admin API: https://cloud.google.com/bigtable/docs/creating-instance
.. _CreateInstance: https://github.com/GoogleCloudPlatform/cloud-bigtable-client/blob/2aae624081f652427052fb652d3ae43d8ac5bf5a/bigtable-protos/src/main/proto/google/bigtable/admin/instance/v1/bigtable_instance_service.proto#L66-L68
.. _GetInstance: https://github.com/GoogleCloudPlatform/cloud-bigtable-client/blob/2aae624081f652427052fb652d3ae43d8ac5bf5a/bigtable-protos/src/main/proto/google/bigtable/admin/instance/v1/bigtable_instance_service.proto#L38-L40
.. _UpdateInstance: https://github.com/GoogleCloudPlatform/cloud-bigtable-client/blob/2aae624081f652427052fb652d3ae43d8ac5bf5a/bigtable-protos/src/main/proto/google/bigtable/admin/instance/v1/bigtable_instance_service.proto#L93-L95
.. _DeleteInstance: https://github.com/GoogleCloudPlatform/cloud-bigtable-client/blob/2aae624081f652427052fb652d3ae43d8ac5bf5a/bigtable-protos/src/main/proto/google/bigtable/admin/instance/v1/bigtable_instance_service.proto#L109-L111
.. _ListInstances: https://github.com/GoogleCloudPlatform/cloud-bigtable-client/blob/2aae624081f652427052fb652d3ae43d8ac5bf5a/bigtable-protos/src/main/proto/google/bigtable/admin/instance/v1/bigtable_instance_service.proto#L44-L46
.. _GetOperation: https://github.com/GoogleCloudPlatform/cloud-bigtable-client/blob/2aae624081f652427052fb652d3ae43d8ac5bf5a/bigtable-protos/src/main/proto/google/longrunning/operations.proto#L43-L45
.. _long-running operation: https://github.com/GoogleCloudPlatform/cloud-bigtable-client/blob/2aae624081f652427052fb652d3ae43d8ac5bf5a/bigtable-protos/src/main/proto/google/longrunning/operations.proto#L73-L102
12 changes: 12 additions & 0 deletions docs/bigtable-instance.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
Instance
~~~~~~~~

.. warning::

gRPC is required for using the Cloud Bigtable API. As of May 2016,
``grpcio`` is only supported in Python 2.7, so importing
:mod:`gcloud.bigtable` in other versions of Python will fail.

.. automodule:: gcloud.bigtable.instance
:members:
:show-inheritance:
10 changes: 5 additions & 5 deletions docs/bigtable-table-api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,20 @@ Table Admin API
``grpcio`` is only supported in Python 2.7, so importing
:mod:`gcloud.bigtable` in other versions of Python will fail.

After creating a :class:`Cluster <gcloud.bigtable.cluster.Cluster>`, you can
After creating a :class:`Instance <gcloud.bigtable.instance.Instance>`, you can
interact with individual tables, groups of tables or column families within
a table.

List Tables
-----------

If you want a comprehensive list of all existing tables in a cluster, make a
If you want a comprehensive list of all existing tables in a instance, make a
`ListTables`_ API request with
:meth:`Cluster.list_tables() <gcloud.bigtable.cluster.Cluster.list_tables>`:
:meth:`Instance.list_tables() <gcloud.bigtable.instance.Instance.list_tables>`:

.. code:: python

>>> cluster.list_tables()
>>> instance.list_tables()
[<gcloud.bigtable.table.Table at 0x7ff6a1de8f50>,
<gcloud.bigtable.table.Table at 0x7ff6a1de8350>]

Expand All @@ -31,7 +31,7 @@ To create a :class:`Table <gcloud.bigtable.table.Table>` object:

.. code:: python

table = cluster.table(table_id)
table = instance.table(table_id)

Even if this :class:`Table <gcloud.bigtable.table.Table>` already
has been created with the API, you'll want this object to use as a
Expand Down
Loading