Skip to content

Commit 0a5ea2e

Browse files
committed
update SA notes and diff suppress
1 parent 87e9100 commit 0a5ea2e

File tree

5 files changed

+64
-32
lines changed

5 files changed

+64
-32
lines changed

ibm/service/vpc/data_source_ibm_is_share_accessor_binding_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ func TestAccIBMIsShareAccessorBindingDataSourceBasic(t *testing.T) {
2626
vpcname := fmt.Sprintf("tf-vpc-name-%d", acctest.RandIntRange(10, 100))
2727
shareName := fmt.Sprintf("tf-share-%d", acctest.RandIntRange(10, 100))
2828
shareName1 := fmt.Sprintf("tf-share1-%d", acctest.RandIntRange(10, 100))
29-
tEMode1 := "user_managed"
29+
tEMode1 := "ipsec"
3030
resource.Test(t, resource.TestCase{
3131
PreCheck: func() { acc.TestAccPreCheck(t) },
3232
Providers: acc.TestAccProviders,

ibm/service/vpc/data_source_ibm_is_share_accessor_bindings_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ func TestAccIBMIsShareAccessorBindingsDataSourceBasic(t *testing.T) {
2727
vpcname := fmt.Sprintf("tf-vpc-name-%d", acctest.RandIntRange(10, 100))
2828
shareName := fmt.Sprintf("tf-share-%d", acctest.RandIntRange(10, 100))
2929
shareName1 := fmt.Sprintf("tf-share1-%d", acctest.RandIntRange(10, 100))
30-
tEMode1 := "user_managed"
30+
tEMode1 := "ipsec"
3131
resource.Test(t, resource.TestCase{
3232
PreCheck: func() { acc.TestAccPreCheck(t) },
3333
Providers: acc.TestAccProviders,

ibm/service/vpc/resource_ibm_is_share.go

Lines changed: 49 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,12 @@ const (
3131
IsFileShareReplicationRoleReplica = "replica"
3232
)
3333

34+
func normalizeValue(value string) string {
35+
if value == "user_managed" {
36+
return "ipsec"
37+
}
38+
return value
39+
}
3440
func ResourceIbmIsShare() *schema.Resource {
3541
return &schema.Resource{
3642
CreateContext: resourceIbmIsShareCreate,
@@ -54,10 +60,26 @@ func ResourceIbmIsShare() *schema.Resource {
5460

5561
Schema: map[string]*schema.Schema{
5662
"allowed_transit_encryption_modes": {
57-
Type: schema.TypeList,
58-
Optional: true,
59-
Computed: true,
60-
Elem: &schema.Schema{Type: schema.TypeString},
63+
Type: schema.TypeSet,
64+
Optional: true,
65+
Computed: true,
66+
Set: func(v interface{}) int {
67+
str := v.(string)
68+
normalized := normalizeValue(str)
69+
return schema.HashString(normalized)
70+
},
71+
Elem: &schema.Schema{
72+
Type: schema.TypeString,
73+
DiffSuppressFunc: func(k, old, new string, d *schema.ResourceData) bool {
74+
if old == "user_managed" && new == "ipsec" {
75+
return true
76+
}
77+
if old == "ipsec" && new == "user_managed" {
78+
return true
79+
}
80+
return false
81+
},
82+
},
6183
Description: "Allowed transit encryption modes",
6284
},
6385
"allowed_access_protocols": {
@@ -164,6 +186,15 @@ func ResourceIbmIsShare() *schema.Resource {
164186
Optional: true,
165187
Computed: true,
166188
Description: "The transit encryption mode.",
189+
DiffSuppressFunc: func(k, old, new string, d *schema.ResourceData) bool {
190+
if old == "user_managed" && new == "ipsec" {
191+
return true
192+
}
193+
if old == "ipsec" && new == "user_managed" {
194+
return true
195+
}
196+
return false
197+
},
167198
},
168199
"name": {
169200
Type: schema.TypeString,
@@ -334,13 +365,6 @@ func ResourceIbmIsShare() *schema.Resource {
334365
Description: "Configuration for a replica file share to create and associate with this file share. Ifunspecified, a replica may be subsequently added by creating a new file share with a`source_share` referencing this file share.",
335366
Elem: &schema.Resource{
336367
Schema: map[string]*schema.Schema{
337-
"allowed_transit_encryption_modes": {
338-
Type: schema.TypeList,
339-
Optional: true,
340-
Computed: true,
341-
Elem: &schema.Schema{Type: schema.TypeString},
342-
Description: "Allowed transit encryption modes",
343-
},
344368
"crn": {
345369
Type: schema.TypeString,
346370
Computed: true,
@@ -447,6 +471,15 @@ func ResourceIbmIsShare() *schema.Resource {
447471
Optional: true,
448472
Computed: true,
449473
Description: "The transit encryption mode.",
474+
DiffSuppressFunc: func(k, old, new string, d *schema.ResourceData) bool {
475+
if old == "user_managed" && new == "ipsec" {
476+
return true
477+
}
478+
if old == "ipsec" && new == "user_managed" {
479+
return true
480+
}
481+
return false
482+
},
450483
},
451484
"virtual_network_interface": {
452485
Type: schema.TypeList,
@@ -1170,19 +1203,6 @@ func resourceIbmIsShareCreate(context context.Context, d *schema.ResourceData, m
11701203
replicaShareMap := replicaShareIntf.([]interface{})[0].(map[string]interface{})
11711204
replicaShare := &vpcv1.SharePrototypeShareContext{}
11721205

1173-
if allowedTEMIntf, ok := replicaShareMap["allowed_transit_encryption_modes"]; ok {
1174-
allowedTransitEncryptionModes := []string{}
1175-
allowedTransitEncryptionModesIntf := allowedTEMIntf.([]interface{})
1176-
for _, allowedTransitEncryptionModesItemIntf := range allowedTransitEncryptionModesIntf {
1177-
allowedTransitEncryptionModesItem := allowedTransitEncryptionModesItemIntf.(string)
1178-
if allowedTransitEncryptionModesItem == "user_managed" {
1179-
allowedTransitEncryptionModesItem = "ipsec"
1180-
}
1181-
allowedTransitEncryptionModes = append(allowedTransitEncryptionModes, allowedTransitEncryptionModesItem)
1182-
}
1183-
replicaShare.AllowedTransitEncryptionModes = allowedTransitEncryptionModes
1184-
}
1185-
11861206
iopsIntf, ok := replicaShareMap["iops"]
11871207
iops := iopsIntf.(int)
11881208
if ok && iops != 0 {
@@ -1461,10 +1481,12 @@ func resourceIbmIsShareRead(context context.Context, d *schema.ResourceData, met
14611481
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_is_share", "read", "set-access_control_mode").GetDiag()
14621482
}
14631483
}
1484+
allowedaccessprotocols := []string{}
14641485
if share.AllowedAccessProtocols != nil && len(share.AllowedAccessProtocols) > 0 {
1465-
if err = d.Set("allowed_access_protocols", *&share.AllowedAccessProtocols); err != nil {
1466-
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_is_share", "read", "set-allowed_access_protocols").GetDiag()
1467-
}
1486+
allowedaccessprotocols = share.AllowedAccessProtocols
1487+
}
1488+
if err = d.Set("allowed_access_protocols", allowedaccessprotocols); err != nil {
1489+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_is_share", "read", "set-allowed_access_protocols").GetDiag()
14681490
}
14691491
if err = d.Set("bandwidth", flex.IntValue(share.Bandwidth)); err != nil {
14701492
return diag.FromErr(fmt.Errorf("Error setting bandwidth: %s", err))

ibm/service/vpc/resource_ibm_is_share_delete_accessor_binding_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ func TestAccIbmIsShareDeleteAccessorBinding(t *testing.T) {
2222
shareName := fmt.Sprintf("tf-share-%d", acctest.RandIntRange(10, 100))
2323
shareName1 := fmt.Sprintf("tf-share1-%d", acctest.RandIntRange(10, 100))
2424
shareName2 := fmt.Sprintf("tf-share2-%d", acctest.RandIntRange(10, 100))
25-
tEMode1 := "user_managed"
25+
tEMode1 := "ipsec"
2626
// tEMode2 := "none"
2727
resource.Test(t, resource.TestCase{
2828
PreCheck: func() { acc.TestAccPreCheck(t) },

website/docs/r/is_share.html.markdown

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ subcategory: "VPC infrastructure"
1111
Provides a resource for Share. This allows Share to be created, updated and deleted. For more information, about share replication, see [Share replication](https://cloud.ibm.com/docs/vpc?topic=vpc-file-storage-replication).
1212

1313
~> **NOTE**
14-
New shares should be created with profile `dp2`. Old Tiered profiles will be deprecated soon.
14+
Regional file share `rfs` profile is available for accounts that have been granted special approval to preview the feature.
1515

1616
## Example Usage
1717

@@ -101,7 +101,7 @@ resource "ibm_is_share" "example-4" {
101101
## Example share (Create accessor share for an origin share)
102102
```terraform
103103
resource "ibm_is_share" "example-4" {
104-
allowed_transit_encryption_modes = ["user_managed", "none"]
104+
allowed_transit_encryption_modes = ["ipsec", "none"]
105105
access_control_mode = "security_group"
106106
name = "my-share"
107107
size = 200
@@ -121,6 +121,16 @@ resource "ibm_is_share" "example-6" {
121121
name = "my-replica1"
122122
}
123123
```
124+
## Example share (Create a regional file share)
125+
```terraform
126+
resource "ibm_is_share" "example-4" {
127+
allowed_transit_encryption_modes = ["stunnel", "none"]
128+
access_control_mode = "security_group"
129+
bandwidth = 210
130+
name = "my-share"
131+
size = 200
132+
profile = " profile = "rfs"
133+
}
124134
125135
## Argument Reference
126136

0 commit comments

Comments
 (0)