2727"""
2828
2929
30+ import os
31+
3032from pkg_resources import get_distribution
3133
34+ from gcloud ._helpers import make_insecure_stub
3235from gcloud ._helpers import make_secure_stub
3336from gcloud .bigtable ._generated import bigtable_instance_admin_pb2
3437from gcloud .bigtable ._generated import bigtable_pb2
4043from gcloud .client import _ClientFactoryMixin
4144from gcloud .client import _ClientProjectMixin
4245from gcloud .credentials import get_credentials
46+ from gcloud .environment_vars import BIGTABLE_EMULATOR
4347
4448
4549TABLE_ADMIN_HOST = 'bigtableadmin.googleapis.com'
@@ -74,8 +78,12 @@ def _make_data_stub(client):
7478 :rtype: :class:`._generated.bigtable_pb2.BigtableStub`
7579 :returns: A gRPC stub object.
7680 """
77- return make_secure_stub (client .credentials , client .user_agent ,
78- bigtable_pb2 .BigtableStub , DATA_API_HOST )
81+ if client .emulator_host is None :
82+ return make_secure_stub (client .credentials , client .user_agent ,
83+ bigtable_pb2 .BigtableStub , DATA_API_HOST )
84+ else :
85+ return make_insecure_stub (bigtable_pb2 .BigtableStub ,
86+ client .emulator_host )
7987
8088
8189def _make_instance_stub (client ):
@@ -87,10 +95,15 @@ def _make_instance_stub(client):
8795 :rtype: :class:`.bigtable_instance_admin_pb2.BigtableInstanceAdminStub`
8896 :returns: A gRPC stub object.
8997 """
90- return make_secure_stub (
91- client .credentials , client .user_agent ,
92- bigtable_instance_admin_pb2 .BigtableInstanceAdminStub ,
93- INSTANCE_ADMIN_HOST )
98+ if client .emulator_host is None :
99+ return make_secure_stub (
100+ client .credentials , client .user_agent ,
101+ bigtable_instance_admin_pb2 .BigtableInstanceAdminStub ,
102+ INSTANCE_ADMIN_HOST )
103+ else :
104+ return make_insecure_stub (
105+ bigtable_instance_admin_pb2 .BigtableInstanceAdminStub ,
106+ client .emulator_host )
94107
95108
96109def _make_operations_stub (client ):
@@ -105,9 +118,13 @@ def _make_operations_stub(client):
105118 :rtype: :class:`._generated.operations_grpc_pb2.OperationsStub`
106119 :returns: A gRPC stub object.
107120 """
108- return make_secure_stub (client .credentials , client .user_agent ,
109- operations_grpc_pb2 .OperationsStub ,
110- OPERATIONS_API_HOST )
121+ if client .emulator_host is None :
122+ return make_secure_stub (client .credentials , client .user_agent ,
123+ operations_grpc_pb2 .OperationsStub ,
124+ OPERATIONS_API_HOST )
125+ else :
126+ return make_insecure_stub (operations_grpc_pb2 .OperationsStub ,
127+ client .emulator_host )
111128
112129
113130def _make_table_stub (client ):
@@ -119,9 +136,14 @@ def _make_table_stub(client):
119136 :rtype: :class:`.bigtable_instance_admin_pb2.BigtableTableAdminStub`
120137 :returns: A gRPC stub object.
121138 """
122- return make_secure_stub (client .credentials , client .user_agent ,
123- bigtable_table_admin_pb2 .BigtableTableAdminStub ,
124- TABLE_ADMIN_HOST )
139+ if client .emulator_host is None :
140+ return make_secure_stub (client .credentials , client .user_agent ,
141+ bigtable_table_admin_pb2 .BigtableTableAdminStub ,
142+ TABLE_ADMIN_HOST )
143+ else :
144+ return make_insecure_stub (
145+ bigtable_table_admin_pb2 .BigtableTableAdminStub ,
146+ client .emulator_host )
125147
126148
127149class Client (_ClientFactoryMixin , _ClientProjectMixin ):
@@ -192,6 +214,7 @@ def __init__(self, project=None, credentials=None,
192214 pass
193215 self ._credentials = credentials
194216 self .user_agent = user_agent
217+ self .emulator_host = os .getenv (BIGTABLE_EMULATOR )
195218
196219 # Create gRPC stubs for making requests.
197220 self ._data_stub = _make_data_stub (self )
0 commit comments