diff --git a/samples/samples/backup_sample.py b/samples/samples/backup_sample.py index 40aed8e17f..d3c2c667c5 100644 --- a/samples/samples/backup_sample.py +++ b/samples/samples/backup_sample.py @@ -126,18 +126,17 @@ def restore_database(instance_id, new_database_id, backup_id): from google.cloud.spanner_admin_database_v1 import RestoreDatabaseRequest spanner_client = spanner.Client() - instance_admin_api = spanner_client.instance_admin_api + database_admin_api = spanner_client.database_admin_api # Start restoring an existing backup to a new database. request = RestoreDatabaseRequest( - parent=instance_admin_api.instance_path(spanner_client.project, instance_id), + parent=database_admin_api.instance_path(spanner_client.project, instance_id), database_id=new_database_id, - backup="{}/backups/{}".format( - instance_admin_api.instance_path(spanner_client.project, instance_id), - backup_id, + backup=database_admin_api.backup_path( + spanner_client.project, instance_id, backup_id ), ) - operation = spanner_client.database_admin_api.restore_database(request) + operation = database_admin_api.restore_database(request) # Wait for restore operation to complete. db = operation.result(1600) @@ -166,7 +165,7 @@ def restore_database_with_encryption_key( RestoreDatabaseEncryptionConfig, RestoreDatabaseRequest) spanner_client = spanner.Client() - instance_admin_api = spanner_client.instance_admin_api + database_admin_api = spanner_client.database_admin_api # Start restoring an existing backup to a new database. encryption_config = { @@ -175,15 +174,14 @@ def restore_database_with_encryption_key( } request = RestoreDatabaseRequest( - parent=instance_admin_api.instance_path(spanner_client.project, instance_id), + parent=database_admin_api.instance_path(spanner_client.project, instance_id), database_id=new_database_id, - backup="{}/backups/{}".format( - instance_admin_api.instance_path(spanner_client.project, instance_id), - backup_id, + backup=database_admin_api.backup_path( + spanner_client.project, instance_id, backup_id ), encryption_config=encryption_config, ) - operation = spanner_client.database_admin_api.restore_database(request) + operation = database_admin_api.restore_database(request) # Wait for restore operation to complete. db = operation.result(1600) @@ -237,12 +235,9 @@ def cancel_backup(instance_id, database_id, backup_id): try: database_admin_api.get_backup( backup_pb.GetBackupRequest( - name="{}/backups/{}".format( - database_admin_api.instance_path( - spanner_client.project, instance_id - ), - backup_id, - ) + name=database_admin_api.backup_path( + spanner_client.project, instance_id, backup_id + ), ) ) except NotFound: @@ -251,10 +246,9 @@ def cancel_backup(instance_id, database_id, backup_id): print("Backup was created before the cancel completed.") database_admin_api.delete_backup( backup_pb.DeleteBackupRequest( - name="{}/backups/{}".format( - database_admin_api.instance_path(spanner_client.project, instance_id), - backup_id, - ) + name=database_admin_api.backup_path( + spanner_client.project, instance_id, backup_id + ), ) ) print("Backup deleted.") @@ -269,7 +263,7 @@ def list_backup_operations(instance_id, database_id, backup_id): backup as backup_pb spanner_client = spanner.Client() - instance_admin_api = spanner_client.instance_admin_api + database_admin_api = spanner_client.database_admin_api # List the CreateBackup operations. filter_ = ( @@ -278,10 +272,10 @@ def list_backup_operations(instance_id, database_id, backup_id): "AND (metadata.database:{})" ).format(database_id) request = backup_pb.ListBackupOperationsRequest( - parent=instance_admin_api.instance_path(spanner_client.project, instance_id), + parent=database_admin_api.instance_path(spanner_client.project, instance_id), filter=filter_, ) - operations = spanner_client.database_admin_api.list_backup_operations(request) + operations = database_admin_api.list_backup_operations(request) for op in operations: metadata = protobuf_helpers.from_any_pb( backup_pb.CreateBackupMetadata, op.metadata @@ -298,10 +292,10 @@ def list_backup_operations(instance_id, database_id, backup_id): "AND (metadata.source_backup:{})" ).format(backup_id) request = backup_pb.ListBackupOperationsRequest( - parent=instance_admin_api.instance_path(spanner_client.project, instance_id), + parent=database_admin_api.instance_path(spanner_client.project, instance_id), filter=filter_, ) - operations = spanner_client.database_admin_api.list_backup_operations(request) + operations = database_admin_api.list_backup_operations(request) for op in operations: metadata = protobuf_helpers.from_any_pb( backup_pb.CopyBackupMetadata, op.metadata @@ -324,7 +318,7 @@ def list_database_operations(instance_id): spanner_database_admin spanner_client = spanner.Client() - instance_admin_api = spanner_client.instance_admin_api + database_admin_api = spanner_client.database_admin_api # List the progress of restore. filter_ = ( @@ -332,10 +326,10 @@ def list_database_operations(instance_id): "google.spanner.admin.database.v1.OptimizeRestoredDatabaseMetadata)" ) request = spanner_database_admin.ListDatabaseOperationsRequest( - parent=instance_admin_api.instance_path(spanner_client.project, instance_id), + parent=database_admin_api.instance_path(spanner_client.project, instance_id), filter=filter_, ) - operations = spanner_client.database_admin_api.list_database_operations(request) + operations = database_admin_api.list_database_operations(request) for op in operations: metadata = protobuf_helpers.from_any_pb( spanner_database_admin.OptimizeRestoredDatabaseMetadata, op.metadata @@ -356,35 +350,35 @@ def list_backups(instance_id, database_id, backup_id): backup as backup_pb spanner_client = spanner.Client() - instance_admin_api = spanner_client.instance_admin_api + database_admin_api = spanner_client.database_admin_api # List all backups. print("All backups:") request = backup_pb.ListBackupsRequest( - parent=instance_admin_api.instance_path(spanner_client.project, instance_id), + parent=database_admin_api.instance_path(spanner_client.project, instance_id), filter="", ) - operations = spanner_client.database_admin_api.list_backups(request) + operations = database_admin_api.list_backups(request) for backup in operations: print(backup.name) # List all backups that contain a name. print('All backups with backup name containing "{}":'.format(backup_id)) request = backup_pb.ListBackupsRequest( - parent=instance_admin_api.instance_path(spanner_client.project, instance_id), + parent=database_admin_api.instance_path(spanner_client.project, instance_id), filter="name:{}".format(backup_id), ) - operations = spanner_client.database_admin_api.list_backups(request) + operations = database_admin_api.list_backups(request) for backup in operations: print(backup.name) # List all backups for a database that contains a name. print('All backups with database name containing "{}":'.format(database_id)) request = backup_pb.ListBackupsRequest( - parent=instance_admin_api.instance_path(spanner_client.project, instance_id), + parent=database_admin_api.instance_path(spanner_client.project, instance_id), filter="database:{}".format(database_id), ) - operations = spanner_client.database_admin_api.list_backups(request) + operations = database_admin_api.list_backups(request) for backup in operations: print(backup.name) @@ -396,20 +390,20 @@ def list_backups(instance_id, database_id, backup_id): ) ) request = backup_pb.ListBackupsRequest( - parent=instance_admin_api.instance_path(spanner_client.project, instance_id), + parent=database_admin_api.instance_path(spanner_client.project, instance_id), filter='expire_time < "{}-{}-{}T{}:{}:{}Z"'.format(*expire_time.timetuple()), ) - operations = spanner_client.database_admin_api.list_backups(request) + operations = database_admin_api.list_backups(request) for backup in operations: print(backup.name) # List all backups with a size greater than some bytes. print("All backups with backup size more than 100 bytes:") request = backup_pb.ListBackupsRequest( - parent=instance_admin_api.instance_path(spanner_client.project, instance_id), + parent=database_admin_api.instance_path(spanner_client.project, instance_id), filter="size_bytes > 100", ) - operations = spanner_client.database_admin_api.list_backups(request) + operations = database_admin_api.list_backups(request) for backup in operations: print(backup.name) @@ -421,12 +415,12 @@ def list_backups(instance_id, database_id, backup_id): ) ) request = backup_pb.ListBackupsRequest( - parent=instance_admin_api.instance_path(spanner_client.project, instance_id), + parent=database_admin_api.instance_path(spanner_client.project, instance_id), filter='create_time >= "{}-{}-{}T{}:{}:{}Z" AND state:READY'.format( *create_time.timetuple() ), ) - operations = spanner_client.database_admin_api.list_backups(request) + operations = database_admin_api.list_backups(request) for backup in operations: print(backup.name) @@ -435,10 +429,10 @@ def list_backups(instance_id, database_id, backup_id): # requests will be made as needed while iterating. paged_backups = set() request = backup_pb.ListBackupsRequest( - parent=instance_admin_api.instance_path(spanner_client.project, instance_id), + parent=database_admin_api.instance_path(spanner_client.project, instance_id), page_size=2, ) - operations = spanner_client.database_admin_api.list_backups(request) + operations = database_admin_api.list_backups(request) for backup in operations: paged_backups.add(backup.name) for backup in paged_backups: @@ -454,38 +448,32 @@ def delete_backup(instance_id, backup_id): backup as backup_pb spanner_client = spanner.Client() - instance_admin_api = spanner_client.instance_admin_api - backup = spanner_client.database_admin_api.get_backup( + database_admin_api = spanner_client.database_admin_api + backup = database_admin_api.get_backup( backup_pb.GetBackupRequest( - name="{}/backups/{}".format( - instance_admin_api.instance_path(spanner_client.project, instance_id), - backup_id, - ) + name=database_admin_api.backup_path( + spanner_client.project, instance_id, backup_id + ), ) ) # Wait for databases that reference this backup to finish optimizing. while backup.referencing_databases: time.sleep(30) - backup = spanner_client.database_admin_api.get_backup( + backup = database_admin_api.get_backup( backup_pb.GetBackupRequest( - name="{}/backups/{}".format( - instance_admin_api.instance_path( - spanner_client.project, instance_id - ), - backup_id, - ) + name=database_admin_api.backup_path( + spanner_client.project, instance_id, backup_id + ), ) ) # Delete the backup. - spanner_client.database_admin_api.delete_backup( - backup_pb.DeleteBackupRequest(name=backup.name) - ) + database_admin_api.delete_backup(backup_pb.DeleteBackupRequest(name=backup.name)) # Verify that the backup is deleted. try: - backup = spanner_client.database_admin_api.get_backup( + backup = database_admin_api.get_backup( backup_pb.GetBackupRequest(name=backup.name) ) except NotFound: @@ -502,14 +490,13 @@ def update_backup(instance_id, backup_id): backup as backup_pb spanner_client = spanner.Client() - instance_admin_api = spanner_client.instance_admin_api + database_admin_api = spanner_client.database_admin_api - backup = spanner_client.database_admin_api.get_backup( + backup = database_admin_api.get_backup( backup_pb.GetBackupRequest( - name="{}/backups/{}".format( - instance_admin_api.instance_path(spanner_client.project, instance_id), - backup_id, - ) + name=database_admin_api.backup_path( + spanner_client.project, instance_id, backup_id + ), ) ) @@ -517,7 +504,7 @@ def update_backup(instance_id, backup_id): old_expire_time = backup.expire_time # New expire time should be less than the max expire time new_expire_time = min(backup.max_expire_time, old_expire_time + timedelta(days=30)) - spanner_client.database_admin_api.update_backup( + database_admin_api.update_backup( backup_pb.UpdateBackupRequest( backup=backup_pb.Backup(name=backup.name, expire_time=new_expire_time), update_mask={"paths": ["expire_time"]}, @@ -543,7 +530,7 @@ def create_database_with_version_retention_period( spanner_database_admin spanner_client = spanner.Client() - instance_admin_api = spanner_client.instance_admin_api + database_admin_api = spanner_client.database_admin_api ddl_statements = [ "CREATE TABLE Singers (" + " SingerId INT64 NOT NULL," @@ -562,9 +549,9 @@ def create_database_with_version_retention_period( database_id, retention_period ), ] - operation = spanner_client.database_admin_api.create_database( + operation = database_admin_api.create_database( request=spanner_database_admin.CreateDatabaseRequest( - parent=instance_admin_api.instance_path( + parent=database_admin_api.instance_path( spanner_client.project, instance_id ), create_statement="CREATE DATABASE `{}`".format(database_id), @@ -579,7 +566,7 @@ def create_database_with_version_retention_period( ) ) - spanner_client.database_admin_api.drop_database( + database_admin_api.drop_database( spanner_database_admin.DropDatabaseRequest(database=db.name) ) @@ -595,18 +582,18 @@ def copy_backup(instance_id, backup_id, source_backup_path): backup as backup_pb spanner_client = spanner.Client() - instance_admin_api = spanner_client.instance_admin_api + database_admin_api = spanner_client.database_admin_api # Create a backup object and wait for copy backup operation to complete. expire_time = datetime.utcnow() + timedelta(days=14) request = backup_pb.CopyBackupRequest( - parent=instance_admin_api.instance_path(spanner_client.project, instance_id), + parent=database_admin_api.instance_path(spanner_client.project, instance_id), backup_id=backup_id, source_backup=source_backup_path, expire_time=expire_time, ) - operation = spanner_client.database_admin_api.copy_backup(request) + operation = database_admin_api.copy_backup(request) # Wait for backup operation to complete. copy_backup = operation.result(2100) diff --git a/samples/samples/pg_snippets.py b/samples/samples/pg_snippets.py index 61f7a09608..ad8744794a 100644 --- a/samples/samples/pg_snippets.py +++ b/samples/samples/pg_snippets.py @@ -73,15 +73,15 @@ def create_database(instance_id, database_id): spanner_database_admin spanner_client = spanner.Client() - instance_admin_api = spanner_client.instance_admin_api + database_admin_api = spanner_client.database_admin_api request = spanner_database_admin.CreateDatabaseRequest( - parent=instance_admin_api.instance_path(spanner_client.project, instance_id), + parent=database_admin_api.instance_path(spanner_client.project, instance_id), create_statement=f'CREATE DATABASE "{database_id}"', database_dialect=DatabaseDialect.POSTGRESQL, ) - operation = spanner_client.database_admin_api.create_database(request=request) + operation = database_admin_api.create_database(request=request) print("Waiting for operation to complete...") database = operation.result(OPERATION_TIMEOUT_SECONDS) diff --git a/samples/samples/snippets.py b/samples/samples/snippets.py index 96d753829e..5cd1cc8e8b 100644 --- a/samples/samples/snippets.py +++ b/samples/samples/snippets.py @@ -164,13 +164,13 @@ def list_databases(instance_id): spanner_database_admin spanner_client = spanner.Client() - instance_admin_api = spanner_client.instance_admin_api + database_admin_api = spanner_client.database_admin_api request = spanner_database_admin.ListDatabasesRequest( - parent=instance_admin_api.instance_path(spanner_client.project, instance_id) + parent=database_admin_api.instance_path(spanner_client.project, instance_id) ) - for database in spanner_client.database_admin_api.list_databases(request=request): + for database in database_admin_api.list_databases(request=request): print( "Database {} has default leader {}".format( database.name, database.default_leader @@ -188,10 +188,10 @@ def create_database(instance_id, database_id): spanner_database_admin spanner_client = spanner.Client() - instance_admin_api = spanner_client.instance_admin_api + database_admin_api = spanner_client.database_admin_api request = spanner_database_admin.CreateDatabaseRequest( - parent=instance_admin_api.instance_path(spanner_client.project, instance_id), + parent=database_admin_api.instance_path(spanner_client.project, instance_id), create_statement=f"CREATE DATABASE `{database_id}`", extra_statements=[ """CREATE TABLE Singers ( @@ -212,7 +212,7 @@ def create_database(instance_id, database_id): ], ) - operation = spanner_client.database_admin_api.create_database(request=request) + operation = database_admin_api.create_database(request=request) print("Waiting for operation to complete...") database = operation.result(OPERATION_TIMEOUT_SECONDS) @@ -220,7 +220,7 @@ def create_database(instance_id, database_id): print( "Created database {} on instance {}".format( database.name, - instance_admin_api.instance_path(spanner_client.project, instance_id), + database_admin_api.instance_path(spanner_client.project, instance_id), ) ) @@ -235,22 +235,21 @@ def update_database(instance_id, database_id): spanner_database_admin spanner_client = spanner.Client() - instance_admin_api = spanner_client.instance_admin_api + database_admin_api = spanner_client.database_admin_api request = spanner_database_admin.UpdateDatabaseRequest( database=spanner_database_admin.Database( - name="{}/databases/{}".format( - instance_admin_api.instance_path(spanner_client.project, instance_id), - database_id, + name=database_admin_api.database_path( + spanner_client.project, instance_id, database_id ), enable_drop_protection=True, ), update_mask={"paths": ["enable_drop_protection"]}, ) - operation = spanner_client.database_admin_api.update_database(request=request) + operation = database_admin_api.update_database(request=request) print( "Waiting for update operation for {}/databases/{} to complete...".format( - instance_admin_api.instance_path(spanner_client.project, instance_id), + database_admin_api.instance_path(spanner_client.project, instance_id), database_id, ) ) @@ -258,7 +257,7 @@ def update_database(instance_id, database_id): print( "Updated database {}/databases/{}.".format( - instance_admin_api.instance_path(spanner_client.project, instance_id), + database_admin_api.instance_path(spanner_client.project, instance_id), database_id, ) ) @@ -275,10 +274,10 @@ def create_database_with_encryption_key(instance_id, database_id, kms_key_name): spanner_database_admin spanner_client = spanner.Client() - instance_admin_api = spanner_client.instance_admin_api + database_admin_api = spanner_client.database_admin_api request = spanner_database_admin.CreateDatabaseRequest( - parent=instance_admin_api.instance_path(spanner_client.project, instance_id), + parent=database_admin_api.instance_path(spanner_client.project, instance_id), create_statement=f"CREATE DATABASE `{database_id}`", extra_statements=[ """CREATE TABLE Singers ( @@ -297,7 +296,7 @@ def create_database_with_encryption_key(instance_id, database_id, kms_key_name): encryption_config=EncryptionConfig(kms_key_name=kms_key_name), ) - operation = spanner_client.database_admin_api.create_database(request=request) + operation = database_admin_api.create_database(request=request) print("Waiting for operation to complete...") database = operation.result(OPERATION_TIMEOUT_SECONDS) @@ -319,10 +318,10 @@ def create_database_with_default_leader(instance_id, database_id, default_leader spanner_database_admin spanner_client = spanner.Client() - instance_admin_api = spanner_client.instance_admin_api + database_admin_api = spanner_client.database_admin_api request = spanner_database_admin.CreateDatabaseRequest( - parent=instance_admin_api.instance_path(spanner_client.project, instance_id), + parent=database_admin_api.instance_path(spanner_client.project, instance_id), create_statement=f"CREATE DATABASE `{database_id}`", extra_statements=[ """CREATE TABLE Singers ( @@ -341,7 +340,7 @@ def create_database_with_default_leader(instance_id, database_id, default_leader " SET OPTIONS (default_leader = '{}')".format(database_id, default_leader), ], ) - operation = spanner_client.database_admin_api.create_database(request=request) + operation = database_admin_api.create_database(request=request) print("Waiting for operation to complete...") database = operation.result(OPERATION_TIMEOUT_SECONDS) @@ -2609,7 +2608,7 @@ def list_database_roles(instance_id, database_id): ) # List database roles. print("Database Roles are:") - for role in spanner_client.database_admin_api.list_database_roles(request): + for role in database_admin_api.list_database_roles(request): print(role.name.split("/")[-1]) # [END spanner_list_database_roles]