Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: samples and tests for admin backup APIs #1105

Merged
merged 5 commits into from
Feb 26, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Prev Previous commit
Next Next commit
incorporate suggestions
  • Loading branch information
rahul2393 committed Feb 23, 2024
commit 0b393d9166e7a3c627a4e03d40bb90f0668f66c6
34 changes: 28 additions & 6 deletions samples/samples/admin/backup_snippet.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,14 @@
from google.api_core import protobuf_helpers
from google.cloud import spanner
from google.cloud.exceptions import NotFound
from google.cloud.spanner_admin_database_v1.types import backup as backup_pb
from google.cloud.spanner_admin_database_v1.types import spanner_database_admin


# [START spanner_create_backup]
def create_backup(instance_id, database_id, backup_id, version_time):
"""Creates a backup for a database."""

from google.cloud.spanner_admin_database_v1.types import backup as backup_pb

spanner_client = spanner.Client()
instance = spanner_client.instance(instance_id)
database = instance.database(database_id)
Expand Down Expand Up @@ -70,8 +71,10 @@ def create_backup_with_encryption_key(
instance_id, database_id, backup_id, kms_key_name
):
"""Creates a backup for a database using a Customer Managed Encryption Key (CMEK)."""
from google.cloud.spanner_admin_database_v1 import \
CreateBackupEncryptionConfig

from google.cloud.spanner_admin_database_v1.types import backup as backup_pb

from google.cloud.spanner_admin_database_v1 import CreateBackupEncryptionConfig

spanner_client = spanner.Client()
instance = spanner_client.instance(instance_id)
Expand Down Expand Up @@ -151,7 +154,9 @@ def restore_database_with_encryption_key(
):
"""Restores a database from a backup using a Customer Managed Encryption Key (CMEK)."""
from google.cloud.spanner_admin_database_v1 import (
RestoreDatabaseEncryptionConfig, RestoreDatabaseRequest)
RestoreDatabaseEncryptionConfig,
RestoreDatabaseRequest,
)

spanner_client = spanner.Client()
instance = spanner_client.instance(instance_id)
Expand Down Expand Up @@ -190,6 +195,8 @@ def restore_database_with_encryption_key(

# [START spanner_cancel_backup_create]
def cancel_backup(instance_id, database_id, backup_id):
from google.cloud.spanner_admin_database_v1.types import backup as backup_pb

spanner_client = spanner.Client()
instance = spanner_client.instance(instance_id)
database = instance.database(database_id)
Expand Down Expand Up @@ -238,6 +245,8 @@ def cancel_backup(instance_id, database_id, backup_id):

# [START spanner_list_backup_operations]
def list_backup_operations(instance_id, database_id, backup_id):
from google.cloud.spanner_admin_database_v1.types import backup as backup_pb

spanner_client = spanner.Client()
instance = spanner_client.instance(instance_id)

Expand Down Expand Up @@ -288,6 +297,8 @@ def list_backup_operations(instance_id, database_id, backup_id):

# [START spanner_list_database_operations]
def list_database_operations(instance_id):
from google.cloud.spanner_admin_database_v1.types import spanner_database_admin

spanner_client = spanner.Client()
instance = spanner_client.instance(instance_id)

Expand Down Expand Up @@ -316,6 +327,8 @@ def list_database_operations(instance_id):

# [START spanner_list_backups]
def list_backups(instance_id, database_id, backup_id):
from google.cloud.spanner_admin_database_v1.types import backup as backup_pb

spanner_client = spanner.Client()
instance = spanner_client.instance(instance_id)

Expand Down Expand Up @@ -402,6 +415,8 @@ def list_backups(instance_id, database_id, backup_id):

# [START spanner_delete_backup]
def delete_backup(instance_id, backup_id):
from google.cloud.spanner_admin_database_v1.types import backup as backup_pb

spanner_client = spanner.Client()
instance = spanner_client.instance(instance_id)
backup = spanner_client.database_admin_api.get_backup(
Expand Down Expand Up @@ -432,14 +447,15 @@ def delete_backup(instance_id, backup_id):
except NotFound:
print("Backup {} has been deleted.".format(backup.name))
return
assert True is False


# [END spanner_delete_backup]


# [START spanner_update_backup]
def update_backup(instance_id, backup_id):
from google.cloud.spanner_admin_database_v1.types import backup as backup_pb

spanner_client = spanner.Client()
instance = spanner_client.instance(instance_id)

Expand Down Expand Up @@ -474,6 +490,9 @@ def create_database_with_version_retention_period(
instance_id, database_id, retention_period
):
"""Creates a database with a version retention period."""

from google.cloud.spanner_admin_database_v1.types import spanner_database_admin

spanner_client = spanner.Client()
instance = spanner_client.instance(instance_id)
ddl_statements = [
Expand Down Expand Up @@ -520,6 +539,9 @@ def create_database_with_version_retention_period(
# [START spanner_copy_backup]
def copy_backup(instance_id, backup_id, source_backup_path):
"""Copies a backup."""

from google.cloud.spanner_admin_database_v1.types import backup as backup_pb

spanner_client = spanner.Client()
instance = spanner_client.instance(instance_id)

Expand Down
1 change: 1 addition & 0 deletions samples/samples/admin/backup_snippet_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,7 @@ def test_delete_backup(capsys, instance_id):
assert BACKUP_ID in out
backup_snippet.delete_backup(instance_id, COPY_BACKUP_ID)
out, _ = capsys.readouterr()
assert "has been deleted." in out
assert COPY_BACKUP_ID in out


Expand Down