Skip to content
Closed
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
4371db4
Add CreateDatabaseWithMRCMEKAsync.cs
panerorenn9541 Aug 28, 2024
eb4ee80
Update CreateDatabaseWithMRCMEKAsync.cs
panerorenn9541 Aug 28, 2024
9f88bf8
Add CreateBackupWithMRCMEKAsync.cs
panerorenn9541 Aug 28, 2024
d4dc0ef
Add RestoreDatabaseWithMRCMEKAsync.cs
panerorenn9541 Aug 28, 2024
d041cc5
Add CopyBackupWithMRCMEK.cs
panerorenn9541 Aug 28, 2024
10582b0
Add CreateDatabaseWithMRCMEKAsyncTest.cs
panerorenn9541 Aug 28, 2024
46dbc73
Update CreateDatabaseWithMRCMEKAsyncTest.cs
panerorenn9541 Aug 28, 2024
0c76ecf
Add CreateBackupWithMRCMEKAsyncTest.cs
panerorenn9541 Aug 28, 2024
caac817
Update CreateDatabaseWithMRCMEKAsync.cs
panerorenn9541 Aug 28, 2024
ef24b05
Update CopyBackupWithMRCMEK.cs
panerorenn9541 Aug 28, 2024
d6fc8e7
Update CreateBackupWithMRCMEKAsync.cs
panerorenn9541 Aug 28, 2024
79c1908
Update RestoreDatabaseWithMRCMEKAsync.cs
panerorenn9541 Aug 28, 2024
8ad9af3
Update CreateDatabaseWithMRCMEKAsync.cs
panerorenn9541 Aug 28, 2024
b0fff8b
Add CopyBackupWithMRCMEKTest.cs
panerorenn9541 Aug 28, 2024
2aae2df
Create RestoreDatabaseWithMRCMEKAsyncTest.cs
panerorenn9541 Aug 29, 2024
c6257a9
Update CreateDatabaseWithMRCMEKAsyncTest.cs
panerorenn9541 Aug 29, 2024
5ebb6bd
Update SpannerFixture.cs to include multiple keys
panerorenn9541 Aug 29, 2024
dd5a28a
Update and rename CopyBackupWithMRCMEKTest.cs to CopyBackupWithMrCmek…
panerorenn9541 Oct 14, 2024
197ef15
Update and rename CreateBackupWithMRCMEKAsyncTest.cs to CreateBackupW…
panerorenn9541 Oct 14, 2024
bffdead
Update and rename CreateDatabaseWithMRCMEKAsyncTest.cs to CreateDatab…
panerorenn9541 Oct 14, 2024
f426968
Update and rename RestoreDatabaseWithMRCMEKAsyncTest.cs to RestoreDat…
panerorenn9541 Oct 14, 2024
93ee32c
Update and rename CopyBackupWithMRCMEK.cs to CopyBackupWithMrCmek.cs
panerorenn9541 Oct 14, 2024
194b59c
Update and rename CreateBackupWithMRCMEKAsync.cs to CreateBackupWithM…
panerorenn9541 Oct 14, 2024
5a487bb
Update and rename CreateDatabaseWithMRCMEKAsync.cs to CreateDatabaseW…
panerorenn9541 Oct 14, 2024
6b07ecf
Update and rename RestoreDatabaseWithMRCMEKAsync.cs to RestoreDatabas…
panerorenn9541 Oct 14, 2024
00b3076
Update CopyBackupWithMrCmekTest.cs
panerorenn9541 Oct 14, 2024
b3b8330
Update CreateBackupWithMrCmekAsyncTest.cs
panerorenn9541 Oct 14, 2024
9967289
Update CreateDatabaseWithMrCmekAsyncTest.cs
panerorenn9541 Oct 14, 2024
9f33481
Update RestoreDatabaseWithMrCmekAsyncTest.cs
panerorenn9541 Oct 14, 2024
187157f
Update CopyBackupWithMrCmek.cs
panerorenn9541 Oct 14, 2024
d37be25
Update CreateBackupWithMrCmekAsync.cs
panerorenn9541 Oct 14, 2024
68a2f86
Update CreateDatabaseWithMrCmekAsync.cs
panerorenn9541 Oct 14, 2024
d405eb7
Update RestoreDatabaseWithMrCmekAsync.cs
panerorenn9541 Oct 14, 2024
f32a8c1
Update CopyBackupWithMrCmekTest.cs
panerorenn9541 Oct 15, 2024
fe995c0
Update CreateBackupWithMrCmekAsyncTest.cs
panerorenn9541 Oct 15, 2024
e740ee9
Update CreateDatabaseWithMrCmekAsyncTest.cs
panerorenn9541 Oct 15, 2024
e548d49
Update RestoreDatabaseWithMrCmekAsyncTest.cs
panerorenn9541 Oct 15, 2024
46eeb4b
Update CopyBackupWithMrCmek.cs
panerorenn9541 Oct 15, 2024
16f0b19
Update CopyBackupWithMrCmek.cs
panerorenn9541 Oct 15, 2024
40591ac
Update CreateBackupWithMrCmekAsync.cs
panerorenn9541 Oct 15, 2024
266ca60
Update CreateBackupWithMrCmekAsync.cs
panerorenn9541 Oct 15, 2024
a34244e
Update CreateDatabaseWithMrCmekAsync.cs
panerorenn9541 Oct 15, 2024
dcd1750
Update RestoreDatabaseWithMrCmekAsync.cs
panerorenn9541 Oct 15, 2024
ef7265d
Update CopyBackupWithMrCmekTest.cs
panerorenn9541 Oct 15, 2024
2c5683d
Update CreateBackupWithMrCmekAsyncTest.cs
panerorenn9541 Oct 15, 2024
919b655
Update CreateDatabaseWithMrCmekAsyncTest.cs
panerorenn9541 Oct 15, 2024
9c729d9
Update CreateDatabaseWithMrCmekAsyncTest.cs
panerorenn9541 Oct 15, 2024
c0be0ff
Update RestoreDatabaseWithMrCmekAsyncTest.cs
panerorenn9541 Oct 15, 2024
3a5bf85
Update SpannerFixture.cs
panerorenn9541 Oct 15, 2024
cad4c2b
Merge branch 'main' into main
panerorenn9541 Oct 15, 2024
b826e31
Update CreateDatabaseWithMrCmekAsync.cs
panerorenn9541 Oct 24, 2024
775114d
Update CreateBackupWithMrCmekAsync.cs
panerorenn9541 Oct 24, 2024
36b2315
Update CopyBackupWithMrCmek.cs
panerorenn9541 Oct 24, 2024
f2c5d36
Update RestoreDatabaseWithMrCmekAsync.cs
panerorenn9541 Oct 24, 2024
53e08c2
Update RestoreDatabaseWithMrCmekAsync.cs
panerorenn9541 Oct 24, 2024
45781a9
Update CreateBackupWithMrCmekAsync.cs
panerorenn9541 Oct 24, 2024
6f21975
Update CreateDatabaseWithMrCmekAsync.cs
panerorenn9541 Oct 24, 2024
5d8e65d
Update CopyBackupWithMrCmek.cs
panerorenn9541 Oct 24, 2024
3d11bb9
Update and rename CopyBackupWithMrCmek.cs to CopyBackupWithMrCmekAsyn…
panerorenn9541 Oct 24, 2024
33f32a5
Update SpannerFixture.cs
panerorenn9541 Oct 24, 2024
03b6bcc
Update CreateBackupWithMrCmekAsyncTest.cs
panerorenn9541 Oct 24, 2024
a63aa0e
Update CreateDatabaseWithMrCmekAsyncTest.cs
panerorenn9541 Oct 24, 2024
1d14bb2
Update RestoreDatabaseWithMrCmekAsyncTest.cs
panerorenn9541 Oct 24, 2024
8032f51
Update and rename CopyBackupWithMrCmekTest.cs to CopyBackupWithMrCmek…
panerorenn9541 Oct 24, 2024
30492d9
Update CreateBackupWithMrCmekAsyncTest.cs
panerorenn9541 Oct 24, 2024
3d9b027
Update SpannerFixture.cs
panerorenn9541 Oct 24, 2024
bae1591
Merge branch 'GoogleCloudPlatform:main' into main
panerorenn9541 Oct 24, 2024
f1499f3
Update SpannerFixture.cs
panerorenn9541 Oct 24, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions spanner/api/Spanner.Samples.Tests/CopyBackupWithMRCMEKTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
// Copyright 2022 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

using Google.Cloud.Spanner.Admin.Database.V1;
using System;
using Xunit;

[Collection(nameof(SpannerFixture))]
public class CopyBackupWithMRCMEKTest
{
private readonly SpannerFixture _spannerFixture;

public CopyBackupWithMRCMEKTest(SpannerFixture spannerFixture)
{
_spannerFixture = spannerFixture;
}

[Fact]
public void CopyBackupWithMRCMEK()
{
CopyBackupWithMRCMEKSample copyBackupWithMRCMEKSample = new CopyBackupWithMRCMEKSample();
string source_Project_id = _spannerFixture.ProjectId;
string source_Instance_id = _spannerFixture.InstanceId;
string source_backupId = _spannerFixture.BackupId;
string target_Project_id = _spannerFixture.ProjectId;
string target_Instance_id = _spannerFixture.InstanceId;
string target_backupId = SpannerFixture.GenerateId("test_", 16);
DateTimeOffset expireTime = DateTimeOffset.UtcNow.AddHours(12);
CryptoKeyName[] kmsKeyNames = _fixture.KmsKeyNames;

Backup backup = copyBackupWithMRCMEKSample.CopyBackupWithMRCMEK(source_Instance_id, source_Project_id, source_backupId,
target_Instance_id, target_Project_id, target_backupId, expireTime, kmsKeyNames);

Assert.NotNull(backup);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
// Copyright 2021 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

using System;
using System.Threading.Tasks;
using Xunit;

/// <summary>
/// Tests creating a backup using MR CMEK.
/// </summary>
[Collection(nameof(SpannerFixture))]
public class CreateBackupWithMRCMEKAsyncTest
{
private readonly SpannerFixture _fixture;

public CreateBackupWithMRCMEKAsyncTest(SpannerFixture fixture)
{
_fixture = fixture;
}

[SkippableFact]
public async Task TestCreatBackupWithMRCMEKAsync()
{
Skip.If(!_fixture.RunCmekBackupSampleTests, SpannerFixture.SkipCmekBackupSamplesMessage);
// Create a backup with custom encryption keys.
var sample = new CreateBackupWithMRCMEKAsyncSample();
var backup = await sample.CreateBackupWithMRCMEKAsync(_fixture.ProjectId, _fixture.InstanceId, _fixture.FixedEncryptedDatabaseId, _fixture.EncryptedBackupId, _fixture.KmsKeyNames);
Assert.Equal(_fixture.KmsKeyNames.Length, backup.EncryptionInfo.KmsKeyVersionsAsCryptoKeyVersionNames.Length);
foreach (CryptoKeyVersionName KmsKeyVersion in backup.EncryptionInfo.KmsKeyVersionsAsCryptoKeyVersionNames)
{
Assert.True(_fixture.KmsKeyNames.contains(KmsKeyVersion.CryptoKeyId));
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
// Copyright 2021 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

using System.Threading.Tasks;
using Xunit;
using Google.Cloud.Spanner.Admin.Database.V1;

/// <summary>
/// Tests creating a databases using MR CMEK.
/// </summary>
[Collection(nameof(SpannerFixture))]
public class CreateDatabaseWithMRCMEKAsyncTest
{
private readonly SpannerFixture _fixture;

public CreateDatabaseWithMRCMEKAsyncTest(SpannerFixture fixture)
{
_fixture = fixture;
}

[Fact]
public async Task TestCreateDatabaseWithMRCMEKAsync()
{
// Create a database with custom encryption keys.
var sample = new CreateDatabaseWithMRCMEKAsyncSample();
var database = await sample.CreateDatabaseWithMRCMEKAsync(_fixture.ProjectId, _fixture.InstanceId, _fixture.EncryptedDatabaseId, _fixture.KmsKeyNames);
Assert.Equal(_fixture.KmsKeyNames.Length, database.EncryptionConfig.KmsKeyNames.Length);
foreach (string KmsKey in database.EncryptionConfig.KmsKeyNames)
{
Assert.True(_fixture.KmsKeyNames.contains(CryptoKeyName.Parse(KmsKey)));
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
// Copyright 2021 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

using Google.Cloud.Spanner.Admin.Database.V1;
using System;
using System.Threading.Tasks;
using Xunit;

/// <summary>
/// Tests restoring a databases using customer managed encryption.
/// </summary>
[Collection(nameof(SpannerFixture))]
public class RestoreDatabaseWithMRCMEKAsyncTest
{
private readonly SpannerFixture _fixture;

public RestoreDatabaseWithMRCMEKAsyncTest(SpannerFixture fixture)
{
_fixture = fixture;
}

[SkippableFact]
public async Task TestRestoreDatabaseWithMRCMEKAsync()
{
Skip.If(!_fixture.RunCmekBackupSampleTests, SpannerFixture.SkipCmekBackupSamplesMessage);
var sample = new RestoreDatabaseWithMRCMEKAsyncSample();
var database = await sample.RestoreDatabaseWithMRCMEKAsync(_fixture.ProjectId, _fixture.InstanceId, _fixture.EncryptedRestoreDatabaseId, _fixture.FixedEncryptedBackupId, _fixture.KmsKeyName);
Assert.Equal(_fixture.KmsKeyNames.Length, database.EncryptionConfig.KmsKeyNames.Length);
foreach (string KmsKey in database.EncryptionConfig.KmsKeyNames)
{
Assert.True(_fixture.KmsKeyNames.contains(CryptoKeyName.Parse(KmsKey)));
}
}
}
Loading