/// <summary>Snippet for UpdateDatabaseDdlAsync</summary> public async Task UpdateDatabaseDdlAsync_RequestObject() { // Snippet: UpdateDatabaseDdlAsync(UpdateDatabaseDdlRequest,CallSettings) // Create client DatabaseAdminClient databaseAdminClient = await DatabaseAdminClient.CreateAsync(); // Initialize request argument(s) UpdateDatabaseDdlRequest request = new UpdateDatabaseDdlRequest { DatabaseAsDatabaseName = new DatabaseName("[PROJECT]", "[INSTANCE]", "[DATABASE]"), Statements = { }, }; // Make the request Operation <Empty, UpdateDatabaseDdlMetadata> response = await databaseAdminClient.UpdateDatabaseDdlAsync(request); // Poll until the returned long-running operation is complete Operation <Empty, UpdateDatabaseDdlMetadata> completedResponse = await response.PollUntilCompletedAsync(); // The long-running operation is now complete. // Or get the name of the operation string operationName = response.Name; // This name can be stored, then the long-running operation retrieved later by name Operation <Empty, UpdateDatabaseDdlMetadata> retrievedResponse = await databaseAdminClient.PollOnceUpdateDatabaseDdlAsync(operationName); // Check if the retrieved long-running operation has completed if (retrievedResponse.IsCompleted) { // The long-running operation is now complete. } // End snippet }
public async Task UpdateDatabaseWithDefaultLeaderAsync(string projectId, string instanceId, string databaseId, string defaultLeader) { DatabaseAdminClient databaseAdminClient = await DatabaseAdminClient.CreateAsync(); var alterDatabaseStatement = @$ "ALTER DATABASE `{databaseId}` SET OPTIONS (default_leader = '{defaultLeader}')"; // Create the UpdateDatabaseDdl request and execute it. var request = new UpdateDatabaseDdlRequest { DatabaseAsDatabaseName = DatabaseName.FromProjectInstanceDatabase(projectId, instanceId, databaseId), Statements = { alterDatabaseStatement } }; var operation = await databaseAdminClient.UpdateDatabaseDdlAsync(request); // Wait until the operation has finished. Console.WriteLine("Waiting for the operation to finish."); var completedResponse = await operation.PollUntilCompletedAsync(); if (completedResponse.IsFaulted) { Console.WriteLine($"Error while updating database: {completedResponse.Exception}"); throw completedResponse.Exception; } Console.WriteLine("Updated default leader"); }
public async Task RunWithTemporaryDatabaseAsync(string instanceId, string databaseId, Func <string, Task> testFunction, params string[] extraStatements) { var databaseAdminClient = await DatabaseAdminClient.CreateAsync(); var operation = await databaseAdminClient.CreateDatabaseAsync(new CreateDatabaseRequest { ParentAsInstanceName = InstanceName.FromProjectInstance(ProjectId, instanceId), CreateStatement = $"CREATE DATABASE `{databaseId}`", ExtraStatements = { extraStatements }, }); var completedResponse = await operation.PollUntilCompletedAsync(); if (completedResponse.IsFaulted) { throw completedResponse.Exception; } try { await testFunction(databaseId); } finally { // Cleanup the test database. await databaseAdminClient.DropDatabaseAsync(DatabaseName.FormatProjectInstanceDatabase(ProjectId, instanceId, databaseId)); } }
/// <summary>Snippet for CreateDatabaseAsync</summary> public async Task CreateDatabaseAsync() { // Snippet: CreateDatabaseAsync(InstanceName,string,CallSettings) // Additional: CreateDatabaseAsync(InstanceName,string,CancellationToken) // Create client DatabaseAdminClient databaseAdminClient = await DatabaseAdminClient.CreateAsync(); // Initialize request argument(s) InstanceName parent = new InstanceName("[PROJECT]", "[INSTANCE]"); string createStatement = ""; // Make the request Operation <Database, CreateDatabaseMetadata> response = await databaseAdminClient.CreateDatabaseAsync(parent, createStatement); // Poll until the returned long-running operation is complete Operation <Database, CreateDatabaseMetadata> completedResponse = await response.PollUntilCompletedAsync(); // Retrieve the operation result Database result = completedResponse.Result; // Or get the name of the operation string operationName = response.Name; // This name can be stored, then the long-running operation retrieved later by name Operation <Database, CreateDatabaseMetadata> retrievedResponse = await databaseAdminClient.PollOnceCreateDatabaseAsync(operationName); // Check if the retrieved long-running operation has completed if (retrievedResponse.IsCompleted) { // If it has completed, then access the result Database retrievedResult = retrievedResponse.Result; } // End snippet }
/// <summary>Snippet for UpdateDatabaseDdlAsync</summary> public async Task UpdateDatabaseDdlAsync() { // Snippet: UpdateDatabaseDdlAsync(DatabaseName,IEnumerable<string>,CallSettings) // Additional: UpdateDatabaseDdlAsync(DatabaseName,IEnumerable<string>,CancellationToken) // Create client DatabaseAdminClient databaseAdminClient = await DatabaseAdminClient.CreateAsync(); // Initialize request argument(s) DatabaseName database = new DatabaseName("[PROJECT]", "[INSTANCE]", "[DATABASE]"); IEnumerable <string> statements = new List <string>(); // Make the request Operation <Empty, UpdateDatabaseDdlMetadata> response = await databaseAdminClient.UpdateDatabaseDdlAsync(database, statements); // Poll until the returned long-running operation is complete Operation <Empty, UpdateDatabaseDdlMetadata> completedResponse = await response.PollUntilCompletedAsync(); // The long-running operation is now complete. // Or get the name of the operation string operationName = response.Name; // This name can be stored, then the long-running operation retrieved later by name Operation <Empty, UpdateDatabaseDdlMetadata> retrievedResponse = await databaseAdminClient.PollOnceUpdateDatabaseDdlAsync(operationName); // Check if the retrieved long-running operation has completed if (retrievedResponse.IsCompleted) { // The long-running operation is now complete. } // End snippet }
public async Task InitializeAsync() { DatabaseAdminClient = await DatabaseAdminClient.CreateAsync(); bool.TryParse(Environment.GetEnvironmentVariable("RUN_SPANNER_CMEK_BACKUP_SAMPLES_TESTS"), out var runCmekBackupSampleTests); RunCmekBackupSampleTests = runCmekBackupSampleTests; ConnectionString = $"Data Source=projects/{ProjectId}/instances/{InstanceId}/databases/{DatabaseId}"; // Don't need to cleanup stale Backups and Databases when instance is new. var isExistingInstance = await InitializeInstanceAsync(); if (isExistingInstance) { await DeleteStaleBackupsAsync(); await DeleteStaleDatabasesAsync(); } await CreateInstanceWithMultiRegionAsync(); await DeleteStaleInstancesAsync(); await InitializeDatabaseAsync(); await InitializeBackupAsync(); // Create encryption key for creating an encrypted database and optionally backing up and restoring an encrypted database. await InitializeEncryptionKeys(); if (RunCmekBackupSampleTests) { await InitializeEncryptedBackupAsync(); } }
/// <summary>Snippet for GetIamPolicyAsync</summary> public async Task GetIamPolicyAsync() { // Snippet: GetIamPolicyAsync(string,CallSettings) // Additional: GetIamPolicyAsync(string,CancellationToken) // Create client DatabaseAdminClient databaseAdminClient = await DatabaseAdminClient.CreateAsync(); // Initialize request argument(s) string formattedResource = new DatabaseName("[PROJECT]", "[INSTANCE]", "[DATABASE]").ToString(); // Make the request Policy response = await databaseAdminClient.GetIamPolicyAsync(formattedResource); // End snippet }
/// <summary>Snippet for GetDatabaseDdlAsync</summary> public async Task GetDatabaseDdlAsync() { // Snippet: GetDatabaseDdlAsync(DatabaseName,CallSettings) // Additional: GetDatabaseDdlAsync(DatabaseName,CancellationToken) // Create client DatabaseAdminClient databaseAdminClient = await DatabaseAdminClient.CreateAsync(); // Initialize request argument(s) DatabaseName database = new DatabaseName("[PROJECT]", "[INSTANCE]", "[DATABASE]"); // Make the request GetDatabaseDdlResponse response = await databaseAdminClient.GetDatabaseDdlAsync(database); // End snippet }
public async Task <Database> CreateDatabaseWithDefaultLeaderAsync(string projectId, string instanceId, string databaseId, string defaultLeader) { DatabaseAdminClient databaseAdminClient = await DatabaseAdminClient.CreateAsync(); // Define create table statement for table #1. var createSingersTable = @"CREATE TABLE Singers ( SingerId INT64 NOT NULL, FirstName STRING(1024), LastName STRING(1024), ComposerInfo BYTES(MAX) ) PRIMARY KEY (SingerId)"; // Define create table statement for table #2. var createAlbumsTable = @"CREATE TABLE Albums ( SingerId INT64 NOT NULL, AlbumId INT64 NOT NULL, AlbumTitle STRING(MAX) ) PRIMARY KEY (SingerId, AlbumId), INTERLEAVE IN PARENT Singers ON DELETE CASCADE"; // Define alter database statement to set default leader. var alterDatabaseStatement = @$ "ALTER DATABASE `{databaseId}` SET OPTIONS (default_leader = '{defaultLeader}')"; // Create the CreateDatabase request with default leader and execute it. var request = new CreateDatabaseRequest { ParentAsInstanceName = InstanceName.FromProjectInstance(projectId, instanceId), CreateStatement = $"CREATE DATABASE `{databaseId}`", ExtraStatements = { createSingersTable, createAlbumsTable, alterDatabaseStatement }, }; var operation = await databaseAdminClient.CreateDatabaseAsync(request); // Wait until the operation has finished. Console.WriteLine("Waiting for the operation to finish."); var completedResponse = await operation.PollUntilCompletedAsync(); if (completedResponse.IsFaulted) { Console.WriteLine($"Error while creating database: {completedResponse.Exception}"); throw completedResponse.Exception; } var database = completedResponse.Result; Console.WriteLine($"Created database [{databaseId}]"); Console.WriteLine($"\t Default leader: {database.DefaultLeader}"); return(database); }
/// <summary>Snippet for TestIamPermissionsAsync</summary> public async Task TestIamPermissionsAsync() { // Snippet: TestIamPermissionsAsync(string,IEnumerable<string>,CallSettings) // Additional: TestIamPermissionsAsync(string,IEnumerable<string>,CancellationToken) // Create client DatabaseAdminClient databaseAdminClient = await DatabaseAdminClient.CreateAsync(); // Initialize request argument(s) string formattedResource = new DatabaseName("[PROJECT]", "[INSTANCE]", "[DATABASE]").ToString(); IEnumerable <string> permissions = new List <string>(); // Make the request TestIamPermissionsResponse response = await databaseAdminClient.TestIamPermissionsAsync(formattedResource, permissions); // End snippet }
/// <summary>Snippet for SetIamPolicyAsync</summary> public async Task SetIamPolicyAsync() { // Snippet: SetIamPolicyAsync(string,Policy,CallSettings) // Additional: SetIamPolicyAsync(string,Policy,CancellationToken) // Create client DatabaseAdminClient databaseAdminClient = await DatabaseAdminClient.CreateAsync(); // Initialize request argument(s) string formattedResource = new Google.Cloud.Spanner.Common.V1.DatabaseName("[PROJECT]", "[INSTANCE]", "[DATABASE]").ToString(); Policy policy = new Policy(); // Make the request Policy response = await databaseAdminClient.SetIamPolicyAsync(formattedResource, policy); // End snippet }
/// <summary>Snippet for DropDatabaseAsync</summary> public async Task DropDatabaseAsync_RequestObject() { // Snippet: DropDatabaseAsync(DropDatabaseRequest,CallSettings) // Create client DatabaseAdminClient databaseAdminClient = await DatabaseAdminClient.CreateAsync(); // Initialize request argument(s) DropDatabaseRequest request = new DropDatabaseRequest { DatabaseAsDatabaseName = new DatabaseName("[PROJECT]", "[INSTANCE]", "[DATABASE]"), }; // Make the request await databaseAdminClient.DropDatabaseAsync(request); // End snippet }
public async Task TestUpdateDatabaseWithDefaultLeaderAsync() { await _spannerFixture.RunWithTemporaryDatabaseAsync(_spannerFixture.InstanceIdWithMultiRegion, async databaseId => { var defaultLeader = "us-central1"; var sample = new UpdateDatabaseWithDefaultLeaderAsyncSample(); await sample.UpdateDatabaseWithDefaultLeaderAsync(_spannerFixture.ProjectId, _spannerFixture.InstanceIdWithMultiRegion, databaseId, defaultLeader); var databaseAdminClient = await DatabaseAdminClient.CreateAsync(); var database = await databaseAdminClient.GetDatabaseAsync( DatabaseName.FormatProjectInstanceDatabase(_spannerFixture.ProjectId, _spannerFixture.InstanceIdWithMultiRegion, databaseId)); Assert.Equal(defaultLeader, database.DefaultLeader); }); }
/// <summary>Snippet for GetIamPolicyAsync</summary> public async Task GetIamPolicyAsync_RequestObject() { // Snippet: GetIamPolicyAsync(GetIamPolicyRequest,CallSettings) // Create client DatabaseAdminClient databaseAdminClient = await DatabaseAdminClient.CreateAsync(); // Initialize request argument(s) GetIamPolicyRequest request = new GetIamPolicyRequest { Resource = new DatabaseName("[PROJECT]", "[INSTANCE]", "[DATABASE]").ToString(), }; // Make the request Policy response = await databaseAdminClient.GetIamPolicyAsync(request); // End snippet }
/// <summary>Snippet for ListDatabasesAsync</summary> public async Task ListDatabasesAsync_RequestObject() { // Snippet: ListDatabasesAsync(ListDatabasesRequest,CallSettings) // Create client DatabaseAdminClient databaseAdminClient = await DatabaseAdminClient.CreateAsync(); // Initialize request argument(s) ListDatabasesRequest request = new ListDatabasesRequest { ParentAsInstanceName = new InstanceName("[PROJECT]", "[INSTANCE]"), }; // Make the request PagedAsyncEnumerable <ListDatabasesResponse, Database> response = databaseAdminClient.ListDatabasesAsync(request); // Iterate over all response items, lazily performing RPCs as required await response.ForEachAsync((Database item) => { // Do something with each item Console.WriteLine(item); }); // Or iterate over pages (of server-defined size), performing one RPC per page await response.AsRawResponses().ForEachAsync((ListDatabasesResponse page) => { // Do something with each page of items Console.WriteLine("A page of results:"); foreach (Database item in page) { Console.WriteLine(item); } }); // Or retrieve a single page of known size (unless it's the final page), performing as many RPCs as required int pageSize = 10; Page <Database> singlePage = await response.ReadPageAsync(pageSize); // Do something with the page of items Console.WriteLine($"A page of {pageSize} results (unless it's the final page):"); foreach (Database item in singlePage) { Console.WriteLine(item); } // Store the pageToken, for when the next page is required. string nextPageToken = singlePage.NextPageToken; // End snippet }
/// <summary>Snippet for TestIamPermissionsAsync</summary> public async Task TestIamPermissionsAsync_RequestObject() { // Snippet: TestIamPermissionsAsync(TestIamPermissionsRequest,CallSettings) // Create client DatabaseAdminClient databaseAdminClient = await DatabaseAdminClient.CreateAsync(); // Initialize request argument(s) TestIamPermissionsRequest request = new TestIamPermissionsRequest { Resource = new DatabaseName("[PROJECT]", "[INSTANCE]", "[DATABASE]").ToString(), Permissions = { }, }; // Make the request TestIamPermissionsResponse response = await databaseAdminClient.TestIamPermissionsAsync(request); // End snippet }
/// <summary>Snippet for GetDatabaseAsync</summary> public async Task GetDatabaseAsync_RequestObject() { // Snippet: GetDatabaseAsync(GetDatabaseRequest,CallSettings) // Additional: GetDatabaseAsync(GetDatabaseRequest,CancellationToken) // Create client DatabaseAdminClient databaseAdminClient = await DatabaseAdminClient.CreateAsync(); // Initialize request argument(s) GetDatabaseRequest request = new GetDatabaseRequest { DatabaseName = new DatabaseName("[PROJECT]", "[INSTANCE]", "[DATABASE]"), }; // Make the request Database response = await databaseAdminClient.GetDatabaseAsync(request); // End snippet }
public async Task <List <string> > GetDatabaseDdlAsync(string projectId, string instanceId, string databaseId) { DatabaseAdminClient databaseAdminClient = await DatabaseAdminClient.CreateAsync(); DatabaseName databaseName = DatabaseName.FromProjectInstanceDatabase(projectId, instanceId, databaseId); var databaseDdl = await databaseAdminClient.GetDatabaseDdlAsync(databaseName); var ddlStatements = new List <string>(); Console.WriteLine($"DDL statements for database {databaseId}:"); foreach (var statement in databaseDdl.Statements) { Console.WriteLine(statement); ddlStatements.Add(statement); } return(ddlStatements); }
public async Task CreateDatabaseAsync_RequestObject() { // Snippet: CreateDatabaseAsync(CreateDatabaseRequest,CallSettings) // Create client DatabaseAdminClient databaseAdminClient = await DatabaseAdminClient.CreateAsync(); // Initialize request argument(s) CreateDatabaseRequest request = new CreateDatabaseRequest { Parent = new InstanceName("[PROJECT]", "[INSTANCE]").ToString(), CreateStatement = "", }; // Make the request Operation <Database> response = await databaseAdminClient.CreateDatabaseAsync(request); // Poll until the returned long-running operation is complete Operation <Database> completedResponse = await response.PollUntilCompletedAsync(); // Retrieve the operation result Database result = completedResponse.Result; // Or get the name of the operation string operationName = response.Name; // This name can be stored, then the long-running operation retrieved later by name Operation <Database> retrievedResponse = await databaseAdminClient.PollOnceCreateDatabaseAsync(operationName); // Check if the retrieved long-running operation has completed if (retrievedResponse.IsCompleted) { // If it has completed, then access the result Database retrievedResult = retrievedResponse.Result; } // End snippet }