Skip to content

Commit ab28731

Browse files
authored
feat(sg-rule-name):added name field in other protocols (#6602)
1 parent e4509ab commit ab28731

4 files changed

Lines changed: 24 additions & 3 deletions

ibm/service/vpc/data_source_ibm_is_security_group.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -352,6 +352,7 @@ func securityGroupGet(context context.Context, d *schema.ResourceData, meta inte
352352
r := make(map[string]interface{})
353353
r[isSgRuleDirection] = *rule.Direction
354354
r[isSgRuleIPVersion] = *rule.IPVersion
355+
r[isSgRuleName] = rule.Name
355356
if rule.Protocol != nil {
356357
r[isSgRuleProtocol] = *rule.Protocol
357358
}
@@ -385,6 +386,7 @@ func securityGroupGet(context context.Context, d *schema.ResourceData, meta inte
385386
r := make(map[string]interface{})
386387
r[isSgRuleDirection] = *rule.Direction
387388
r[isSgRuleIPVersion] = *rule.IPVersion
389+
r[isSgRuleName] = rule.Name
388390
if rule.Protocol != nil {
389391
r[isSgRuleProtocol] = *rule.Protocol
390392
}

ibm/service/vpc/data_source_ibm_is_security_group_rule.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,9 @@ func dataSourceIBMIsSecurityGroupRuleRead(context context.Context, d *schema.Res
191191
if err = d.Set("protocol", securityGroupRule.Protocol); err != nil {
192192
return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting protocol: %s", err), "(Data) ibm_is_security_group_rule", "read", "set-protocol").GetDiag()
193193
}
194+
if err = d.Set("name", securityGroupRule.Name); err != nil {
195+
return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting protocol: %s", err), "(Data) ibm_is_security_group_rule", "read", "set-protocol").GetDiag()
196+
}
194197
if securityGroupRule.Remote != nil {
195198
securityGroupRuleRemote, err := dataSourceSecurityGroupRuleFlattenRemote(securityGroupRule.Remote)
196199
if err != nil {
@@ -263,6 +266,9 @@ func dataSourceIBMIsSecurityGroupRuleRead(context context.Context, d *schema.Res
263266
if err = d.Set("protocol", securityGroupRule.Protocol); err != nil {
264267
return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting protocol: %s", err), "(Data) ibm_is_security_group_rule", "read", "set-protocol").GetDiag()
265268
}
269+
if err = d.Set("name", securityGroupRule.Name); err != nil {
270+
return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting protocol: %s", err), "(Data) ibm_is_security_group_rule", "read", "set-protocol").GetDiag()
271+
}
266272
if securityGroupRule.Remote != nil {
267273
securityGroupRuleRemote, err := dataSourceSecurityGroupRuleFlattenRemote(securityGroupRule.Remote)
268274
if err != nil {

ibm/service/vpc/resource_ibm_is_security_group_rule.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ func ResourceIBMISSecurityGroupRule() *schema.Resource {
9494

9595
isSecurityGroupRuleName: {
9696
Type: schema.TypeString,
97+
Optional: true,
9798
Computed: true,
9899
Description: "The name for this security group rule. The name must not be used by another rule in the security group. If unspecified, the name will be a hyphenated list of randomly-selected words.",
99100
},
@@ -1012,8 +1013,9 @@ func parseIBMISSecurityGroupRuleDictionary(d *schema.ResourceData, tag string, s
10121013
securityGroupRulePatchModel.Direction = &parsed.direction
10131014

10141015
if v, ok := d.GetOk(isSecurityGroupRuleName); ok && v.(string) != "" {
1015-
name := v.(string)
1016-
securityGroupRulePatchModel.Name = &name
1016+
parsed.name = v.(string)
1017+
sgTemplate.Name = &parsed.name
1018+
securityGroupRulePatchModel.Name = &parsed.name
10171019
}
10181020

10191021
if version, ok := d.GetOk(isSecurityGroupRuleIPVersion); ok {

ibm/service/vpc/resource_ibm_is_security_group_rule_test.go

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,17 @@ func testAccCheckIBMISsecurityGroupRuleConfig(vpcname, name string) string {
152152
direction = "inbound"
153153
remote = "127.0.0.1"
154154
}
155+
156+
resource "ibm_is_security_group_rule" "testacc_security_group_rule" {
157+
group = ibm_is_security_group.testacc_security_group.id
158+
direction = "inbound"
159+
remote = "127.0.0.1"
160+
icmp {
161+
code = 21
162+
type = 31
163+
}
164+
name = "test-name"
165+
}
155166
156167
resource "ibm_is_security_group_rule" "testacc_security_group_rule_icmp" {
157168
depends_on = [ibm_is_security_group_rule.testacc_security_group_rule_all]
@@ -272,7 +283,7 @@ func testAccCheckIBMISsecurityGroupRuleConfig(vpcname, name string) string {
272283
port_min = 8080
273284
port_max = 8080
274285
}
275-
}
286+
276287
`, vpcname, name)
277288

278289
}

0 commit comments

Comments
 (0)