Skip to content

Commit 245077c

Browse files
Add Network Peering resource to Vmwareengine (#9511) (#16616)
[upstream:5fe6974a331f156d294aba25e9b582b9b5f7b768] Signed-off-by: Modular Magician <[email protected]>
1 parent 69fe33f commit 245077c

10 files changed

+1339
-2
lines changed

.changelog/9511.txt

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
```release-note:new-resource
2+
`google_vmwareengine_network_peering`
3+
```
4+
```release-note:new-datasource
5+
`google_vmwareengine_network_peering`
6+
```

google/provider/provider_mmv1_resources.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,7 @@ var handwrittenDatasources = map[string]*schema.Resource{
258258
"google_redis_instance": redis.DataSourceGoogleRedisInstance(),
259259
"google_vertex_ai_index": vertexai.DataSourceVertexAIIndex(),
260260
"google_vmwareengine_network": vmwareengine.DataSourceVmwareengineNetwork(),
261+
"google_vmwareengine_network_peering": vmwareengine.DataSourceVmwareengineNetworkPeering(),
261262
"google_vmwareengine_private_cloud": vmwareengine.DataSourceVmwareenginePrivateCloud(),
262263

263264
// ####### END handwritten datasources ###########
@@ -358,9 +359,9 @@ var handwrittenIAMDatasources = map[string]*schema.Resource{
358359
}
359360

360361
// Resources
361-
// Generated resources: 343
362+
// Generated resources: 344
362363
// Generated IAM resources: 213
363-
// Total generated resources: 556
364+
// Total generated resources: 557
364365
var generatedResources = map[string]*schema.Resource{
365366
"google_folder_access_approval_settings": accessapproval.ResourceAccessApprovalFolderSettings(),
366367
"google_organization_access_approval_settings": accessapproval.ResourceAccessApprovalOrganizationSettings(),
@@ -897,6 +898,7 @@ var generatedResources = map[string]*schema.Resource{
897898
"google_vertex_ai_index_endpoint": vertexai.ResourceVertexAIIndexEndpoint(),
898899
"google_vertex_ai_tensorboard": vertexai.ResourceVertexAITensorboard(),
899900
"google_vmwareengine_network": vmwareengine.ResourceVmwareengineNetwork(),
901+
"google_vmwareengine_network_peering": vmwareengine.ResourceVmwareengineNetworkPeering(),
900902
"google_vmwareengine_private_cloud": vmwareengine.ResourceVmwareenginePrivateCloud(),
901903
"google_vpc_access_connector": vpcaccess.ResourceVPCAccessConnector(),
902904
"google_workflows_workflow": workflows.ResourceWorkflowsWorkflow(),
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
// Copyright (c) HashiCorp, Inc.
2+
// SPDX-License-Identifier: MPL-2.0
3+
package vmwareengine
4+
5+
import (
6+
"fmt"
7+
8+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
9+
"github.com/hashicorp/terraform-provider-google/google/tpgresource"
10+
transport_tpg "github.com/hashicorp/terraform-provider-google/google/transport"
11+
)
12+
13+
func DataSourceVmwareengineNetworkPeering() *schema.Resource {
14+
15+
dsSchema := tpgresource.DatasourceSchemaFromResourceSchema(ResourceVmwareengineNetworkPeering().Schema)
16+
tpgresource.AddRequiredFieldsToSchema(dsSchema, "name")
17+
tpgresource.AddOptionalFieldsToSchema(dsSchema, "project")
18+
return &schema.Resource{
19+
Read: dataSourceVmwareengineNetworkPeeringRead,
20+
Schema: dsSchema,
21+
}
22+
}
23+
24+
func dataSourceVmwareengineNetworkPeeringRead(d *schema.ResourceData, meta interface{}) error {
25+
config := meta.(*transport_tpg.Config)
26+
27+
// Store the ID now
28+
id, err := tpgresource.ReplaceVars(d, config, "projects/{{project}}/locations/global/networkPeerings/{{name}}")
29+
if err != nil {
30+
return fmt.Errorf("Error constructing id: %s", err)
31+
}
32+
d.SetId(id)
33+
err = resourceVmwareengineNetworkPeeringRead(d, meta)
34+
if err != nil {
35+
return err
36+
}
37+
38+
if d.Id() == "" {
39+
return fmt.Errorf("%s not found", id)
40+
}
41+
return nil
42+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
// Copyright (c) HashiCorp, Inc.
2+
// SPDX-License-Identifier: MPL-2.0
3+
package vmwareengine_test
4+
5+
import (
6+
"testing"
7+
8+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
9+
"github.com/hashicorp/terraform-provider-google/google/acctest"
10+
)
11+
12+
func TestAccDataSourceVmwareengineNetworkPeering_basic(t *testing.T) {
13+
t.Parallel()
14+
15+
context := map[string]interface{}{
16+
"random_suffix": acctest.RandString(t, 10),
17+
}
18+
19+
acctest.VcrTest(t, resource.TestCase{
20+
PreCheck: func() { acctest.AccTestPreCheck(t) },
21+
ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories(t),
22+
CheckDestroy: testAccCheckVmwareengineNetworkPeeringDestroyProducer(t),
23+
Steps: []resource.TestStep{
24+
{
25+
Config: testAccVmwareengineNetworkPeering_ds(context),
26+
Check: resource.ComposeTestCheckFunc(
27+
acctest.CheckDataSourceStateMatchesResourceStateWithIgnores("data.google_vmwareengine_network_peering.ds", "google_vmwareengine_network_peering.vmw-engine-network-peering", map[string]struct{}{}),
28+
),
29+
},
30+
},
31+
})
32+
}
33+
34+
func testAccVmwareengineNetworkPeering_ds(context map[string]interface{}) string {
35+
return acctest.Nprintf(`
36+
resource "google_vmwareengine_network" "network-peering-nw" {
37+
name = "tf-test-sample-nw%{random_suffix}"
38+
location = "global"
39+
type = "STANDARD"
40+
}
41+
42+
resource "google_vmwareengine_network" "network-peering-peer-nw" {
43+
name = "tf-test-peer-nw%{random_suffix}"
44+
location = "global"
45+
type = "STANDARD"
46+
}
47+
48+
resource "google_vmwareengine_network_peering" "vmw-engine-network-peering" {
49+
name = "tf-test-sample-network-peering%{random_suffix}"
50+
description = "Sample description"
51+
vmware_engine_network = google_vmwareengine_network.network-peering-nw.id
52+
peer_network = google_vmwareengine_network.network-peering-peer-nw.id
53+
peer_network_type = "VMWARE_ENGINE_NETWORK"
54+
}
55+
56+
data "google_vmwareengine_network_peering" "ds" {
57+
name = google_vmwareengine_network_peering.vmw-engine-network-peering.name
58+
depends_on = [
59+
google_vmwareengine_network_peering.vmw-engine-network-peering,
60+
]
61+
}
62+
`, context)
63+
}

0 commit comments

Comments
 (0)