Skip to content

Commit

Permalink
fix: use public 'table_admin_client' property in backups methods (#359)
Browse files Browse the repository at this point in the history
* fix: call table_admin_client in backups methods

* fix other tests

* add system test
  • Loading branch information
kolea2 committed Jul 13, 2021
1 parent e73b8d5 commit bc57c79
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 22 deletions.
10 changes: 5 additions & 5 deletions google/cloud/bigtable/backup.py
Expand Up @@ -330,7 +330,7 @@ def create(self, cluster_id=None):
expire_time=_datetime_to_pb_timestamp(self.expire_time),
)

api = self._instance._client._table_admin_client
api = self._instance._client.table_admin_client
return api.create_backup(
request={
"parent": self.parent,
Expand All @@ -351,7 +351,7 @@ def get(self):
due to a retryable error and retry attempts failed.
:raises ValueError: If the parameters are invalid.
"""
api = self._instance._client._table_admin_client
api = self._instance._client.table_admin_client
try:
return api.get_backup(request={"name": self.name})
except NotFound:
Expand Down Expand Up @@ -385,13 +385,13 @@ def update_expire_time(self, new_expire_time):
name=self.name, expire_time=_datetime_to_pb_timestamp(new_expire_time),
)
update_mask = field_mask_pb2.FieldMask(paths=["expire_time"])
api = self._instance._client._table_admin_client
api = self._instance._client.table_admin_client
api.update_backup(request={"backup": backup_update, "update_mask": update_mask})
self._expire_time = new_expire_time

def delete(self):
"""Delete this Backup."""
self._instance._client._table_admin_client.delete_backup(
self._instance._client.table_admin_client.delete_backup(
request={"name": self.name}
)

Expand Down Expand Up @@ -423,7 +423,7 @@ def restore(self, table_id, instance_id=None):
due to a retryable error and retry attempts failed.
:raises: ValueError: If the parameters are invalid.
"""
api = self._instance._client._table_admin_client
api = self._instance._client.table_admin_client
if instance_id:
parent = BigtableTableAdminClient.instance_path(
project=self._instance._client.project, instance=instance_id,
Expand Down
3 changes: 3 additions & 0 deletions tests/system.py
Expand Up @@ -1080,6 +1080,9 @@ def test_backup(self):
expire_time=datetime.datetime.utcfromtimestamp(expire),
)

# Reinitialize the admin client. This is to test `_table_admin_client` returns a client object (and not NoneType)
temp_backup._instance._client = Client(admin=True)

# Sanity check for `Backup.exists()` method
self.assertFalse(temp_backup.exists())

Expand Down
34 changes: 17 additions & 17 deletions tests/unit/test_backup.py
Expand Up @@ -332,7 +332,7 @@ def test_create_grpc_error(self):
from google.cloud.bigtable_admin_v2.types import table

client = _Client()
api = client._table_admin_client = self._make_table_admin_client()
api = client.table_admin_client = self._make_table_admin_client()
api.create_backup.side_effect = Unknown("testing")

timestamp = self._make_timestamp()
Expand Down Expand Up @@ -365,7 +365,7 @@ def test_create_already_exists(self):
from google.cloud.exceptions import Conflict

client = _Client()
api = client._table_admin_client = self._make_table_admin_client()
api = client.table_admin_client = self._make_table_admin_client()
api.create_backup.side_effect = Conflict("testing")

timestamp = self._make_timestamp()
Expand Down Expand Up @@ -398,7 +398,7 @@ def test_create_instance_not_found(self):
from google.cloud.exceptions import NotFound

client = _Client()
api = client._table_admin_client = self._make_table_admin_client()
api = client.table_admin_client = self._make_table_admin_client()
api.create_backup.side_effect = NotFound("testing")

timestamp = self._make_timestamp()
Expand Down Expand Up @@ -494,7 +494,7 @@ def test_exists_grpc_error(self):
from google.api_core.exceptions import Unknown

client = _Client()
api = client._table_admin_client = self._make_table_admin_client()
api = client.table_admin_client = self._make_table_admin_client()
api.get_backup.side_effect = Unknown("testing")

instance = _Instance(self.INSTANCE_NAME, client=client)
Expand All @@ -510,7 +510,7 @@ def test_exists_not_found(self):
from google.api_core.exceptions import NotFound

client = _Client()
api = client._table_admin_client = self._make_table_admin_client()
api = client.table_admin_client = self._make_table_admin_client()
api.get_backup.side_effect = NotFound("testing")

instance = _Instance(self.INSTANCE_NAME, client=client)
Expand All @@ -537,7 +537,7 @@ def test_get(self):
size_bytes=0,
state=state,
)
api = client._table_admin_client = self._make_table_admin_client()
api = client.table_admin_client = self._make_table_admin_client()
api.get_backup.return_value = backup_pb

instance = _Instance(self.INSTANCE_NAME, client=client)
Expand All @@ -562,7 +562,7 @@ def test_reload(self):
size_bytes=0,
state=state,
)
api = client._table_admin_client = self._make_table_admin_client()
api = client.table_admin_client = self._make_table_admin_client()
api.get_backup.return_value = backup_pb

instance = _Instance(self.INSTANCE_NAME, client=client)
Expand All @@ -581,7 +581,7 @@ def test_exists_success(self):

client = _Client()
backup_pb = table.Backup(name=self.BACKUP_NAME)
api = client._table_admin_client = self._make_table_admin_client()
api = client.table_admin_client = self._make_table_admin_client()
api.get_backup.return_value = backup_pb

instance = _Instance(self.INSTANCE_NAME, client=client)
Expand All @@ -595,7 +595,7 @@ def test_delete_grpc_error(self):
from google.api_core.exceptions import Unknown

client = _Client()
api = client._table_admin_client = self._make_table_admin_client()
api = client.table_admin_client = self._make_table_admin_client()
api.delete_backup.side_effect = Unknown("testing")
instance = _Instance(self.INSTANCE_NAME, client=client)
backup = self._make_one(self.BACKUP_ID, instance, cluster_id=self.CLUSTER_ID)
Expand All @@ -609,7 +609,7 @@ def test_delete_not_found(self):
from google.api_core.exceptions import NotFound

client = _Client()
api = client._table_admin_client = self._make_table_admin_client()
api = client.table_admin_client = self._make_table_admin_client()
api.delete_backup.side_effect = NotFound("testing")
instance = _Instance(self.INSTANCE_NAME, client=client)
backup = self._make_one(self.BACKUP_ID, instance, cluster_id=self.CLUSTER_ID)
Expand All @@ -623,7 +623,7 @@ def test_delete_success(self):
from google.protobuf.empty_pb2 import Empty

client = _Client()
api = client._table_admin_client = self._make_table_admin_client()
api = client.table_admin_client = self._make_table_admin_client()
api.delete_backup.return_value = Empty()
instance = _Instance(self.INSTANCE_NAME, client=client)
backup = self._make_one(self.BACKUP_ID, instance, cluster_id=self.CLUSTER_ID)
Expand All @@ -639,7 +639,7 @@ def test_update_expire_time_grpc_error(self):
from google.protobuf import field_mask_pb2

client = _Client()
api = client._table_admin_client = self._make_table_admin_client()
api = client.table_admin_client = self._make_table_admin_client()
api.update_backup.side_effect = Unknown("testing")
instance = _Instance(self.INSTANCE_NAME, client=client)
backup = self._make_one(self.BACKUP_ID, instance, cluster_id=self.CLUSTER_ID)
Expand All @@ -663,7 +663,7 @@ def test_update_expire_time_not_found(self):
from google.protobuf import field_mask_pb2

client = _Client()
api = client._table_admin_client = self._make_table_admin_client()
api = client.table_admin_client = self._make_table_admin_client()
api.update_backup.side_effect = NotFound("testing")
instance = _Instance(self.INSTANCE_NAME, client=client)
backup = self._make_one(self.BACKUP_ID, instance, cluster_id=self.CLUSTER_ID)
Expand All @@ -686,7 +686,7 @@ def test_update_expire_time_success(self):
from google.protobuf import field_mask_pb2

client = _Client()
api = client._table_admin_client = self._make_table_admin_client()
api = client.table_admin_client = self._make_table_admin_client()
api.update_backup.return_type = table.Backup(name=self.BACKUP_NAME)
instance = _Instance(self.INSTANCE_NAME, client=client)
backup = self._make_one(self.BACKUP_ID, instance, cluster_id=self.CLUSTER_ID)
Expand All @@ -707,7 +707,7 @@ def test_restore_grpc_error(self):
from google.api_core.exceptions import Unknown

client = _Client()
api = client._table_admin_client = self._make_table_admin_client()
api = client.table_admin_client = self._make_table_admin_client()
api.restore_table.side_effect = Unknown("testing")

timestamp = self._make_timestamp()
Expand All @@ -732,7 +732,7 @@ def test_restore_grpc_error(self):

def test_restore_cluster_not_set(self):
client = _Client()
client._table_admin_client = self._make_table_admin_client()
client.table_admin_client = self._make_table_admin_client()
backup = self._make_one(
self.BACKUP_ID,
_Instance(self.INSTANCE_NAME, client=client),
Expand All @@ -746,7 +746,7 @@ def test_restore_cluster_not_set(self):
def _restore_helper(self, instance_id=None, instance_name=None):
op_future = object()
client = _Client()
api = client._table_admin_client = self._make_table_admin_client()
api = client.table_admin_client = self._make_table_admin_client()
api.restore_table.return_value = op_future

timestamp = self._make_timestamp()
Expand Down

0 comments on commit bc57c79

Please sign in to comment.