Skip to content

Commit

Permalink
upgrade ncloud-sdk-go-v2 to v1.4.0/
Browse files Browse the repository at this point in the history
fix port_forwarding_rule
  • Loading branch information
sangkyu-kim committed Jan 28, 2022
1 parent 0cd0d3e commit 86974a7
Show file tree
Hide file tree
Showing 6 changed files with 40 additions and 25 deletions.
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ module github.com/terraform-providers/terraform-provider-ncloud
go 1.16

require (
github.com/NaverCloudPlatform/ncloud-sdk-go-v2 v1.3.3
github.com/NaverCloudPlatform/ncloud-sdk-go-v2 v1.4.0
github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320
github.com/hashicorp/terraform-plugin-sdk/v2 v2.10.0
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuN
github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA=
github.com/Microsoft/go-winio v0.4.16 h1:FtSW/jqD+l4ba5iPBj9CODVtgfYAD8w2wS923g/cFDk=
github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0=
github.com/NaverCloudPlatform/ncloud-sdk-go-v2 v1.3.3 h1:FwqQQizEIJEy1EPfB9WdxBITAJx7kuo+FE1W97djV+4=
github.com/NaverCloudPlatform/ncloud-sdk-go-v2 v1.3.3/go.mod h1:7+Hx3TCfPW8HE0ycOH4UJqkTEq7uZeYyk+N1FCDR4LA=
github.com/NaverCloudPlatform/ncloud-sdk-go-v2 v1.4.0 h1:maRRO1Rg9XqbVR9a6qyn8hLY2a7UW+ze+4+TpsuBPnU=
github.com/NaverCloudPlatform/ncloud-sdk-go-v2 v1.4.0/go.mod h1:7+Hx3TCfPW8HE0ycOH4UJqkTEq7uZeYyk+N1FCDR4LA=
github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7 h1:YoJbenK9C67SkzkDfmQuVln04ygHj3vjZfd9FL+GmQQ=
github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo=
github.com/acomagu/bufpipe v1.0.3 h1:fxAGrHZTgQ9w5QqVItgzwj235/uYZYgbXitB+dLupOk=
Expand Down
11 changes: 6 additions & 5 deletions ncloud/data_source_ncloud_port_forwarding_rule.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package ncloud

import (
"fmt"
"log"
"strconv"

"github.com/NaverCloudPlatform/ncloud-sdk-go-v2/ncloud"
Expand Down Expand Up @@ -97,7 +97,7 @@ func dataSourceNcloudPortForwardingRuleRead(d *schema.ResourceData, meta interfa
logErrorResponse("GetPortForwardingRuleList", err, reqParams)
return err
}
logCommonResponse("GetPortForwardingRuleList", GetCommonResponse(resp), fmt.Sprintf("TotalRows: %d", ncloud.Int32Value(resp.TotalRows)))
logResponse("GetPortForwardingRuleList", resp)

allPortForwardingRules := resp.PortForwardingRuleList
var filteredPortForwardingRuleList []*server.PortForwardingRule
Expand Down Expand Up @@ -125,16 +125,17 @@ func dataSourceNcloudPortForwardingRuleRead(d *schema.ResourceData, meta interfa
}
portForwardingRule = filteredPortForwardingRuleList[0]

return portForwardingRuleAttributes(d, resp.PortForwardingConfigurationNo, portForwardingRule)
return portForwardingRuleAttributes(d, resp.PortForwardingRuleList[0].PortForwardingConfigurationNo, portForwardingRule)
}

func portForwardingRuleAttributes(d *schema.ResourceData, portForwardingConfigurationNo *string, rule *server.PortForwardingRule) error {
log.Printf("rule: %+v", rule.PortForwardingExternalPort)
d.SetId(ncloud.StringValue(portForwardingConfigurationNo))
d.Set("port_forwarding_configuration_no", portForwardingConfigurationNo)
d.Set("port_forwarding_public_ip", rule.ServerInstance.PortForwardingPublicIp)
d.Set("server_instance_no", rule.ServerInstance.ServerInstanceNo)
d.Set("port_forwarding_external_port", rule.PortForwardingExternalPort)
d.Set("port_forwarding_internal_port", rule.PortForwardingInternalPort)
d.Set("port_forwarding_external_port", strconv.Itoa(int(ncloud.Int32Value(rule.PortForwardingExternalPort))))
d.Set("port_forwarding_internal_port", strconv.Itoa(int(ncloud.Int32Value(rule.PortForwardingInternalPort))))

return nil
}
2 changes: 1 addition & 1 deletion ncloud/data_source_ncloud_port_forwarding_rules.go
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ func dataSourceNcloudPortForwardingRulesRead(d *schema.ResourceData, meta interf
if len(filteredPortForwardingRuleList) < 1 {
return fmt.Errorf("no results. please change search criteria and try again")
}
return portForwardingRulesAttributes(d, resp.PortForwardingConfigurationNo, filteredPortForwardingRuleList)
return portForwardingRulesAttributes(d, resp.PortForwardingRuleList[0].PortForwardingConfigurationNo, filteredPortForwardingRuleList)
}

func portForwardingRulesAttributes(d *schema.ResourceData, portForwardingConfigurationNo *string, portForwardingRuleList []*server.PortForwardingRule) error {
Expand Down
42 changes: 30 additions & 12 deletions ncloud/resource_ncloud_port_forwarding_rule.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,28 +32,33 @@ func resourceNcloudPortForwadingRule() *schema.Resource {
},

Schema: map[string]*schema.Schema{
"port_forwarding_configuration_no": {
Type: schema.TypeString,
Optional: true,
Description: "Port forwarding configuration number.",
},
"server_instance_no": {
Type: schema.TypeString,
Required: true,
ForceNew: true,
Description: "Server instance number for which port forwarding is set",
},
"port_forwarding_external_port": {
Type: schema.TypeInt,
Required: true,
ForceNew: true,
ValidateDiagFunc: ToDiagFunc(validation.IntBetween(1024, 65534)),
Description: "External port for port forwarding",
},
"port_forwarding_internal_port": {
Type: schema.TypeInt,
Required: true,
ForceNew: true,
ValidateDiagFunc: ToDiagFunc(validation.IntInSlice([]int{22, 3389})), // [Linux : 22 |Windows : 3389]
Description: "Internal port for port forwarding. Only the following ports are available. [Linux: `22` | Windows: `3389`]",
},
"port_forwarding_configuration_no": {
Type: schema.TypeString,
Optional: true,
Computed: true,
Description: "Port forwarding configuration number.",
},

"port_forwarding_public_ip": {
Type: schema.TypeString,
Computed: true,
Expand Down Expand Up @@ -148,8 +153,9 @@ func resourceNcloudPortForwardingRuleRead(d *schema.ResourceData, meta interface
d.Set("server_instance_no", portForwardingRule.ServerInstance.ServerInstanceNo)
d.Set("port_forwarding_external_port", portForwardingRule.PortForwardingExternalPort)
d.Set("port_forwarding_internal_port", portForwardingRule.PortForwardingInternalPort)
d.Set("port_forwarding_configuration_no", portForwardingRule.PortForwardingConfigurationNo)

if zone := flattenZone(resp.Zone); zone["zone_code"] != nil {
if zone := flattenZone(portForwardingRule.Zone); zone["zone_code"] != nil {
d.Set("zone", zone["zone_code"])
}
} else {
Expand Down Expand Up @@ -252,19 +258,31 @@ func getPortForwardingConfigurationNo(d *schema.ResourceData, meta interface{})
if ok {
portForwardingConfigurationNo = paramPortForwardingConfigurationNo.(string)
} else {
zoneNo, err := getServerZoneNo(config, d.Get("server_instance_no").(string))
resp, err := getPortForwardingConfigurationList(d, config)
if err != nil {
return "", err
}
resp, err := getPortForwardingRuleList(config.Client, zoneNo)
if err != nil {
return "", err
}
portForwardingConfigurationNo = ncloud.StringValue(resp.PortForwardingConfigurationNo)
portForwardingConfigurationNo = ncloud.StringValue(resp.PortForwardingConfigurationList[0].PortForwardingConfigurationNo)
}
return portForwardingConfigurationNo, nil
}

func getPortForwardingConfigurationList(d *schema.ResourceData, config *ProviderConfig) (*server.GetPortForwardingConfigurationListResponse, error) {
reqParams := &server.GetPortForwardingConfigurationListRequest{
RegionNo: ncloud.String(config.RegionNo),
ServerInstanceNoList: []*string{ncloud.String(d.Get("server_instance_no").(string))},
}
logCommonRequest("GetPortForwardingConfigurationList", reqParams)
resp, err := config.Client.server.V2Api.GetPortForwardingConfigurationList(reqParams)
if err != nil {
logErrorResponse("GetPortForwardingConfigurationList", err, reqParams)
return nil, err
}
logCommonResponse("GetPortForwardingConfigurationList", GetCommonResponse(resp))

return resp, nil
}

func getPortForwardingRuleList(client *NcloudAPIClient, zoneNo string) (*server.GetPortForwardingRuleListResponse, error) {
reqParams := &server.GetPortForwardingRuleListRequest{
ZoneNo: ncloud.String(zoneNo),
Expand Down
4 changes: 0 additions & 4 deletions ncloud/structures_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -327,12 +327,8 @@ func TestFlattenNasVolumeInstances(t *testing.T) {
VolumeName: ncloud.String("n003666_aaa"),
VolumeTotalSize: ncloud.Int64(536870912000),
VolumeSize: ncloud.Int64(536870912000),
VolumeUseSize: ncloud.Int64(1314816),
VolumeUseRatio: ncloud.Float32(0.0),
SnapshotVolumeConfigurationRatio: ncloud.Float32(0.0),
SnapshotVolumeSize: ncloud.Int64(0),
SnapshotVolumeUseSize: ncloud.Int64(0),
SnapshotVolumeUseRatio: ncloud.Float32(0.0),
IsSnapshotConfiguration: ncloud.Bool(false),
IsEventConfiguration: ncloud.Bool(false),
Region: &server.Region{
Expand Down

0 comments on commit 86974a7

Please sign in to comment.