Skip to content

Commit e63133b

Browse files
committed
Bump sdk, self review, improve import and tests
Signed-off-by: Dainius Serplis <dserplis@vmware.com>
1 parent ea6c97a commit e63133b

4 files changed

+69
-6
lines changed

vcd/datasource_vcd_tm_edge_cluster.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ func datasourceVcdTmEdgeCluster() *schema.Resource {
3232
Type: schema.TypeBool,
3333
Optional: true,
3434
Default: false,
35-
Description: fmt.Sprintf(" %s", labelTmEdgeCluster),
35+
Description: fmt.Sprintf("Will trigger SYNC operation before looking for a given %s", labelTmEdgeCluster),
3636
},
3737
"node_count": {
3838
Type: schema.TypeInt,

vcd/resource_vcd_tm_edge_cluster_qos.go

+15-2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"fmt"
66
"strconv"
7+
"strings"
78

89
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
910
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -124,9 +125,21 @@ func resourceVcdTmEdgeClusterQosDelete(ctx context.Context, d *schema.ResourceDa
124125

125126
func resourceVcdTmEdgeClusterQosImport(ctx context.Context, d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) {
126127
vcdClient := meta.(*VCDClient)
127-
ec, err := vcdClient.GetTmEdgeClusterByName(d.Id())
128+
resourceURI := strings.Split(d.Id(), ImportSeparator)
129+
if len(resourceURI) != 2 {
130+
return nil, fmt.Errorf("resource name must be specified as region-name.edge-cluster-name")
131+
}
132+
regionName, edgeClusterName := resourceURI[0], resourceURI[1]
133+
134+
region, err := vcdClient.GetRegionByName(regionName)
135+
if err != nil {
136+
return nil, fmt.Errorf("error retrieving %s by name '%s': %s", labelTmRegion, regionName, err)
137+
}
138+
139+
ec, err := vcdClient.GetTmEdgeClusterByNameAndRegionId(edgeClusterName, region.Region.ID)
128140
if err != nil {
129-
return nil, fmt.Errorf("error retrieving %s by Name '%s': %s", labelTmEdgeClusterQos, d.Id(), err)
141+
return nil, fmt.Errorf("error retrieving %s by Name '%s' in %s '%s': %s",
142+
labelTmEdgeClusterQos, edgeClusterName, labelTmRegion, regionName, err)
130143
}
131144

132145
d.SetId(ec.TmEdgeCluster.ID)

vcd/resource_vcd_tm_edge_cluster_qos_test.go

+50-2
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,16 @@ func TestAccVcdTmEdgeCluster(t *testing.T) {
4141
configText2 := templateFill(preRequisites+testAccVcdTmEdgeClusterQosStep2, params)
4242
params["FuncName"] = t.Name() + "-step3"
4343
configText3 := templateFill(preRequisites+testAccVcdTmEdgeClusterQosStep3, params)
44+
params["FuncName"] = t.Name() + "-step4"
45+
configText4 := templateFill(preRequisites+testAccVcdTmEdgeClusterQosStep4, params)
46+
params["FuncName"] = t.Name() + "-step5"
47+
configText5 := templateFill(preRequisites+testAccVcdTmEdgeClusterQosStep5, params)
4448

4549
debugPrintf("#[DEBUG] CONFIGURATION step1: %s\n", configText1)
4650
debugPrintf("#[DEBUG] CONFIGURATION step2: %s\n", configText2)
47-
debugPrintf("#[DEBUG] CONFIGURATION step4: %s\n", configText3)
51+
debugPrintf("#[DEBUG] CONFIGURATION step3: %s\n", configText3)
52+
debugPrintf("#[DEBUG] CONFIGURATION step4: %s\n", configText4)
53+
debugPrintf("#[DEBUG] CONFIGURATION step5: %s\n", configText5)
4854
if vcdShortTest {
4955
t.Skip(acceptanceTestsSkipped)
5056
return
@@ -107,7 +113,7 @@ func TestAccVcdTmEdgeCluster(t *testing.T) {
107113
ResourceName: "vcd_tm_edge_cluster_qos.demo",
108114
ImportState: true,
109115
ImportStateVerify: true,
110-
ImportStateId: testConfig.Tm.NsxtEdgeCluster,
116+
ImportStateId: testConfig.Tm.Region + ImportSeparator + params["EdgeClusterName"].(string),
111117
},
112118
{
113119
// Ensuring that the resource is removed (therefore QoS settings must be unset)
@@ -125,6 +131,26 @@ func TestAccVcdTmEdgeCluster(t *testing.T) {
125131
resource.TestCheckResourceAttr("data.vcd_tm_edge_cluster_qos.demo2", "ingress_burst_size_bytes", ""),
126132
),
127133
},
134+
{
135+
// Ensuring that the resource is removed (therefore QoS settings must be unset)
136+
Config: configText4,
137+
Check: resource.ComposeTestCheckFunc(
138+
resource.TestCheckResourceAttr("vcd_tm_edge_cluster_qos.demo", "egress_committed_bandwidth_mbps", "7"),
139+
resource.TestCheckResourceAttr("vcd_tm_edge_cluster_qos.demo", "egress_burst_size_bytes", "8"),
140+
resource.TestCheckResourceAttr("vcd_tm_edge_cluster_qos.demo", "ingress_committed_bandwidth_mbps", ""),
141+
resource.TestCheckResourceAttr("vcd_tm_edge_cluster_qos.demo", "ingress_burst_size_bytes", ""),
142+
),
143+
},
144+
{
145+
// Ensuring that the resource is removed (therefore QoS settings must be unset)
146+
Config: configText5,
147+
Check: resource.ComposeTestCheckFunc(
148+
resource.TestCheckResourceAttr("vcd_tm_edge_cluster_qos.demo", "egress_committed_bandwidth_mbps", ""),
149+
resource.TestCheckResourceAttr("vcd_tm_edge_cluster_qos.demo", "egress_burst_size_bytes", ""),
150+
resource.TestCheckResourceAttr("vcd_tm_edge_cluster_qos.demo", "ingress_committed_bandwidth_mbps", "5"),
151+
resource.TestCheckResourceAttr("vcd_tm_edge_cluster_qos.demo", "ingress_burst_size_bytes", "6"),
152+
),
153+
},
128154
},
129155
})
130156

@@ -167,3 +193,25 @@ data "vcd_tm_edge_cluster_qos" "demo2" {
167193
edge_cluster_id = data.vcd_tm_edge_cluster.demo.id
168194
}
169195
`
196+
197+
// egress only
198+
const testAccVcdTmEdgeClusterQosStep4 = testAccVcdTmEdgeClusterQosStep1 + `
199+
resource "vcd_tm_edge_cluster_qos" "demo" {
200+
edge_cluster_id = data.vcd_tm_edge_cluster.demo.id
201+
202+
egress_committed_bandwidth_mbps = 7
203+
egress_burst_size_bytes = 8
204+
205+
}
206+
`
207+
208+
// ingress only
209+
const testAccVcdTmEdgeClusterQosStep5 = testAccVcdTmEdgeClusterQosStep1 + `
210+
resource "vcd_tm_edge_cluster_qos" "demo" {
211+
edge_cluster_id = data.vcd_tm_edge_cluster.demo.id
212+
213+
ingress_committed_bandwidth_mbps = 5
214+
ingress_burst_size_bytes = 6
215+
216+
}
217+
`

vcd/sample_vcd_test_config_tm.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@
5858
"createNsxtManager": true,
5959
"nsxtManagerUsername": "admin",
6060
"nsxtManagerPassword": "",
61-
"nsxtManagerUrl": "https://nsxmanager.my-company.com"
61+
"nsxtManagerUrl": "https://nsxmanager.my-company.com",
62+
"nsxtTier0Gateway": "existing-t0-gateway",
63+
"nsxtEdgeCluster": "existing-edge-cluster"
6264
}
6365
}

0 commit comments

Comments
 (0)