Skip to content
This repository has been archived by the owner on Sep 25, 2023. It is now read-only.

feat: added validation only mode when writing dashboards #411

Merged
merged 2 commits into from Jul 13, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -56,6 +56,7 @@
* CreateDashboardRequest.newBuilder()
* .setParent("parent-995424086")
* .setDashboard(Dashboard.newBuilder().build())
* .setValidateOnly(true)
* .build();
* Dashboard response = dashboardsServiceClient.createDashboard(request);
* }
Expand Down Expand Up @@ -166,10 +167,9 @@ public DashboardsServiceStub getStub() {
// AUTO-GENERATED DOCUMENTATION AND METHOD.
/**
* Creates a new custom dashboard. For examples on how you can use this API to create dashboards,
* see [Managing dashboards by API](https://cloud.google.com/monitoring/dashboards/api-dashboard).
* This method requires the `monitoring.dashboards.create` permission on the specified project.
* For more information about permissions, see [Cloud Identity and Access
* Management](https://cloud.google.com/iam).
* see [Managing dashboards by API](/monitoring/dashboards/api-dashboard). This method requires
* the `monitoring.dashboards.create` permission on the specified project. For more information
* about permissions, see [Cloud Identity and Access Management](/iam).
*
* <p>Sample code:
*
Expand All @@ -179,6 +179,7 @@ public DashboardsServiceStub getStub() {
* CreateDashboardRequest.newBuilder()
* .setParent("parent-995424086")
* .setDashboard(Dashboard.newBuilder().build())
* .setValidateOnly(true)
* .build();
* Dashboard response = dashboardsServiceClient.createDashboard(request);
* }
Expand All @@ -194,10 +195,9 @@ public final Dashboard createDashboard(CreateDashboardRequest request) {
// AUTO-GENERATED DOCUMENTATION AND METHOD.
/**
* Creates a new custom dashboard. For examples on how you can use this API to create dashboards,
* see [Managing dashboards by API](https://cloud.google.com/monitoring/dashboards/api-dashboard).
* This method requires the `monitoring.dashboards.create` permission on the specified project.
* For more information about permissions, see [Cloud Identity and Access
* Management](https://cloud.google.com/iam).
* see [Managing dashboards by API](/monitoring/dashboards/api-dashboard). This method requires
* the `monitoring.dashboards.create` permission on the specified project. For more information
* about permissions, see [Cloud Identity and Access Management](/iam).
*
* <p>Sample code:
*
Expand All @@ -207,6 +207,7 @@ public final Dashboard createDashboard(CreateDashboardRequest request) {
* CreateDashboardRequest.newBuilder()
* .setParent("parent-995424086")
* .setDashboard(Dashboard.newBuilder().build())
* .setValidateOnly(true)
* .build();
* ApiFuture<Dashboard> future =
* dashboardsServiceClient.createDashboardCallable().futureCall(request);
Expand Down Expand Up @@ -437,7 +438,10 @@ public final UnaryCallable<DeleteDashboardRequest, Empty> deleteDashboardCallabl
* <pre>{@code
* try (DashboardsServiceClient dashboardsServiceClient = DashboardsServiceClient.create()) {
* UpdateDashboardRequest request =
* UpdateDashboardRequest.newBuilder().setDashboard(Dashboard.newBuilder().build()).build();
* UpdateDashboardRequest.newBuilder()
* .setDashboard(Dashboard.newBuilder().build())
* .setValidateOnly(true)
* .build();
* Dashboard response = dashboardsServiceClient.updateDashboard(request);
* }
* }</pre>
Expand All @@ -462,7 +466,10 @@ public final Dashboard updateDashboard(UpdateDashboardRequest request) {
* <pre>{@code
* try (DashboardsServiceClient dashboardsServiceClient = DashboardsServiceClient.create()) {
* UpdateDashboardRequest request =
* UpdateDashboardRequest.newBuilder().setDashboard(Dashboard.newBuilder().build()).build();
* UpdateDashboardRequest.newBuilder()
* .setDashboard(Dashboard.newBuilder().build())
* .setValidateOnly(true)
* .build();
* ApiFuture<Dashboard> future =
* dashboardsServiceClient.updateDashboardCallable().futureCall(request);
* // Do something.
Expand Down
Expand Up @@ -30,6 +30,7 @@
* CreateDashboardRequest.newBuilder()
* .setParent("parent-995424086")
* .setDashboard(Dashboard.newBuilder().build())
* .setValidateOnly(true)
* .build();
* Dashboard response = dashboardsServiceClient.createDashboard(request);
* }
Expand Down
Expand Up @@ -102,6 +102,7 @@ public void createDashboardTest() throws Exception {
CreateDashboardRequest.newBuilder()
.setParent("parent-995424086")
.setDashboard(Dashboard.newBuilder().build())
.setValidateOnly(true)
.build();

Dashboard actualResponse = client.createDashboard(request);
Expand All @@ -113,6 +114,7 @@ public void createDashboardTest() throws Exception {

Assert.assertEquals(request.getParent(), actualRequest.getParent());
Assert.assertEquals(request.getDashboard(), actualRequest.getDashboard());
Assert.assertEquals(request.getValidateOnly(), actualRequest.getValidateOnly());
Assert.assertTrue(
channelProvider.isHeaderSent(
ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
Expand All @@ -129,6 +131,7 @@ public void createDashboardExceptionTest() throws Exception {
CreateDashboardRequest.newBuilder()
.setParent("parent-995424086")
.setDashboard(Dashboard.newBuilder().build())
.setValidateOnly(true)
.build();
client.createDashboard(request);
Assert.fail("No exception raised");
Expand Down Expand Up @@ -290,7 +293,10 @@ public void updateDashboardTest() throws Exception {
mockDashboardsService.addResponse(expectedResponse);

UpdateDashboardRequest request =
UpdateDashboardRequest.newBuilder().setDashboard(Dashboard.newBuilder().build()).build();
UpdateDashboardRequest.newBuilder()
.setDashboard(Dashboard.newBuilder().build())
.setValidateOnly(true)
.build();

Dashboard actualResponse = client.updateDashboard(request);
Assert.assertEquals(expectedResponse, actualResponse);
Expand All @@ -300,6 +306,7 @@ public void updateDashboardTest() throws Exception {
UpdateDashboardRequest actualRequest = ((UpdateDashboardRequest) actualRequests.get(0));

Assert.assertEquals(request.getDashboard(), actualRequest.getDashboard());
Assert.assertEquals(request.getValidateOnly(), actualRequest.getValidateOnly());
Assert.assertTrue(
channelProvider.isHeaderSent(
ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
Expand All @@ -313,7 +320,10 @@ public void updateDashboardExceptionTest() throws Exception {

try {
UpdateDashboardRequest request =
UpdateDashboardRequest.newBuilder().setDashboard(Dashboard.newBuilder().build()).build();
UpdateDashboardRequest.newBuilder()
.setDashboard(Dashboard.newBuilder().build())
.setValidateOnly(true)
.build();
client.updateDashboard(request);
Assert.fail("No exception raised");
} catch (InvalidArgumentException e) {
Expand Down
Expand Up @@ -318,12 +318,8 @@ public abstract static class DashboardsServiceImplBase implements io.grpc.Bindab
*
*
* <pre>
* Creates a new custom dashboard. For examples on how you can use this API to
* create dashboards, see [Managing dashboards by
* API](https://cloud.google.com/monitoring/dashboards/api-dashboard). This method requires the
* `monitoring.dashboards.create` permission on the specified project. For
* more information about permissions, see [Cloud Identity and Access
* Management](https://cloud.google.com/iam).
* Creates a new custom dashboard. For examples on how you can use this API to create dashboards, see [Managing dashboards by API](/monitoring/dashboards/api-dashboard).
* This method requires the `monitoring.dashboards.create` permission on the specified project. For more information about permissions, see [Cloud Identity and Access Management](/iam).
* </pre>
*/
public void createDashboard(
Expand Down Expand Up @@ -469,12 +465,8 @@ protected DashboardsServiceStub build(
*
*
* <pre>
* Creates a new custom dashboard. For examples on how you can use this API to
* create dashboards, see [Managing dashboards by
* API](https://cloud.google.com/monitoring/dashboards/api-dashboard). This method requires the
* `monitoring.dashboards.create` permission on the specified project. For
* more information about permissions, see [Cloud Identity and Access
* Management](https://cloud.google.com/iam).
* Creates a new custom dashboard. For examples on how you can use this API to create dashboards, see [Managing dashboards by API](/monitoring/dashboards/api-dashboard).
* This method requires the `monitoring.dashboards.create` permission on the specified project. For more information about permissions, see [Cloud Identity and Access Management](/iam).
* </pre>
*/
public void createDashboard(
Expand Down Expand Up @@ -592,12 +584,8 @@ protected DashboardsServiceBlockingStub build(
*
*
* <pre>
* Creates a new custom dashboard. For examples on how you can use this API to
* create dashboards, see [Managing dashboards by
* API](https://cloud.google.com/monitoring/dashboards/api-dashboard). This method requires the
* `monitoring.dashboards.create` permission on the specified project. For
* more information about permissions, see [Cloud Identity and Access
* Management](https://cloud.google.com/iam).
* Creates a new custom dashboard. For examples on how you can use this API to create dashboards, see [Managing dashboards by API](/monitoring/dashboards/api-dashboard).
* This method requires the `monitoring.dashboards.create` permission on the specified project. For more information about permissions, see [Cloud Identity and Access Management](/iam).
* </pre>
*/
public com.google.monitoring.dashboard.v1.Dashboard createDashboard(
Expand Down Expand Up @@ -695,12 +683,8 @@ protected DashboardsServiceFutureStub build(
*
*
* <pre>
* Creates a new custom dashboard. For examples on how you can use this API to
* create dashboards, see [Managing dashboards by
* API](https://cloud.google.com/monitoring/dashboards/api-dashboard). This method requires the
* `monitoring.dashboards.create` permission on the specified project. For
* more information about permissions, see [Cloud Identity and Access
* Management](https://cloud.google.com/iam).
* Creates a new custom dashboard. For examples on how you can use this API to create dashboards, see [Managing dashboards by API](/monitoring/dashboards/api-dashboard).
* This method requires the `monitoring.dashboards.create` permission on the specified project. For more information about permissions, see [Cloud Identity and Access Management](/iam).
* </pre>
*/
public com.google.common.util.concurrent.ListenableFuture<
Expand Down