@@ -126,18 +126,17 @@ def restore_database(instance_id, new_database_id, backup_id):
126
126
from google .cloud .spanner_admin_database_v1 import RestoreDatabaseRequest
127
127
128
128
spanner_client = spanner .Client ()
129
- instance_admin_api = spanner_client .instance_admin_api
129
+ database_admin_api = spanner_client .database_admin_api
130
130
131
131
# Start restoring an existing backup to a new database.
132
132
request = RestoreDatabaseRequest (
133
- parent = instance_admin_api .instance_path (spanner_client .project , instance_id ),
133
+ parent = database_admin_api .instance_path (spanner_client .project , instance_id ),
134
134
database_id = new_database_id ,
135
- backup = "{}/backups/{}" .format (
136
- instance_admin_api .instance_path (spanner_client .project , instance_id ),
137
- backup_id ,
135
+ backup = database_admin_api .backup_path (
136
+ spanner_client .project , instance_id , backup_id
138
137
),
139
138
)
140
- operation = spanner_client . database_admin_api .restore_database (request )
139
+ operation = database_admin_api .restore_database (request )
141
140
142
141
# Wait for restore operation to complete.
143
142
db = operation .result (1600 )
@@ -166,7 +165,7 @@ def restore_database_with_encryption_key(
166
165
RestoreDatabaseEncryptionConfig , RestoreDatabaseRequest )
167
166
168
167
spanner_client = spanner .Client ()
169
- instance_admin_api = spanner_client .instance_admin_api
168
+ database_admin_api = spanner_client .database_admin_api
170
169
171
170
# Start restoring an existing backup to a new database.
172
171
encryption_config = {
@@ -175,15 +174,14 @@ def restore_database_with_encryption_key(
175
174
}
176
175
177
176
request = RestoreDatabaseRequest (
178
- parent = instance_admin_api .instance_path (spanner_client .project , instance_id ),
177
+ parent = database_admin_api .instance_path (spanner_client .project , instance_id ),
179
178
database_id = new_database_id ,
180
- backup = "{}/backups/{}" .format (
181
- instance_admin_api .instance_path (spanner_client .project , instance_id ),
182
- backup_id ,
179
+ backup = database_admin_api .backup_path (
180
+ spanner_client .project , instance_id , backup_id
183
181
),
184
182
encryption_config = encryption_config ,
185
183
)
186
- operation = spanner_client . database_admin_api .restore_database (request )
184
+ operation = database_admin_api .restore_database (request )
187
185
188
186
# Wait for restore operation to complete.
189
187
db = operation .result (1600 )
@@ -237,12 +235,9 @@ def cancel_backup(instance_id, database_id, backup_id):
237
235
try :
238
236
database_admin_api .get_backup (
239
237
backup_pb .GetBackupRequest (
240
- name = "{}/backups/{}" .format (
241
- database_admin_api .instance_path (
242
- spanner_client .project , instance_id
243
- ),
244
- backup_id ,
245
- )
238
+ name = database_admin_api .backup_path (
239
+ spanner_client .project , instance_id , backup_id
240
+ ),
246
241
)
247
242
)
248
243
except NotFound :
@@ -251,10 +246,9 @@ def cancel_backup(instance_id, database_id, backup_id):
251
246
print ("Backup was created before the cancel completed." )
252
247
database_admin_api .delete_backup (
253
248
backup_pb .DeleteBackupRequest (
254
- name = "{}/backups/{}" .format (
255
- database_admin_api .instance_path (spanner_client .project , instance_id ),
256
- backup_id ,
257
- )
249
+ name = database_admin_api .backup_path (
250
+ spanner_client .project , instance_id , backup_id
251
+ ),
258
252
)
259
253
)
260
254
print ("Backup deleted." )
@@ -269,7 +263,7 @@ def list_backup_operations(instance_id, database_id, backup_id):
269
263
backup as backup_pb
270
264
271
265
spanner_client = spanner .Client ()
272
- instance_admin_api = spanner_client .instance_admin_api
266
+ database_admin_api = spanner_client .database_admin_api
273
267
274
268
# List the CreateBackup operations.
275
269
filter_ = (
@@ -278,10 +272,10 @@ def list_backup_operations(instance_id, database_id, backup_id):
278
272
"AND (metadata.database:{})"
279
273
).format (database_id )
280
274
request = backup_pb .ListBackupOperationsRequest (
281
- parent = instance_admin_api .instance_path (spanner_client .project , instance_id ),
275
+ parent = database_admin_api .instance_path (spanner_client .project , instance_id ),
282
276
filter = filter_ ,
283
277
)
284
- operations = spanner_client . database_admin_api .list_backup_operations (request )
278
+ operations = database_admin_api .list_backup_operations (request )
285
279
for op in operations :
286
280
metadata = protobuf_helpers .from_any_pb (
287
281
backup_pb .CreateBackupMetadata , op .metadata
@@ -298,10 +292,10 @@ def list_backup_operations(instance_id, database_id, backup_id):
298
292
"AND (metadata.source_backup:{})"
299
293
).format (backup_id )
300
294
request = backup_pb .ListBackupOperationsRequest (
301
- parent = instance_admin_api .instance_path (spanner_client .project , instance_id ),
295
+ parent = database_admin_api .instance_path (spanner_client .project , instance_id ),
302
296
filter = filter_ ,
303
297
)
304
- operations = spanner_client . database_admin_api .list_backup_operations (request )
298
+ operations = database_admin_api .list_backup_operations (request )
305
299
for op in operations :
306
300
metadata = protobuf_helpers .from_any_pb (
307
301
backup_pb .CopyBackupMetadata , op .metadata
@@ -324,18 +318,18 @@ def list_database_operations(instance_id):
324
318
spanner_database_admin
325
319
326
320
spanner_client = spanner .Client ()
327
- instance_admin_api = spanner_client .instance_admin_api
321
+ database_admin_api = spanner_client .database_admin_api
328
322
329
323
# List the progress of restore.
330
324
filter_ = (
331
325
"(metadata.@type:type.googleapis.com/"
332
326
"google.spanner.admin.database.v1.OptimizeRestoredDatabaseMetadata)"
333
327
)
334
328
request = spanner_database_admin .ListDatabaseOperationsRequest (
335
- parent = instance_admin_api .instance_path (spanner_client .project , instance_id ),
329
+ parent = database_admin_api .instance_path (spanner_client .project , instance_id ),
336
330
filter = filter_ ,
337
331
)
338
- operations = spanner_client . database_admin_api .list_database_operations (request )
332
+ operations = database_admin_api .list_database_operations (request )
339
333
for op in operations :
340
334
metadata = protobuf_helpers .from_any_pb (
341
335
spanner_database_admin .OptimizeRestoredDatabaseMetadata , op .metadata
@@ -356,35 +350,35 @@ def list_backups(instance_id, database_id, backup_id):
356
350
backup as backup_pb
357
351
358
352
spanner_client = spanner .Client ()
359
- instance_admin_api = spanner_client .instance_admin_api
353
+ database_admin_api = spanner_client .database_admin_api
360
354
361
355
# List all backups.
362
356
print ("All backups:" )
363
357
request = backup_pb .ListBackupsRequest (
364
- parent = instance_admin_api .instance_path (spanner_client .project , instance_id ),
358
+ parent = database_admin_api .instance_path (spanner_client .project , instance_id ),
365
359
filter = "" ,
366
360
)
367
- operations = spanner_client . database_admin_api .list_backups (request )
361
+ operations = database_admin_api .list_backups (request )
368
362
for backup in operations :
369
363
print (backup .name )
370
364
371
365
# List all backups that contain a name.
372
366
print ('All backups with backup name containing "{}":' .format (backup_id ))
373
367
request = backup_pb .ListBackupsRequest (
374
- parent = instance_admin_api .instance_path (spanner_client .project , instance_id ),
368
+ parent = database_admin_api .instance_path (spanner_client .project , instance_id ),
375
369
filter = "name:{}" .format (backup_id ),
376
370
)
377
- operations = spanner_client . database_admin_api .list_backups (request )
371
+ operations = database_admin_api .list_backups (request )
378
372
for backup in operations :
379
373
print (backup .name )
380
374
381
375
# List all backups for a database that contains a name.
382
376
print ('All backups with database name containing "{}":' .format (database_id ))
383
377
request = backup_pb .ListBackupsRequest (
384
- parent = instance_admin_api .instance_path (spanner_client .project , instance_id ),
378
+ parent = database_admin_api .instance_path (spanner_client .project , instance_id ),
385
379
filter = "database:{}" .format (database_id ),
386
380
)
387
- operations = spanner_client . database_admin_api .list_backups (request )
381
+ operations = database_admin_api .list_backups (request )
388
382
for backup in operations :
389
383
print (backup .name )
390
384
@@ -396,20 +390,20 @@ def list_backups(instance_id, database_id, backup_id):
396
390
)
397
391
)
398
392
request = backup_pb .ListBackupsRequest (
399
- parent = instance_admin_api .instance_path (spanner_client .project , instance_id ),
393
+ parent = database_admin_api .instance_path (spanner_client .project , instance_id ),
400
394
filter = 'expire_time < "{}-{}-{}T{}:{}:{}Z"' .format (* expire_time .timetuple ()),
401
395
)
402
- operations = spanner_client . database_admin_api .list_backups (request )
396
+ operations = database_admin_api .list_backups (request )
403
397
for backup in operations :
404
398
print (backup .name )
405
399
406
400
# List all backups with a size greater than some bytes.
407
401
print ("All backups with backup size more than 100 bytes:" )
408
402
request = backup_pb .ListBackupsRequest (
409
- parent = instance_admin_api .instance_path (spanner_client .project , instance_id ),
403
+ parent = database_admin_api .instance_path (spanner_client .project , instance_id ),
410
404
filter = "size_bytes > 100" ,
411
405
)
412
- operations = spanner_client . database_admin_api .list_backups (request )
406
+ operations = database_admin_api .list_backups (request )
413
407
for backup in operations :
414
408
print (backup .name )
415
409
@@ -421,12 +415,12 @@ def list_backups(instance_id, database_id, backup_id):
421
415
)
422
416
)
423
417
request = backup_pb .ListBackupsRequest (
424
- parent = instance_admin_api .instance_path (spanner_client .project , instance_id ),
418
+ parent = database_admin_api .instance_path (spanner_client .project , instance_id ),
425
419
filter = 'create_time >= "{}-{}-{}T{}:{}:{}Z" AND state:READY' .format (
426
420
* create_time .timetuple ()
427
421
),
428
422
)
429
- operations = spanner_client . database_admin_api .list_backups (request )
423
+ operations = database_admin_api .list_backups (request )
430
424
for backup in operations :
431
425
print (backup .name )
432
426
@@ -435,10 +429,10 @@ def list_backups(instance_id, database_id, backup_id):
435
429
# requests will be made as needed while iterating.
436
430
paged_backups = set ()
437
431
request = backup_pb .ListBackupsRequest (
438
- parent = instance_admin_api .instance_path (spanner_client .project , instance_id ),
432
+ parent = database_admin_api .instance_path (spanner_client .project , instance_id ),
439
433
page_size = 2 ,
440
434
)
441
- operations = spanner_client . database_admin_api .list_backups (request )
435
+ operations = database_admin_api .list_backups (request )
442
436
for backup in operations :
443
437
paged_backups .add (backup .name )
444
438
for backup in paged_backups :
@@ -454,11 +448,11 @@ def delete_backup(instance_id, backup_id):
454
448
backup as backup_pb
455
449
456
450
spanner_client = spanner .Client ()
457
- instance_admin_api = spanner_client .instance_admin_api
458
- backup = spanner_client . database_admin_api .get_backup (
451
+ database_admin_api = spanner_client .database_admin_api
452
+ backup = database_admin_api .get_backup (
459
453
backup_pb .GetBackupRequest (
460
454
name = "{}/backups/{}" .format (
461
- instance_admin_api .instance_path (spanner_client .project , instance_id ),
455
+ database_admin_api .instance_path (spanner_client .project , instance_id ),
462
456
backup_id ,
463
457
)
464
458
)
@@ -467,10 +461,10 @@ def delete_backup(instance_id, backup_id):
467
461
# Wait for databases that reference this backup to finish optimizing.
468
462
while backup .referencing_databases :
469
463
time .sleep (30 )
470
- backup = spanner_client . database_admin_api .get_backup (
464
+ backup = database_admin_api .get_backup (
471
465
backup_pb .GetBackupRequest (
472
466
name = "{}/backups/{}" .format (
473
- instance_admin_api .instance_path (
467
+ database_admin_api .instance_path (
474
468
spanner_client .project , instance_id
475
469
),
476
470
backup_id ,
@@ -479,13 +473,11 @@ def delete_backup(instance_id, backup_id):
479
473
)
480
474
481
475
# Delete the backup.
482
- spanner_client .database_admin_api .delete_backup (
483
- backup_pb .DeleteBackupRequest (name = backup .name )
484
- )
476
+ database_admin_api .delete_backup (backup_pb .DeleteBackupRequest (name = backup .name ))
485
477
486
478
# Verify that the backup is deleted.
487
479
try :
488
- backup = spanner_client . database_admin_api .get_backup (
480
+ backup = database_admin_api .get_backup (
489
481
backup_pb .GetBackupRequest (name = backup .name )
490
482
)
491
483
except NotFound :
@@ -502,22 +494,21 @@ def update_backup(instance_id, backup_id):
502
494
backup as backup_pb
503
495
504
496
spanner_client = spanner .Client ()
505
- instance_admin_api = spanner_client .instance_admin_api
497
+ database_admin_api = spanner_client .database_admin_api
506
498
507
- backup = spanner_client . database_admin_api .get_backup (
499
+ backup = database_admin_api .get_backup (
508
500
backup_pb .GetBackupRequest (
509
- name = "{}/backups/{}" .format (
510
- instance_admin_api .instance_path (spanner_client .project , instance_id ),
511
- backup_id ,
512
- )
501
+ name = database_admin_api .backup_path (
502
+ spanner_client .project , instance_id , backup_id
503
+ ),
513
504
)
514
505
)
515
506
516
507
# Expire time must be within 366 days of the create time of the backup.
517
508
old_expire_time = backup .expire_time
518
509
# New expire time should be less than the max expire time
519
510
new_expire_time = min (backup .max_expire_time , old_expire_time + timedelta (days = 30 ))
520
- spanner_client . database_admin_api .update_backup (
511
+ database_admin_api .update_backup (
521
512
backup_pb .UpdateBackupRequest (
522
513
backup = backup_pb .Backup (name = backup .name , expire_time = new_expire_time ),
523
514
update_mask = {"paths" : ["expire_time" ]},
@@ -543,7 +534,7 @@ def create_database_with_version_retention_period(
543
534
spanner_database_admin
544
535
545
536
spanner_client = spanner .Client ()
546
- instance_admin_api = spanner_client .instance_admin_api
537
+ database_admin_api = spanner_client .database_admin_api
547
538
ddl_statements = [
548
539
"CREATE TABLE Singers ("
549
540
+ " SingerId INT64 NOT NULL,"
@@ -562,9 +553,9 @@ def create_database_with_version_retention_period(
562
553
database_id , retention_period
563
554
),
564
555
]
565
- operation = spanner_client . database_admin_api .create_database (
556
+ operation = database_admin_api .create_database (
566
557
request = spanner_database_admin .CreateDatabaseRequest (
567
- parent = instance_admin_api .instance_path (
558
+ parent = database_admin_api .instance_path (
568
559
spanner_client .project , instance_id
569
560
),
570
561
create_statement = "CREATE DATABASE `{}`" .format (database_id ),
@@ -579,7 +570,7 @@ def create_database_with_version_retention_period(
579
570
)
580
571
)
581
572
582
- spanner_client . database_admin_api .drop_database (
573
+ database_admin_api .drop_database (
583
574
spanner_database_admin .DropDatabaseRequest (database = db .name )
584
575
)
585
576
@@ -595,18 +586,18 @@ def copy_backup(instance_id, backup_id, source_backup_path):
595
586
backup as backup_pb
596
587
597
588
spanner_client = spanner .Client ()
598
- instance_admin_api = spanner_client .instance_admin_api
589
+ database_admin_api = spanner_client .database_admin_api
599
590
600
591
# Create a backup object and wait for copy backup operation to complete.
601
592
expire_time = datetime .utcnow () + timedelta (days = 14 )
602
593
request = backup_pb .CopyBackupRequest (
603
- parent = instance_admin_api .instance_path (spanner_client .project , instance_id ),
594
+ parent = database_admin_api .instance_path (spanner_client .project , instance_id ),
604
595
backup_id = backup_id ,
605
596
source_backup = source_backup_path ,
606
597
expire_time = expire_time ,
607
598
)
608
599
609
- operation = spanner_client . database_admin_api .copy_backup (request )
600
+ operation = database_admin_api .copy_backup (request )
610
601
611
602
# Wait for backup operation to complete.
612
603
copy_backup = operation .result (2100 )
0 commit comments