Skip to content

Commit 1610942

Browse files
author
jiangong
committed
ffs taggging code change
1 parent c0c0d38 commit 1610942

File tree

64 files changed

+5515
-46
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+5515
-46
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
### Added
44
- New parameter `is_hydrated` in `oci_core_volume_groups` resource and data source
5-
- Support for public IP prefixes (CIDRs) up to 31
5+
- Support for public IP prefixes (CIDRs) up to 31
6+
- Support for tagging in `oci_file_storage_file_system`, `oci_file_storage_mount_target`, and `oci_file_storage_snapshot`
67

78
### Deprecated
89
- Volumes: The “backup_policy_id” attribute is now deprecated. Backup policy should be assigned through “volume_backup_policy_assignments” resource instead.

oci/file_storage_file_system_resource.go

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,24 @@ func FileSystemResource() *schema.Resource {
3535
},
3636

3737
// Optional
38+
"defined_tags": {
39+
Type: schema.TypeMap,
40+
Optional: true,
41+
Computed: true,
42+
DiffSuppressFunc: definedTagsDiffSuppressFunction,
43+
Elem: schema.TypeString,
44+
},
3845
"display_name": {
3946
Type: schema.TypeString,
4047
Optional: true,
4148
Computed: true,
4249
},
50+
"freeform_tags": {
51+
Type: schema.TypeMap,
52+
Optional: true,
53+
Computed: true,
54+
Elem: schema.TypeString,
55+
},
4356

4457
// Computed
4558
"metered_bytes": {
@@ -139,11 +152,23 @@ func (s *FileSystemResourceCrud) Create() error {
139152
request.CompartmentId = &tmp
140153
}
141154

155+
if definedTags, ok := s.D.GetOkExists("defined_tags"); ok {
156+
convertedDefinedTags, err := mapToDefinedTags(definedTags.(map[string]interface{}))
157+
if err != nil {
158+
return err
159+
}
160+
request.DefinedTags = convertedDefinedTags
161+
}
162+
142163
if displayName, ok := s.D.GetOkExists("display_name"); ok {
143164
tmp := displayName.(string)
144165
request.DisplayName = &tmp
145166
}
146167

168+
if freeformTags, ok := s.D.GetOkExists("freeform_tags"); ok {
169+
request.FreeformTags = objectMapToStringMap(freeformTags.(map[string]interface{}))
170+
}
171+
147172
request.RequestMetadata.RetryPolicy = getRetryPolicy(s.DisableNotFoundRetries, "file_storage")
148173

149174
response, err := s.Client.CreateFileSystem(context.Background(), request)
@@ -175,6 +200,14 @@ func (s *FileSystemResourceCrud) Get() error {
175200
func (s *FileSystemResourceCrud) Update() error {
176201
request := oci_file_storage.UpdateFileSystemRequest{}
177202

203+
if definedTags, ok := s.D.GetOkExists("defined_tags"); ok {
204+
convertedDefinedTags, err := mapToDefinedTags(definedTags.(map[string]interface{}))
205+
if err != nil {
206+
return err
207+
}
208+
request.DefinedTags = convertedDefinedTags
209+
}
210+
178211
if displayName, ok := s.D.GetOkExists("display_name"); ok {
179212
tmp := displayName.(string)
180213
request.DisplayName = &tmp
@@ -183,6 +216,10 @@ func (s *FileSystemResourceCrud) Update() error {
183216
tmp := s.D.Id()
184217
request.FileSystemId = &tmp
185218

219+
if freeformTags, ok := s.D.GetOkExists("freeform_tags"); ok {
220+
request.FreeformTags = objectMapToStringMap(freeformTags.(map[string]interface{}))
221+
}
222+
186223
request.RequestMetadata.RetryPolicy = getRetryPolicy(s.DisableNotFoundRetries, "file_storage")
187224

188225
response, err := s.Client.UpdateFileSystem(context.Background(), request)
@@ -215,10 +252,16 @@ func (s *FileSystemResourceCrud) SetData() error {
215252
s.D.Set("compartment_id", *s.Res.CompartmentId)
216253
}
217254

255+
if s.Res.DefinedTags != nil {
256+
s.D.Set("defined_tags", definedTagsToMap(s.Res.DefinedTags))
257+
}
258+
218259
if s.Res.DisplayName != nil {
219260
s.D.Set("display_name", *s.Res.DisplayName)
220261
}
221262

263+
s.D.Set("freeform_tags", s.Res.FreeformTags)
264+
222265
if s.Res.MeteredBytes != nil {
223266
s.D.Set("metered_bytes", strconv.FormatInt(*s.Res.MeteredBytes, 10))
224267
}

oci/file_storage_file_system_test.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,12 @@ var (
3131
fileSystemRepresentation = map[string]interface{}{
3232
"availability_domain": Representation{repType: Required, create: `${lookup(data.oci_identity_availability_domains.test_availability_domains.availability_domains[0],"name")}`},
3333
"compartment_id": Representation{repType: Required, create: `${var.compartment_id}`},
34+
"defined_tags": Representation{repType: Optional, create: `${map("${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "value")}`, update: `${map("${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "updatedValue")}`},
3435
"display_name": Representation{repType: Optional, create: `media-files-1`, update: `displayName2`},
36+
"freeform_tags": Representation{repType: Optional, create: map[string]string{"Department": "Finance"}, update: map[string]string{"Department": "Accounting"}},
3537
}
3638

37-
FileSystemResourceDependencies = AvailabilityDomainConfig
39+
FileSystemResourceDependencies = AvailabilityDomainConfig + DefinedTagsDependencies
3840
)
3941

4042
func TestFileStorageFileSystemResource_basic(t *testing.T) {
@@ -82,7 +84,9 @@ func TestFileStorageFileSystemResource_basic(t *testing.T) {
8284
Check: resource.ComposeAggregateTestCheckFunc(
8385
resource.TestCheckResourceAttrSet(resourceName, "availability_domain"),
8486
resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId),
87+
resource.TestCheckResourceAttr(resourceName, "defined_tags.%", "1"),
8588
resource.TestCheckResourceAttr(resourceName, "display_name", "media-files-1"),
89+
resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
8690
resource.TestCheckResourceAttrSet(resourceName, "id"),
8791
resource.TestCheckResourceAttrSet(resourceName, "metered_bytes"),
8892
resource.TestCheckResourceAttrSet(resourceName, "state"),
@@ -102,7 +106,9 @@ func TestFileStorageFileSystemResource_basic(t *testing.T) {
102106
Check: resource.ComposeAggregateTestCheckFunc(
103107
resource.TestCheckResourceAttrSet(resourceName, "availability_domain"),
104108
resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId),
109+
resource.TestCheckResourceAttr(resourceName, "defined_tags.%", "1"),
105110
resource.TestCheckResourceAttr(resourceName, "display_name", "displayName2"),
111+
resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
106112
resource.TestCheckResourceAttrSet(resourceName, "id"),
107113
resource.TestCheckResourceAttrSet(resourceName, "metered_bytes"),
108114
resource.TestCheckResourceAttrSet(resourceName, "state"),

oci/file_storage_mount_target_resource.go

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,24 @@ func MountTargetResource() *schema.Resource {
3939
},
4040

4141
// Optional
42+
"defined_tags": {
43+
Type: schema.TypeMap,
44+
Optional: true,
45+
Computed: true,
46+
DiffSuppressFunc: definedTagsDiffSuppressFunction,
47+
Elem: schema.TypeString,
48+
},
4249
"display_name": {
4350
Type: schema.TypeString,
4451
Optional: true,
4552
Computed: true,
4653
},
54+
"freeform_tags": {
55+
Type: schema.TypeMap,
56+
Optional: true,
57+
Computed: true,
58+
Elem: schema.TypeString,
59+
},
4760
"hostname_label": {
4861
Type: schema.TypeString,
4962
Optional: true,
@@ -168,11 +181,23 @@ func (s *MountTargetResourceCrud) Create() error {
168181
request.CompartmentId = &tmp
169182
}
170183

184+
if definedTags, ok := s.D.GetOkExists("defined_tags"); ok {
185+
convertedDefinedTags, err := mapToDefinedTags(definedTags.(map[string]interface{}))
186+
if err != nil {
187+
return err
188+
}
189+
request.DefinedTags = convertedDefinedTags
190+
}
191+
171192
if displayName, ok := s.D.GetOkExists("display_name"); ok {
172193
tmp := displayName.(string)
173194
request.DisplayName = &tmp
174195
}
175196

197+
if freeformTags, ok := s.D.GetOkExists("freeform_tags"); ok {
198+
request.FreeformTags = objectMapToStringMap(freeformTags.(map[string]interface{}))
199+
}
200+
176201
if hostnameLabel, ok := s.D.GetOkExists("hostname_label"); ok {
177202
tmp := hostnameLabel.(string)
178203
request.HostnameLabel = &tmp
@@ -219,11 +244,23 @@ func (s *MountTargetResourceCrud) Get() error {
219244
func (s *MountTargetResourceCrud) Update() error {
220245
request := oci_file_storage.UpdateMountTargetRequest{}
221246

247+
if definedTags, ok := s.D.GetOkExists("defined_tags"); ok {
248+
convertedDefinedTags, err := mapToDefinedTags(definedTags.(map[string]interface{}))
249+
if err != nil {
250+
return err
251+
}
252+
request.DefinedTags = convertedDefinedTags
253+
}
254+
222255
if displayName, ok := s.D.GetOkExists("display_name"); ok {
223256
tmp := displayName.(string)
224257
request.DisplayName = &tmp
225258
}
226259

260+
if freeformTags, ok := s.D.GetOkExists("freeform_tags"); ok {
261+
request.FreeformTags = objectMapToStringMap(freeformTags.(map[string]interface{}))
262+
}
263+
227264
tmp := s.D.Id()
228265
request.MountTargetId = &tmp
229266

@@ -259,6 +296,10 @@ func (s *MountTargetResourceCrud) SetData() error {
259296
s.D.Set("compartment_id", *s.Res.CompartmentId)
260297
}
261298

299+
if s.Res.DefinedTags != nil {
300+
s.D.Set("defined_tags", definedTagsToMap(s.Res.DefinedTags))
301+
}
302+
262303
if s.Res.DisplayName != nil {
263304
s.D.Set("display_name", *s.Res.DisplayName)
264305
}
@@ -267,6 +308,8 @@ func (s *MountTargetResourceCrud) SetData() error {
267308
s.D.Set("export_set_id", *s.Res.ExportSetId)
268309
}
269310

311+
s.D.Set("freeform_tags", s.Res.FreeformTags)
312+
270313
if s.Res.LifecycleDetails != nil {
271314
s.D.Set("lifecycle_details", *s.Res.LifecycleDetails)
272315
}

oci/file_storage_mount_target_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,9 @@ var (
3333
"availability_domain": Representation{repType: Required, create: `${lookup(data.oci_identity_availability_domains.test_availability_domains.availability_domains[0],"name")}`},
3434
"compartment_id": Representation{repType: Required, create: `${var.compartment_id}`},
3535
"subnet_id": Representation{repType: Required, create: `${oci_core_subnet.test_subnet.id}`},
36+
"defined_tags": Representation{repType: Optional, create: `${map("${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "value")}`, update: `${map("${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "updatedValue")}`},
3637
"display_name": Representation{repType: Optional, create: `mount-target-5`, update: `displayName2`},
38+
"freeform_tags": Representation{repType: Optional, create: map[string]string{"Department": "Finance"}, update: map[string]string{"Department": "Accounting"}},
3739
"hostname_label": Representation{repType: Optional, create: `hostnameLabel`},
3840
"ip_address": Representation{repType: Optional, create: `10.0.1.5`},
3941
}
@@ -88,8 +90,10 @@ func TestFileStorageMountTargetResource_basic(t *testing.T) {
8890
Check: resource.ComposeAggregateTestCheckFunc(
8991
resource.TestCheckResourceAttrSet(resourceName, "availability_domain"),
9092
resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId),
93+
resource.TestCheckResourceAttr(resourceName, "defined_tags.%", "1"),
9194
resource.TestCheckResourceAttr(resourceName, "display_name", "mount-target-5"),
9295
resource.TestCheckResourceAttrSet(resourceName, "export_set_id"),
96+
resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
9397
resource.TestCheckResourceAttr(resourceName, "hostname_label", "hostnameLabel"),
9498
resource.TestCheckResourceAttrSet(resourceName, "id"),
9599
resource.TestCheckResourceAttr(resourceName, "ip_address", "10.0.1.5"),
@@ -113,8 +117,10 @@ func TestFileStorageMountTargetResource_basic(t *testing.T) {
113117
Check: resource.ComposeAggregateTestCheckFunc(
114118
resource.TestCheckResourceAttrSet(resourceName, "availability_domain"),
115119
resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId),
120+
resource.TestCheckResourceAttr(resourceName, "defined_tags.%", "1"),
116121
resource.TestCheckResourceAttr(resourceName, "display_name", "displayName2"),
117122
resource.TestCheckResourceAttrSet(resourceName, "export_set_id"),
123+
resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
118124
resource.TestCheckResourceAttr(resourceName, "hostname_label", "hostnameLabel"),
119125
resource.TestCheckResourceAttrSet(resourceName, "id"),
120126
resource.TestCheckResourceAttr(resourceName, "ip_address", "10.0.1.5"),

oci/file_storage_snapshot_resource.go

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ func SnapshotResource() *schema.Resource {
1818
Timeouts: DefaultTimeout,
1919
Create: createSnapshot,
2020
Read: readSnapshot,
21+
Update: updateSnapshot,
2122
Delete: deleteSnapshot,
2223
Schema: map[string]*schema.Schema{
2324
// Required
@@ -33,6 +34,19 @@ func SnapshotResource() *schema.Resource {
3334
},
3435

3536
// Optional
37+
"defined_tags": {
38+
Type: schema.TypeMap,
39+
Optional: true,
40+
Computed: true,
41+
DiffSuppressFunc: definedTagsDiffSuppressFunction,
42+
Elem: schema.TypeString,
43+
},
44+
"freeform_tags": {
45+
Type: schema.TypeMap,
46+
Optional: true,
47+
Computed: true,
48+
Elem: schema.TypeString,
49+
},
3650

3751
// Computed
3852
"state": {
@@ -63,6 +77,14 @@ func readSnapshot(d *schema.ResourceData, m interface{}) error {
6377
return ReadResource(sync)
6478
}
6579

80+
func updateSnapshot(d *schema.ResourceData, m interface{}) error {
81+
sync := &SnapshotResourceCrud{}
82+
sync.D = d
83+
sync.Client = m.(*OracleClients).fileStorageClient
84+
85+
return UpdateResource(d, sync)
86+
}
87+
6688
func deleteSnapshot(d *schema.ResourceData, m interface{}) error {
6789
sync := &SnapshotResourceCrud{}
6890
sync.D = d
@@ -110,11 +132,23 @@ func (s *SnapshotResourceCrud) DeletedTarget() []string {
110132
func (s *SnapshotResourceCrud) Create() error {
111133
request := oci_file_storage.CreateSnapshotRequest{}
112134

135+
if definedTags, ok := s.D.GetOkExists("defined_tags"); ok {
136+
convertedDefinedTags, err := mapToDefinedTags(definedTags.(map[string]interface{}))
137+
if err != nil {
138+
return err
139+
}
140+
request.DefinedTags = convertedDefinedTags
141+
}
142+
113143
if fileSystemId, ok := s.D.GetOkExists("file_system_id"); ok {
114144
tmp := fileSystemId.(string)
115145
request.FileSystemId = &tmp
116146
}
117147

148+
if freeformTags, ok := s.D.GetOkExists("freeform_tags"); ok {
149+
request.FreeformTags = objectMapToStringMap(freeformTags.(map[string]interface{}))
150+
}
151+
118152
if name, ok := s.D.GetOkExists("name"); ok {
119153
tmp := name.(string)
120154
request.Name = &tmp
@@ -148,6 +182,35 @@ func (s *SnapshotResourceCrud) Get() error {
148182
return nil
149183
}
150184

185+
func (s *SnapshotResourceCrud) Update() error {
186+
request := oci_file_storage.UpdateSnapshotRequest{}
187+
188+
if definedTags, ok := s.D.GetOkExists("defined_tags"); ok {
189+
convertedDefinedTags, err := mapToDefinedTags(definedTags.(map[string]interface{}))
190+
if err != nil {
191+
return err
192+
}
193+
request.DefinedTags = convertedDefinedTags
194+
}
195+
196+
if freeformTags, ok := s.D.GetOkExists("freeform_tags"); ok {
197+
request.FreeformTags = objectMapToStringMap(freeformTags.(map[string]interface{}))
198+
}
199+
200+
tmp := s.D.Id()
201+
request.SnapshotId = &tmp
202+
203+
request.RequestMetadata.RetryPolicy = getRetryPolicy(s.DisableNotFoundRetries, "file_storage")
204+
205+
response, err := s.Client.UpdateSnapshot(context.Background(), request)
206+
if err != nil {
207+
return err
208+
}
209+
210+
s.Res = &response.Snapshot
211+
return nil
212+
}
213+
151214
func (s *SnapshotResourceCrud) Delete() error {
152215
request := oci_file_storage.DeleteSnapshotRequest{}
153216

@@ -161,10 +224,16 @@ func (s *SnapshotResourceCrud) Delete() error {
161224
}
162225

163226
func (s *SnapshotResourceCrud) SetData() error {
227+
if s.Res.DefinedTags != nil {
228+
s.D.Set("defined_tags", definedTagsToMap(s.Res.DefinedTags))
229+
}
230+
164231
if s.Res.FileSystemId != nil {
165232
s.D.Set("file_system_id", *s.Res.FileSystemId)
166233
}
167234

235+
s.D.Set("freeform_tags", s.Res.FreeformTags)
236+
168237
if s.Res.Name != nil {
169238
s.D.Set("name", *s.Res.Name)
170239
}

0 commit comments

Comments
 (0)