@@ -35,23 +35,25 @@ def create_backup(instance_id, database_id, backup_id, version_time):
3535 backup as backup_pb
3636
3737 spanner_client = spanner .Client ()
38- instance = spanner_client .instance ( instance_id )
39- database = instance . database ( database_id )
38+ instance_admin_api = spanner_client .instance_admin_api
39+ database_admin_api = spanner_client . database_admin_api
4040
4141 # Create a backup
4242 expire_time = datetime .utcnow () + timedelta (days = 14 )
4343
4444 request = backup_pb .CreateBackupRequest (
45- parent = instance . name ,
45+ parent = instance_admin_api . instance_path ( spanner_client . project , instance_id ) ,
4646 backup_id = backup_id ,
4747 backup = backup_pb .Backup (
48- database = database .name ,
48+ database = database_admin_api .database_path (
49+ spanner_client .project , instance_id , database_id
50+ ),
4951 expire_time = expire_time ,
5052 version_time = version_time ,
5153 ),
5254 )
5355
54- operation = spanner_client . database_admin_api .create_backup (request )
56+ operation = database_admin_api .create_backup (request )
5557
5658 # Wait for backup operation to complete.
5759 backup = operation .result (2100 )
@@ -81,8 +83,8 @@ def create_backup_with_encryption_key(
8183 backup as backup_pb
8284
8385 spanner_client = spanner .Client ()
84- instance = spanner_client .instance ( instance_id )
85- database = instance . database ( database_id )
86+ instance_admin_api = spanner_client .instance_admin_api
87+ database_admin_api = spanner_client . database_admin_api
8688
8789 # Create a backup
8890 expire_time = datetime .utcnow () + timedelta (days = 14 )
@@ -91,15 +93,17 @@ def create_backup_with_encryption_key(
9193 "kms_key_name" : kms_key_name ,
9294 }
9395 request = backup_pb .CreateBackupRequest (
94- parent = instance . name ,
96+ parent = instance_admin_api . instance_path ( spanner_client . project , instance_id ) ,
9597 backup_id = backup_id ,
9698 backup = backup_pb .Backup (
97- database = database .name ,
99+ database = database_admin_api .database_path (
100+ spanner_client .project , instance_id , database_id
101+ ),
98102 expire_time = expire_time ,
99103 ),
100104 encryption_config = encryption_config ,
101105 )
102- operation = spanner_client . database_admin_api .create_backup (request )
106+ operation = database_admin_api .create_backup (request )
103107
104108 # Wait for backup operation to complete.
105109 backup = operation .result (2100 )
@@ -124,13 +128,16 @@ def restore_database(instance_id, new_database_id, backup_id):
124128 from google .cloud .spanner_admin_database_v1 import RestoreDatabaseRequest
125129
126130 spanner_client = spanner .Client ()
127- instance = spanner_client .instance ( instance_id )
131+ instance_admin_api = spanner_client .instance_admin_api
128132
129133 # Start restoring an existing backup to a new database.
130134 request = RestoreDatabaseRequest (
131- parent = instance . name ,
135+ parent = instance_admin_api . instance_path ( spanner_client . project , instance_id ) ,
132136 database_id = new_database_id ,
133- backup = "{}/backups/{}" .format (instance .name , backup_id ),
137+ backup = "{}/backups/{}" .format (
138+ instance_admin_api .instance_path (spanner_client .project , instance_id ),
139+ backup_id ,
140+ ),
134141 )
135142 operation = spanner_client .database_admin_api .restore_database (request )
136143
@@ -161,7 +168,7 @@ def restore_database_with_encryption_key(
161168 RestoreDatabaseEncryptionConfig , RestoreDatabaseRequest )
162169
163170 spanner_client = spanner .Client ()
164- instance = spanner_client .instance ( instance_id )
171+ instance_admin_api = spanner_client .instance_admin_api
165172
166173 # Start restoring an existing backup to a new database.
167174 encryption_config = {
@@ -170,9 +177,12 @@ def restore_database_with_encryption_key(
170177 }
171178
172179 request = RestoreDatabaseRequest (
173- parent = instance . name ,
180+ parent = instance_admin_api . instance_path ( spanner_client . project , instance_id ) ,
174181 database_id = new_database_id ,
175- backup = "{}/backups/{}" .format (instance .name , backup_id ),
182+ backup = "{}/backups/{}" .format (
183+ instance_admin_api .instance_path (spanner_client .project , instance_id ),
184+ backup_id ,
185+ ),
176186 encryption_config = encryption_config ,
177187 )
178188 operation = spanner_client .database_admin_api .restore_database (request )
@@ -201,43 +211,53 @@ def cancel_backup(instance_id, database_id, backup_id):
201211 backup as backup_pb
202212
203213 spanner_client = spanner .Client ()
204- instance = spanner_client .instance ( instance_id )
205- database = instance . database ( database_id )
214+ instance_admin_api = spanner_client .instance_admin_api
215+ database_admin_api = spanner_client . database_admin_api
206216
207217 expire_time = datetime .utcnow () + timedelta (days = 30 )
208218
209219 # Create a backup.
210220 request = backup_pb .CreateBackupRequest (
211- parent = instance . name ,
221+ parent = instance_admin_api . instance_path ( spanner_client . project , instance_id ) ,
212222 backup_id = backup_id ,
213223 backup = backup_pb .Backup (
214- database = database .name ,
224+ database = database_admin_api .database_path (
225+ spanner_client .project , instance_id , database_id
226+ ),
215227 expire_time = expire_time ,
216228 ),
217229 )
218230
219- operation = spanner_client . database_admin_api .create_backup (request )
231+ operation = database_admin_api .create_backup (request )
220232 # Cancel backup creation.
221233 operation .cancel ()
222234
223- # Cancel operations are best effort so either it will complete or
235+ # Cancel operations are the best effort so either it will complete or
224236 # be cancelled.
225237 while not operation .done ():
226238 time .sleep (300 ) # 5 mins
227239
228240 try :
229- spanner_client . database_admin_api .get_backup (
241+ database_admin_api .get_backup (
230242 backup_pb .GetBackupRequest (
231- name = "{}/backups/{}" .format (instance .name , backup_id )
243+ name = "{}/backups/{}" .format (
244+ instance_admin_api .instance_path (
245+ spanner_client .project , instance_id
246+ ),
247+ backup_id ,
248+ )
232249 )
233250 )
234251 except NotFound :
235252 print ("Backup creation was successfully cancelled." )
236253 return
237254 print ("Backup was created before the cancel completed." )
238- spanner_client . database_admin_api .delete_backup (
255+ database_admin_api .delete_backup (
239256 backup_pb .DeleteBackupRequest (
240- name = "{}/backups/{}" .format (instance .name , backup_id )
257+ name = "{}/backups/{}" .format (
258+ instance_admin_api .instance_path (spanner_client .project , instance_id ),
259+ backup_id ,
260+ )
241261 )
242262 )
243263 print ("Backup deleted." )
@@ -252,7 +272,7 @@ def list_backup_operations(instance_id, database_id, backup_id):
252272 backup as backup_pb
253273
254274 spanner_client = spanner .Client ()
255- instance = spanner_client .instance ( instance_id )
275+ instance_admin_api = spanner_client .instance_admin_api
256276
257277 # List the CreateBackup operations.
258278 filter_ = (
@@ -261,7 +281,8 @@ def list_backup_operations(instance_id, database_id, backup_id):
261281 "AND (metadata.database:{})"
262282 ).format (database_id )
263283 request = backup_pb .ListBackupOperationsRequest (
264- parent = instance .name , filter = filter_
284+ parent = instance_admin_api .instance_path (spanner_client .project , instance_id ),
285+ filter = filter_ ,
265286 )
266287 operations = spanner_client .database_admin_api .list_backup_operations (request )
267288 for op in operations :
@@ -280,7 +301,8 @@ def list_backup_operations(instance_id, database_id, backup_id):
280301 "AND (metadata.source_backup:{})"
281302 ).format (backup_id )
282303 request = backup_pb .ListBackupOperationsRequest (
283- parent = instance .name , filter = filter_
304+ parent = instance_admin_api .instance_path (spanner_client .project , instance_id ),
305+ filter = filter_ ,
284306 )
285307 operations = spanner_client .database_admin_api .list_backup_operations (request )
286308 for op in operations :
@@ -305,15 +327,16 @@ def list_database_operations(instance_id):
305327 spanner_database_admin
306328
307329 spanner_client = spanner .Client ()
308- instance = spanner_client .instance ( instance_id )
330+ instance_admin_api = spanner_client .instance_admin_api
309331
310332 # List the progress of restore.
311333 filter_ = (
312334 "(metadata.@type:type.googleapis.com/"
313335 "google.spanner.admin.database.v1.OptimizeRestoredDatabaseMetadata)"
314336 )
315337 request = spanner_database_admin .ListDatabaseOperationsRequest (
316- parent = instance .name , filter = filter_
338+ parent = instance_admin_api .instance_path (spanner_client .project , instance_id ),
339+ filter = filter_ ,
317340 )
318341 operations = spanner_client .database_admin_api .list_database_operations (request )
319342 for op in operations :
@@ -336,19 +359,23 @@ def list_backups(instance_id, database_id, backup_id):
336359 backup as backup_pb
337360
338361 spanner_client = spanner .Client ()
339- instance = spanner_client .instance ( instance_id )
362+ instance_admin_api = spanner_client .instance_admin_api
340363
341364 # List all backups.
342365 print ("All backups:" )
343- request = backup_pb .ListBackupsRequest (parent = instance .name , filter = "" )
366+ request = backup_pb .ListBackupsRequest (
367+ parent = instance_admin_api .instance_path (spanner_client .project , instance_id ),
368+ filter = "" ,
369+ )
344370 operations = spanner_client .database_admin_api .list_backups (request )
345371 for backup in operations :
346372 print (backup .name )
347373
348374 # List all backups that contain a name.
349375 print ('All backups with backup name containing "{}":' .format (backup_id ))
350376 request = backup_pb .ListBackupsRequest (
351- parent = instance .name , filter = "name:{}" .format (backup_id )
377+ parent = instance_admin_api .instance_path (spanner_client .project , instance_id ),
378+ filter = "name:{}" .format (backup_id ),
352379 )
353380 operations = spanner_client .database_admin_api .list_backups (request )
354381 for backup in operations :
@@ -357,7 +384,8 @@ def list_backups(instance_id, database_id, backup_id):
357384 # List all backups for a database that contains a name.
358385 print ('All backups with database name containing "{}":' .format (database_id ))
359386 request = backup_pb .ListBackupsRequest (
360- parent = instance .name , filter = "database:{}" .format (database_id )
387+ parent = instance_admin_api .instance_path (spanner_client .project , instance_id ),
388+ filter = "database:{}" .format (database_id ),
361389 )
362390 operations = spanner_client .database_admin_api .list_backups (request )
363391 for backup in operations :
@@ -371,7 +399,7 @@ def list_backups(instance_id, database_id, backup_id):
371399 )
372400 )
373401 request = backup_pb .ListBackupsRequest (
374- parent = instance . name ,
402+ parent = instance_admin_api . instance_path ( spanner_client . project , instance_id ) ,
375403 filter = 'expire_time < "{}-{}-{}T{}:{}:{}Z"' .format (* expire_time .timetuple ()),
376404 )
377405 operations = spanner_client .database_admin_api .list_backups (request )
@@ -381,7 +409,8 @@ def list_backups(instance_id, database_id, backup_id):
381409 # List all backups with a size greater than some bytes.
382410 print ("All backups with backup size more than 100 bytes:" )
383411 request = backup_pb .ListBackupsRequest (
384- parent = instance .name , filter = "size_bytes > 100"
412+ parent = instance_admin_api .instance_path (spanner_client .project , instance_id ),
413+ filter = "size_bytes > 100" ,
385414 )
386415 operations = spanner_client .database_admin_api .list_backups (request )
387416 for backup in operations :
@@ -395,7 +424,7 @@ def list_backups(instance_id, database_id, backup_id):
395424 )
396425 )
397426 request = backup_pb .ListBackupsRequest (
398- parent = instance . name ,
427+ parent = instance_admin_api . instance_path ( spanner_client . project , instance_id ) ,
399428 filter = 'create_time >= "{}-{}-{}T{}:{}:{}Z" AND state:READY' .format (
400429 * create_time .timetuple ()
401430 ),
@@ -408,7 +437,10 @@ def list_backups(instance_id, database_id, backup_id):
408437 # If there are multiple pages, additional ``ListBackup``
409438 # requests will be made as needed while iterating.
410439 paged_backups = set ()
411- request = backup_pb .ListBackupsRequest (parent = instance .name , page_size = 2 )
440+ request = backup_pb .ListBackupsRequest (
441+ parent = instance_admin_api .instance_path (spanner_client .project , instance_id ),
442+ page_size = 2 ,
443+ )
412444 operations = spanner_client .database_admin_api .list_backups (request )
413445 for backup in operations :
414446 paged_backups .add (backup .name )
@@ -425,10 +457,13 @@ def delete_backup(instance_id, backup_id):
425457 backup as backup_pb
426458
427459 spanner_client = spanner .Client ()
428- instance = spanner_client .instance ( instance_id )
460+ instance_admin_api = spanner_client .instance_admin_api
429461 backup = spanner_client .database_admin_api .get_backup (
430462 backup_pb .GetBackupRequest (
431- name = "{}/backups/{}" .format (instance .name , backup_id )
463+ name = "{}/backups/{}" .format (
464+ instance_admin_api .instance_path (spanner_client .project , instance_id ),
465+ backup_id ,
466+ )
432467 )
433468 )
434469
@@ -437,7 +472,12 @@ def delete_backup(instance_id, backup_id):
437472 time .sleep (30 )
438473 backup = spanner_client .database_admin_api .get_backup (
439474 backup_pb .GetBackupRequest (
440- name = "{}/backups/{}" .format (instance .name , backup_id )
475+ name = "{}/backups/{}" .format (
476+ instance_admin_api .instance_path (
477+ spanner_client .project , instance_id
478+ ),
479+ backup_id ,
480+ )
441481 )
442482 )
443483
@@ -465,11 +505,14 @@ def update_backup(instance_id, backup_id):
465505 backup as backup_pb
466506
467507 spanner_client = spanner .Client ()
468- instance = spanner_client .instance ( instance_id )
508+ instance_admin_api = spanner_client .instance_admin_api
469509
470510 backup = spanner_client .database_admin_api .get_backup (
471511 backup_pb .GetBackupRequest (
472- name = "{}/backups/{}" .format (instance .name , backup_id )
512+ name = "{}/backups/{}" .format (
513+ instance_admin_api .instance_path (spanner_client .project , instance_id ),
514+ backup_id ,
515+ )
473516 )
474517 )
475518
@@ -503,7 +546,7 @@ def create_database_with_version_retention_period(
503546 spanner_database_admin
504547
505548 spanner_client = spanner .Client ()
506- instance = spanner_client .instance ( instance_id )
549+ instance_admin_api = spanner_client .instance_admin_api
507550 ddl_statements = [
508551 "CREATE TABLE Singers ("
509552 + " SingerId INT64 NOT NULL,"
@@ -524,7 +567,9 @@ def create_database_with_version_retention_period(
524567 ]
525568 operation = spanner_client .database_admin_api .create_database (
526569 request = spanner_database_admin .CreateDatabaseRequest (
527- parent = instance .name ,
570+ parent = instance_admin_api .instance_path (
571+ spanner_client .project , instance_id
572+ ),
528573 create_statement = "CREATE DATABASE `{}`" .format (database_id ),
529574 extra_statements = ddl_statements ,
530575 )
@@ -553,12 +598,12 @@ def copy_backup(instance_id, backup_id, source_backup_path):
553598 backup as backup_pb
554599
555600 spanner_client = spanner .Client ()
556- instance = spanner_client .instance ( instance_id )
601+ instance_admin_api = spanner_client .instance_admin_api
557602
558603 # Create a backup object and wait for copy backup operation to complete.
559604 expire_time = datetime .utcnow () + timedelta (days = 14 )
560605 request = backup_pb .CopyBackupRequest (
561- parent = instance . name ,
606+ parent = instance_admin_api . instance_path ( spanner_client . project , instance_id ) ,
562607 backup_id = backup_id ,
563608 source_backup = source_backup_path ,
564609 expire_time = expire_time ,
0 commit comments