forked from GoogleCloudPlatform/dotnet-docs-samples
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(storageinsights): Adds samples for storage insights (GoogleCloud…
- Loading branch information
1 parent
61e8c78
commit c392a20
Showing
15 changed files
with
720 additions
and
0 deletions.
There are no files selected for viewing
59 changes: 59 additions & 0 deletions
59
storageinsights/api/StorageInsights.Samples.Tests/CreateInventoryReportConfigTest.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
// Copyright 2024 Google LLC | ||
// | ||
// 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 | ||
// | ||
// https://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.StorageInsights.V1; | ||
using GoogleCloudSamples; | ||
using System; | ||
using Xunit; | ||
|
||
namespace StorageInsights.Samples.Tests | ||
{ | ||
[Collection(nameof(StorageFixture))] | ||
public class CreateInventoryReportConfigTest : IDisposable | ||
{ | ||
private readonly StorageFixture _fixture; | ||
private string _reportConfigName; | ||
|
||
public CreateInventoryReportConfigTest(StorageFixture fixture) => _fixture = fixture; | ||
|
||
[Fact] | ||
public void TestCreateInventoryReportConfigSample() | ||
{ | ||
// The permissions the service account needs sometimes needs a few minutes to propagate, so retry permission issues | ||
RetryRobot robot = new RetryRobot() { ShouldRetry = (e) => e.Message.Contains("PermissionDenied") }; | ||
robot.Eventually(() => | ||
{ | ||
CreateInventoryReportConfigSample sample = new CreateInventoryReportConfigSample(); | ||
var reportConfig = sample.CreateInventoryReportConfig(_fixture.ProjectId, _fixture.BucketLocation, | ||
_fixture.BucketNameSource, | ||
_fixture.BucketNameSink); | ||
Assert.NotNull(reportConfig.DisplayName); | ||
_reportConfigName = reportConfig.Name; | ||
} | ||
); | ||
} | ||
|
||
public void Dispose() | ||
{ | ||
try | ||
{ | ||
_fixture.StorageInsights.DeleteReportConfig(_reportConfigName); | ||
} | ||
catch (Exception) | ||
{ | ||
// Do nothing, we delete on a best effort basis. | ||
} | ||
} | ||
} | ||
} |
52 changes: 52 additions & 0 deletions
52
storageinsights/api/StorageInsights.Samples.Tests/DeleteInventoryReportConfigTest.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
// Copyright 2024 Google LLC | ||
// | ||
// 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 | ||
// | ||
// https://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.Api.Gax; | ||
using Google.Api.Gax.ResourceNames; | ||
using Google.Cloud.StorageInsights.V1; | ||
using GoogleCloudSamples; | ||
using Xunit; | ||
|
||
namespace StorageInsights.Samples.Tests; | ||
|
||
[Collection(nameof(StorageFixture))] | ||
public class DeleteInventoryReportConfigTest | ||
{ | ||
private readonly StorageFixture _fixture; | ||
|
||
public DeleteInventoryReportConfigTest(StorageFixture fixture) => _fixture = fixture; | ||
|
||
[Fact] | ||
public void TestDeleteInventoryReportConfig() | ||
{ | ||
// The permissions the service account needs sometimes needs a few minutes to propagate, so retry permission issues | ||
RetryRobot robot = new RetryRobot() { ShouldRetry = (e) => e.Message.Contains("PermissionDenied") }; | ||
ReportConfig reportConfig = null; | ||
robot.Eventually(() => | ||
{ | ||
reportConfig = new CreateInventoryReportConfigSample().CreateInventoryReportConfig(_fixture.ProjectId, | ||
_fixture.BucketLocation, _fixture.BucketNameSource, | ||
_fixture.BucketNameSink); | ||
}); | ||
|
||
DeleteInventoryReportConfigSample sample = new DeleteInventoryReportConfigSample(); | ||
sample.DeleteInventoryReportConfig(_fixture.ProjectId, _fixture.BucketLocation, | ||
reportConfig.ReportConfigName.ReportConfigId); | ||
|
||
PagedEnumerable<ListReportConfigsResponse, ReportConfig> reportConfigs = _fixture.StorageInsights.ListReportConfigs( | ||
LocationName.Format(_fixture.ProjectId, _fixture.BucketLocation)); | ||
|
||
Assert.DoesNotContain(reportConfigs, config => config.Name.Equals(reportConfig.Name)); | ||
} | ||
} |
61 changes: 61 additions & 0 deletions
61
storageinsights/api/StorageInsights.Samples.Tests/EditInventoryReportConfigTest.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
// Copyright 2024 Google LLC | ||
// | ||
// 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 | ||
// | ||
// https://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.StorageInsights.V1; | ||
using GoogleCloudSamples; | ||
using System; | ||
using Xunit; | ||
|
||
namespace StorageInsights.Samples.Tests; | ||
|
||
[Collection(nameof(StorageFixture))] | ||
public class EditInventoryReportConfigTest : IDisposable | ||
{ | ||
private readonly StorageFixture _fixture; | ||
private string _reportConfigName; | ||
|
||
public EditInventoryReportConfigTest(StorageFixture fixture) => _fixture = fixture; | ||
|
||
[Fact] | ||
public void TestEditInventoryReportConfig() | ||
{ | ||
ReportConfig reportConfig = null; | ||
// The permissions the service account needs sometimes needs a few minutes to propagate, so retry permission issues | ||
RetryRobot robot = new RetryRobot() { ShouldRetry = (e) => e.Message.Contains("PermissionDenied") }; | ||
robot.Eventually(() => | ||
{ | ||
reportConfig = new CreateInventoryReportConfigSample().CreateInventoryReportConfig(_fixture.ProjectId, | ||
_fixture.BucketLocation, _fixture.BucketNameSource, | ||
_fixture.BucketNameSink); | ||
_reportConfigName = reportConfig.Name; | ||
}); | ||
EditInventoryReportConfigSample sample = new EditInventoryReportConfigSample(); | ||
var updatedConfig = sample.EditInventoryReportConfig(_fixture.ProjectId, _fixture.BucketLocation, | ||
reportConfig.ReportConfigName.ReportConfigId); | ||
|
||
Assert.NotEqual(reportConfig.DisplayName, updatedConfig.DisplayName); | ||
} | ||
|
||
public void Dispose() | ||
{ | ||
try | ||
{ | ||
_fixture.StorageInsights.DeleteReportConfig(_reportConfigName); | ||
} | ||
catch (Exception) | ||
{ | ||
// Do nothing, we delete on a best effort basis. | ||
} | ||
} | ||
} |
65 changes: 65 additions & 0 deletions
65
storageinsights/api/StorageInsights.Samples.Tests/GetInventoryReportNamesTest.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
// Copyright 2024 Google LLC | ||
// | ||
// 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 | ||
// | ||
// https://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.StorageInsights.V1; | ||
using GoogleCloudSamples; | ||
using System; | ||
using Xunit; | ||
|
||
namespace StorageInsights.Samples.Tests; | ||
|
||
[Collection(nameof(StorageFixture))] | ||
public class GetInventoryReportNamesTest : IDisposable | ||
{ | ||
private readonly StorageFixture _fixture; | ||
private string _reportConfigName; | ||
|
||
public GetInventoryReportNamesTest(StorageFixture fixture) => _fixture = fixture; | ||
|
||
[Fact] | ||
public void TestGetInventoryReportNames() | ||
{ | ||
ReportConfig reportConfig = null; | ||
// The permissions the service account needs sometimes needs a few minutes to propagate, so retry permission issues | ||
RetryRobot robot = new RetryRobot() { ShouldRetry = (e) => e.Message.Contains("PermissionDenied") }; | ||
robot.Eventually(() => | ||
{ | ||
reportConfig = new CreateInventoryReportConfigSample().CreateInventoryReportConfig(_fixture.ProjectId, | ||
_fixture.BucketLocation, _fixture.BucketNameSource, | ||
_fixture.BucketNameSink); | ||
_reportConfigName = reportConfig.Name; | ||
}); | ||
GetInventoryReportNamesSample sample = new GetInventoryReportNamesSample(); | ||
sample.GetInventoryReportNames(_fixture.ProjectId, _fixture.BucketLocation, | ||
reportConfig.ReportConfigName.ReportConfigId); | ||
/* We can't actually test for a report config name showing up here, because we create | ||
* the bucket and inventory configs for this test, and it takes 24 hours for an | ||
* inventory report to actually get written to the bucket. | ||
* We could set up a hard-coded bucket, but that would probably introduce flakes. | ||
* The best we can do is make sure the test runs without throwing an error | ||
*/ | ||
} | ||
|
||
public void Dispose() | ||
{ | ||
try | ||
{ | ||
_fixture.StorageInsights.DeleteReportConfig(_reportConfigName); | ||
} | ||
catch (Exception) | ||
{ | ||
// Do nothing, we delete on a best effort basis. | ||
} | ||
} | ||
} |
61 changes: 61 additions & 0 deletions
61
storageinsights/api/StorageInsights.Samples.Tests/ListInventoryReportConfigsTest.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
// Copyright 2024 Google LLC | ||
// | ||
// 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 | ||
// | ||
// https://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.StorageInsights.V1; | ||
using GoogleCloudSamples; | ||
using System; | ||
using System.Linq; | ||
using Xunit; | ||
|
||
namespace StorageInsights.Samples.Tests; | ||
|
||
[Collection(nameof(StorageFixture))] | ||
public class ListInventoryReportConfigsTest : IDisposable | ||
{ | ||
private readonly StorageFixture _fixture; | ||
private string _reportConfigName; | ||
|
||
public ListInventoryReportConfigsTest(StorageFixture fixture) => _fixture = fixture; | ||
|
||
[Fact] | ||
public void TestListInventoryReportConfigs() | ||
{ | ||
// The permissions the service account needs sometimes needs a few minutes to propagate, so retry permission issues | ||
RetryRobot robot = new RetryRobot() { ShouldRetry = (e) => e.Message.Contains("PermissionDenied") }; | ||
ReportConfig reportConfig = null; | ||
robot.Eventually(() => | ||
{ | ||
reportConfig = new CreateInventoryReportConfigSample().CreateInventoryReportConfig(_fixture.ProjectId, | ||
_fixture.BucketLocation, _fixture.BucketNameSource, | ||
_fixture.BucketNameSink); | ||
_reportConfigName = reportConfig.Name; | ||
}); | ||
|
||
ListInventoryReportConfigsSample sample = new ListInventoryReportConfigsSample(); | ||
var reportConfigs = sample.ListInventoryReportConfigs(_fixture.ProjectId, _fixture.BucketLocation); | ||
Assert.Contains(reportConfigs, config => config.Name.Contains(reportConfig.ReportConfigName.ReportConfigId)); | ||
} | ||
|
||
public void Dispose() | ||
{ | ||
try | ||
{ | ||
_fixture.StorageInsights.DeleteReportConfig(_reportConfigName); | ||
} | ||
catch (Exception) | ||
{ | ||
// Do nothing, we delete on a best effort basis. | ||
} | ||
} | ||
} |
Oops, something went wrong.