Skip to content

Commit 9ca2103

Browse files
committed
feat: drop database protection sample and sample test
1 parent e4163d0 commit 9ca2103

File tree

2 files changed

+116
-82
lines changed

2 files changed

+116
-82
lines changed

samples/samples/snippets.py

Lines changed: 55 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,11 @@
3131
from google.cloud import spanner
3232
from google.cloud.spanner_admin_instance_v1.types import spanner_instance_admin
3333
from google.cloud.spanner_v1 import param_types
34-
from google.type import expr_pb2
35-
from google.iam.v1 import policy_pb2
3634
from google.cloud.spanner_v1.data_types import JsonObject
35+
from google.iam.v1 import policy_pb2
3736
from google.protobuf import field_mask_pb2 # type: ignore
37+
from google.type import expr_pb2
38+
3839
OPERATION_TIMEOUT_SECONDS = 240
3940

4041

@@ -196,6 +197,43 @@ def create_database(instance_id, database_id):
196197
# [END spanner_create_database]
197198

198199

200+
# [START spanner_update_database_drop_protection]
201+
def update_database_drop_protection(instance_id, database_id):
202+
"""Updates the drop protection setting for a database by first enabling and then disabling it."""
203+
spanner_client = spanner.Client()
204+
instance = spanner_client.instance(instance_id)
205+
206+
db = instance.database(database_id)
207+
db.drop_protection_enabled = True
208+
209+
operation = db.update()
210+
211+
print("Waiting for operation to complete...")
212+
operation.result(OPERATION_TIMEOUT_SECONDS)
213+
214+
print(
215+
"Drop protection for database {} updated to {}".format(
216+
db.name, db.drop_protection_enabled
217+
)
218+
)
219+
220+
db.drop_protection_enabled = False
221+
222+
operation = db.update()
223+
224+
print("Waiting for operation to complete...")
225+
operation.result(OPERATION_TIMEOUT_SECONDS)
226+
227+
print(
228+
"Drop protection for database {} updated to {}".format(
229+
db.name, db.drop_protection_enabled
230+
)
231+
)
232+
233+
234+
# [END spanner_update_database_drop_protection]
235+
236+
199237
# [START spanner_create_database_with_encryption_key]
200238
def create_database_with_encryption_key(instance_id, database_id, kms_key_name):
201239
"""Creates a database with tables using a Customer Managed Encryption Key (CMEK)."""
@@ -1402,7 +1440,7 @@ def delete_singers(transaction):
14021440

14031441

14041442
def delete_data_with_dml_returning(instance_id, database_id):
1405-
"""Deletes sample data from the database using a DML statement having a THEN RETURN clause. """
1443+
"""Deletes sample data from the database using a DML statement having a THEN RETURN clause."""
14061444
# [START spanner_dml_delete_returning]
14071445
# instance_id = "your-spanner-instance"
14081446
# database_id = "your-spanner-db-id"
@@ -1538,7 +1576,7 @@ def insert_singers(transaction):
15381576

15391577

15401578
def insert_with_dml_returning(instance_id, database_id):
1541-
"""Inserts sample data into the given database using a DML statement having a THEN RETURN clause. """
1579+
"""Inserts sample data into the given database using a DML statement having a THEN RETURN clause."""
15421580
# [START spanner_dml_insert_returning]
15431581
# instance_id = "your-spanner-instance"
15441582
# database_id = "your-spanner-db-id"
@@ -1727,7 +1765,7 @@ def update_albums(transaction):
17271765

17281766

17291767
def create_table_with_datatypes(instance_id, database_id):
1730-
"""Creates a table with supported datatypes. """
1768+
"""Creates a table with supported datatypes."""
17311769
# [START spanner_create_table_with_datatypes]
17321770
# instance_id = "your-spanner-instance"
17331771
# database_id = "your-spanner-db-id"
@@ -2460,7 +2498,9 @@ def enable_fine_grained_access(
24602498
query_data_with_index_parser.add_argument("--end_title", default="Goo")
24612499
subparsers.add_parser("read_data_with_index", help=read_data_with_index.__doc__)
24622500
subparsers.add_parser("add_storing_index", help=add_storing_index.__doc__)
2463-
subparsers.add_parser("read_data_with_storing_index", help=read_data_with_storing_index.__doc__)
2501+
subparsers.add_parser(
2502+
"read_data_with_storing_index", help=read_data_with_storing_index.__doc__
2503+
)
24642504
subparsers.add_parser(
24652505
"create_table_with_timestamp", help=create_table_with_timestamp.__doc__
24662506
)
@@ -2486,9 +2526,13 @@ def enable_fine_grained_access(
24862526
subparsers.add_parser("insert_data_with_dml", help=insert_data_with_dml.__doc__)
24872527
subparsers.add_parser("log_commit_stats", help=log_commit_stats.__doc__)
24882528
subparsers.add_parser("update_data_with_dml", help=update_data_with_dml.__doc__)
2489-
subparsers.add_parser("update_data_with_dml_returning", help=update_data_with_dml_returning.__doc__)
2529+
subparsers.add_parser(
2530+
"update_data_with_dml_returning", help=update_data_with_dml_returning.__doc__
2531+
)
24902532
subparsers.add_parser("delete_data_with_dml", help=delete_data_with_dml.__doc__)
2491-
subparsers.add_parser("delete_data_with_dml_returning", help=delete_data_with_dml_returning.__doc__)
2533+
subparsers.add_parser(
2534+
"delete_data_with_dml_returning", help=delete_data_with_dml_returning.__doc__
2535+
)
24922536
subparsers.add_parser(
24932537
"update_data_with_dml_timestamp", help=update_data_with_dml_timestamp.__doc__
24942538
)
@@ -2499,7 +2543,9 @@ def enable_fine_grained_access(
24992543
"update_data_with_dml_struct", help=update_data_with_dml_struct.__doc__
25002544
)
25012545
subparsers.add_parser("insert_with_dml", help=insert_with_dml.__doc__)
2502-
subparsers.add_parser("insert_with_dml_returning", help=insert_with_dml_returning.__doc__)
2546+
subparsers.add_parser(
2547+
"insert_with_dml_returning", help=insert_with_dml_returning.__doc__
2548+
)
25032549
subparsers.add_parser(
25042550
"query_data_with_parameter", help=query_data_with_parameter.__doc__
25052551
)

0 commit comments

Comments
 (0)