Skip to content

Commit ec6a169

Browse files
author
ccushing
committed
Nil check before type assertion
1 parent 19dad78 commit ec6a169

10 files changed

+74
-22
lines changed

oci/containerengine_node_pool_resource.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,9 @@ func (s *NodePoolResourceCrud) Create() error {
287287
interfaces := set.List()
288288
tmp := make([]string, len(interfaces))
289289
for i := range interfaces {
290-
tmp[i] = interfaces[i].(string)
290+
if interfaces[i] != nil {
291+
tmp[i] = interfaces[i].(string)
292+
}
291293
}
292294
request.SubnetIds = tmp
293295
}
@@ -400,7 +402,9 @@ func (s *NodePoolResourceCrud) Update() error {
400402
interfaces := set.List()
401403
tmp := make([]string, len(interfaces))
402404
for i := range interfaces {
403-
tmp[i] = interfaces[i].(string)
405+
if interfaces[i] != nil {
406+
tmp[i] = interfaces[i].(string)
407+
}
404408
}
405409
request.SubnetIds = tmp
406410
}

oci/core_dhcp_options_resource.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,9 @@ func (s *DhcpOptionsResourceCrud) mapToDhcpOption(fieldKeyFormat string) (oci_co
376376
interfaces := customDnsServers.([]interface{})
377377
tmp := make([]string, len(interfaces))
378378
for i := range interfaces {
379-
tmp[i] = interfaces[i].(string)
379+
if interfaces[i] != nil {
380+
tmp[i] = interfaces[i].(string)
381+
}
380382
}
381383
details.CustomDnsServers = tmp
382384
}
@@ -399,7 +401,9 @@ func (s *DhcpOptionsResourceCrud) mapToDhcpOption(fieldKeyFormat string) (oci_co
399401
interfaces := searchDomainNames.([]interface{})
400402
tmp := make([]string, len(interfaces))
401403
for i := range interfaces {
402-
tmp[i] = interfaces[i].(string)
404+
if interfaces[i] != nil {
405+
tmp[i] = interfaces[i].(string)
406+
}
403407
}
404408
details.SearchDomainNames = tmp
405409
}

oci/core_ip_sec_connection_resource.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,9 @@ func (s *IpSecConnectionResourceCrud) Create() error {
196196
interfaces := staticRoutes.([]interface{})
197197
tmp := make([]string, len(interfaces))
198198
for i := range interfaces {
199-
tmp[i] = interfaces[i].(string)
199+
if interfaces[i] != nil {
200+
tmp[i] = interfaces[i].(string)
201+
}
200202
}
201203
request.StaticRoutes = tmp
202204
}

oci/core_subnet_resource.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,9 @@ func (s *SubnetResourceCrud) Create() error {
254254
interfaces := set.List()
255255
tmp := make([]string, len(interfaces))
256256
for i := range interfaces {
257-
tmp[i] = interfaces[i].(string)
257+
if interfaces[i] != nil {
258+
tmp[i] = interfaces[i].(string)
259+
}
258260
}
259261
request.SecurityListIds = tmp
260262
}

oci/core_volume_group_resource.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,9 @@ func (s *VolumeGroupResourceCrud) Update() error {
299299
interfaces := volumeIds.([]interface{})
300300
tmp := make([]string, len(interfaces))
301301
for i := range interfaces {
302-
tmp[i] = interfaces[i].(string)
302+
if interfaces[i] != nil {
303+
tmp[i] = interfaces[i].(string)
304+
}
303305
}
304306
request.VolumeIds = tmp
305307
}
@@ -408,7 +410,9 @@ func (s *VolumeGroupResourceCrud) mapToVolumeGroupSourceDetails(fieldKeyFormat s
408410
interfaces := set.List()
409411
tmp := make([]string, len(interfaces))
410412
for i := range interfaces {
411-
tmp[i] = interfaces[i].(string)
413+
if interfaces[i] != nil {
414+
tmp[i] = interfaces[i].(string)
415+
}
412416
}
413417
details.VolumeIds = tmp
414418
}

oci/database_db_system_resource.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -475,7 +475,9 @@ func (s *DbSystemResourceCrud) Update() error {
475475
interfaces := sshPublicKeys.([]interface{})
476476
tmp := make([]string, len(interfaces))
477477
for i := range interfaces {
478-
tmp[i] = interfaces[i].(string)
478+
if interfaces[i] != nil {
479+
tmp[i] = interfaces[i].(string)
480+
}
479481
}
480482
request.SshPublicKeys = tmp
481483
}
@@ -924,7 +926,9 @@ func (s *DbSystemResourceCrud) populateTopLevelPolymorphicLaunchDbSystemRequest(
924926
interfaces := sshPublicKeys.([]interface{})
925927
tmp := make([]string, len(interfaces))
926928
for i := range interfaces {
927-
tmp[i] = interfaces[i].(string)
929+
if interfaces[i] != nil {
930+
tmp[i] = interfaces[i].(string)
931+
}
928932
}
929933
details.SshPublicKeys = tmp
930934
}
@@ -1016,7 +1020,9 @@ func (s *DbSystemResourceCrud) populateTopLevelPolymorphicLaunchDbSystemRequest(
10161020
interfaces := sshPublicKeys.([]interface{})
10171021
tmp := make([]string, len(interfaces))
10181022
for i := range interfaces {
1019-
tmp[i] = interfaces[i].(string)
1023+
if interfaces[i] != nil {
1024+
tmp[i] = interfaces[i].(string)
1025+
}
10201026
}
10211027
details.SshPublicKeys = tmp
10221028
}

oci/identity_policy_resource.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,9 @@ func (s *PolicyResourceCrud) Create() error {
220220
interfaces := statements.([]interface{})
221221
tmp := make([]string, len(interfaces))
222222
for i := range interfaces {
223-
tmp[i] = interfaces[i].(string)
223+
if interfaces[i] != nil {
224+
tmp[i] = interfaces[i].(string)
225+
}
224226
}
225227
request.Statements = tmp
226228
}
@@ -300,12 +302,13 @@ func (s *PolicyResourceCrud) Update() error {
300302
interfaces := statements.([]interface{})
301303
tmp := make([]string, len(interfaces))
302304
for i := range interfaces {
303-
tmp[i] = interfaces[i].(string)
305+
if interfaces[i] != nil {
306+
tmp[i] = interfaces[i].(string)
307+
}
304308
}
305309
request.Statements = tmp
306310
}
307311

308-
// TODO: see comment "pending spec/sdk versionDate solution" above
309312
if versionDate, ok := s.D.GetOkExists("version_date"); ok {
310313
tmp, err := oci_common.NewSDKDateFromString(versionDate.(string))
311314
if err != nil {

oci/identity_policy_resource_test.go

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,12 @@
33
package provider
44

55
import (
6+
"fmt"
7+
"regexp"
68
"testing"
79

810
"github.com/hashicorp/terraform/helper/resource"
911
"github.com/hashicorp/terraform/terraform"
10-
11-
"fmt"
12-
13-
"regexp"
14-
1512
"github.com/oracle/oci-go-sdk/identity"
1613
"github.com/stretchr/testify/suite"
1714
)
@@ -108,6 +105,30 @@ func (s *ResourceIdentityPolicyTestSuite) TestAccResourceIdentityPolicy_basic()
108105
)
109106
}
110107

108+
func (s *ResourceIdentityPolicyTestSuite) TestAccResourceIdentityPolicy_emptyStatement() {
109+
resource.Test(s.T(), resource.TestCase{
110+
Providers: s.Providers,
111+
Steps: []resource.TestStep{
112+
// verify create
113+
{
114+
Config: s.Config + s.TokenFn(`
115+
resource "oci_identity_policy" "p" {
116+
compartment_id = "${oci_identity_compartment.t.id}"
117+
name = "p1-{{.token}}"
118+
description = "automated test policy"
119+
version_date = "2018-04-17"
120+
statements = [
121+
"Allow group ${oci_identity_group.t.name} to inspect instances in compartment ${oci_identity_compartment.t.name}",
122+
"",
123+
"Allow group ${oci_identity_group.t.name} to inspect instances in compartment ${oci_identity_compartment.t.name}"]
124+
}`, nil),
125+
ExpectError: regexp.MustCompile("Service error:InvalidParameter"),
126+
},
127+
},
128+
},
129+
)
130+
}
131+
111132
func (s *ResourceIdentityPolicyTestSuite) TestAccResourceIdentityPolicy_formattingDiff() {
112133
var lastUpdateETag, policyHash string
113134
resource.Test(s.T(), resource.TestCase{

oci/load_balancer_listener_resource.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,9 @@ func (s *ListenerResourceCrud) Create() error {
231231
interfaces := hostnameNames.([]interface{})
232232
tmp := make([]string, len(interfaces))
233233
for i := range interfaces {
234-
tmp[i] = interfaces[i].(string)
234+
if interfaces[i] != nil {
235+
tmp[i] = interfaces[i].(string)
236+
}
235237
}
236238
request.HostnameNames = tmp
237239
}
@@ -366,7 +368,9 @@ func (s *ListenerResourceCrud) Update() error {
366368
interfaces := hostnameNames.([]interface{})
367369
tmp := make([]string, len(interfaces))
368370
for i := range interfaces {
369-
tmp[i] = interfaces[i].(string)
371+
if interfaces[i] != nil {
372+
tmp[i] = interfaces[i].(string)
373+
}
370374
}
371375
request.HostnameNames = tmp
372376
}

oci/load_balancer_load_balancer_resource.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,9 @@ func (s *LoadBalancerResourceCrud) Create() error {
209209
interfaces := subnetIds.([]interface{})
210210
tmp := make([]string, len(interfaces))
211211
for i := range interfaces {
212-
tmp[i] = interfaces[i].(string)
212+
if interfaces[i] != nil {
213+
tmp[i] = interfaces[i].(string)
214+
}
213215
}
214216
request.SubnetIds = tmp
215217
}

0 commit comments

Comments
 (0)