@@ -34,7 +34,9 @@ def create_backup(instance_id, database_id, backup_id, version_time):
34
34
35
35
# Create a backup
36
36
expire_time = datetime .utcnow () + timedelta (days = 14 )
37
- backup = instance .backup (backup_id , database = database , expire_time = expire_time , version_time = version_time )
37
+ backup = instance .backup (
38
+ backup_id , database = database , expire_time = expire_time , version_time = version_time
39
+ )
38
40
operation = backup .create ()
39
41
40
42
# Wait for backup operation to complete.
@@ -56,7 +58,9 @@ def create_backup(instance_id, database_id, backup_id, version_time):
56
58
# [END spanner_create_backup]
57
59
58
60
# [START spanner_create_backup_with_encryption_key]
59
- def create_backup_with_encryption_key (instance_id , database_id , backup_id , kms_key_name ):
61
+ def create_backup_with_encryption_key (
62
+ instance_id , database_id , backup_id , kms_key_name
63
+ ):
60
64
"""Creates a backup for a database using a Customer Managed Encryption Key (CMEK)."""
61
65
from google .cloud .spanner_admin_database_v1 import CreateBackupEncryptionConfig
62
66
@@ -67,10 +71,15 @@ def create_backup_with_encryption_key(instance_id, database_id, backup_id, kms_k
67
71
# Create a backup
68
72
expire_time = datetime .utcnow () + timedelta (days = 14 )
69
73
encryption_config = {
70
- ' encryption_type' : CreateBackupEncryptionConfig .EncryptionType .CUSTOMER_MANAGED_ENCRYPTION ,
71
- ' kms_key_name' : kms_key_name ,
74
+ " encryption_type" : CreateBackupEncryptionConfig .EncryptionType .CUSTOMER_MANAGED_ENCRYPTION ,
75
+ " kms_key_name" : kms_key_name ,
72
76
}
73
- backup = instance .backup (backup_id , database = database , expire_time = expire_time , encryption_config = encryption_config )
77
+ backup = instance .backup (
78
+ backup_id ,
79
+ database = database ,
80
+ expire_time = expire_time ,
81
+ encryption_config = encryption_config ,
82
+ )
74
83
operation = backup .create ()
75
84
76
85
# Wait for backup operation to complete.
@@ -115,7 +124,7 @@ def restore_database(instance_id, new_database_id, backup_id):
115
124
restore_info .backup_info .source_database ,
116
125
new_database_id ,
117
126
restore_info .backup_info .backup ,
118
- restore_info .backup_info .version_time
127
+ restore_info .backup_info .version_time ,
119
128
)
120
129
)
121
130
@@ -124,7 +133,9 @@ def restore_database(instance_id, new_database_id, backup_id):
124
133
125
134
126
135
# [START spanner_restore_backup_with_encryption_key]
127
- def restore_database_with_encryption_key (instance_id , new_database_id , backup_id , kms_key_name ):
136
+ def restore_database_with_encryption_key (
137
+ instance_id , new_database_id , backup_id , kms_key_name
138
+ ):
128
139
"""Restores a database from a backup using a Customer Managed Encryption Key (CMEK)."""
129
140
from google .cloud .spanner_admin_database_v1 import RestoreDatabaseEncryptionConfig
130
141
@@ -134,10 +145,12 @@ def restore_database_with_encryption_key(instance_id, new_database_id, backup_id
134
145
# Start restoring an existing backup to a new database.
135
146
backup = instance .backup (backup_id )
136
147
encryption_config = {
137
- ' encryption_type' : RestoreDatabaseEncryptionConfig .EncryptionType .CUSTOMER_MANAGED_ENCRYPTION ,
138
- ' kms_key_name' : kms_key_name ,
148
+ " encryption_type" : RestoreDatabaseEncryptionConfig .EncryptionType .CUSTOMER_MANAGED_ENCRYPTION ,
149
+ " kms_key_name" : kms_key_name ,
139
150
}
140
- new_database = instance .database (new_database_id , encryption_config = encryption_config )
151
+ new_database = instance .database (
152
+ new_database_id , encryption_config = encryption_config
153
+ )
141
154
operation = new_database .restore (backup )
142
155
143
156
# Wait for restore operation to complete.
@@ -210,7 +223,7 @@ def list_backup_operations(instance_id, database_id, backup_id):
210
223
metadata .name , metadata .database , metadata .progress .progress_percent
211
224
)
212
225
)
213
-
226
+
214
227
# List the CopyBackup operations.
215
228
filter_ = (
216
229
"(metadata.@type:type.googleapis.com/google.spanner.admin.database.v1.CopyBackupMetadata) "
@@ -221,7 +234,9 @@ def list_backup_operations(instance_id, database_id, backup_id):
221
234
metadata = op .metadata
222
235
print (
223
236
"Backup {} on source backup {}: {}% complete." .format (
224
- metadata .name , metadata .source_backup , metadata .progress .progress_percent
237
+ metadata .name ,
238
+ metadata .source_backup ,
239
+ metadata .progress .progress_percent ,
225
240
)
226
241
)
227
242
@@ -305,8 +320,11 @@ def list_backups(instance_id, database_id, backup_id):
305
320
print ("All backups with pagination" )
306
321
# If there are multiple pages, additional ``ListBackup``
307
322
# requests will be made as needed while iterating.
323
+ paged_backups = set ()
308
324
for backup in instance .list_backups (page_size = 2 ):
309
- print (backup .name )
325
+ paged_backups .add (backup .name )
326
+ for backup in paged_backups :
327
+ print (backup )
310
328
311
329
312
330
# [END spanner_list_backups]
@@ -358,7 +376,9 @@ def update_backup(instance_id, backup_id):
358
376
359
377
360
378
# [START spanner_create_database_with_version_retention_period]
361
- def create_database_with_version_retention_period (instance_id , database_id , retention_period ):
379
+ def create_database_with_version_retention_period (
380
+ instance_id , database_id , retention_period
381
+ ):
362
382
"""Creates a database with a version retention period."""
363
383
spanner_client = spanner .Client ()
364
384
instance = spanner_client .instance (instance_id )
@@ -378,7 +398,7 @@ def create_database_with_version_retention_period(instance_id, database_id, rete
378
398
"ALTER DATABASE `{}`"
379
399
" SET OPTIONS (version_retention_period = '{}')" .format (
380
400
database_id , retention_period
381
- )
401
+ ),
382
402
]
383
403
db = instance .database (database_id , ddl_statements )
384
404
operation = db .create ()
@@ -387,12 +407,15 @@ def create_database_with_version_retention_period(instance_id, database_id, rete
387
407
388
408
db .reload ()
389
409
390
- print ("Database {} created with version retention period {} and earliest version time {}" .format (
391
- db .database_id , db .version_retention_period , db .earliest_version_time
392
- ))
410
+ print (
411
+ "Database {} created with version retention period {} and earliest version time {}" .format (
412
+ db .database_id , db .version_retention_period , db .earliest_version_time
413
+ )
414
+ )
393
415
394
416
db .drop ()
395
417
418
+
396
419
# [END spanner_create_database_with_version_retention_period]
397
420
398
421
@@ -404,7 +427,9 @@ def copy_backup(instance_id, backup_id, source_backup_path):
404
427
405
428
# Create a backup object and wait for copy backup operation to complete.
406
429
expire_time = datetime .utcnow () + timedelta (days = 14 )
407
- copy_backup = instance .copy_backup (backup_id = backup_id , source_backup = source_backup_path , expire_time = expire_time )
430
+ copy_backup = instance .copy_backup (
431
+ backup_id = backup_id , source_backup = source_backup_path , expire_time = expire_time
432
+ )
408
433
operation = copy_backup .create ()
409
434
410
435
# Wait for copy backup operation to complete.
@@ -416,10 +441,14 @@ def copy_backup(instance_id, backup_id, source_backup_path):
416
441
417
442
print (
418
443
"Backup {} of size {} bytes was created at {} with version time {}" .format (
419
- copy_backup .name , copy_backup .size_bytes , copy_backup .create_time , copy_backup .version_time ,
444
+ copy_backup .name ,
445
+ copy_backup .size_bytes ,
446
+ copy_backup .create_time ,
447
+ copy_backup .version_time ,
420
448
)
421
449
)
422
450
451
+
423
452
# [END spanner_copy_backup]
424
453
425
454
0 commit comments