4848 "export_options" : acctest.RepresentationGroup {RepType : acctest .Optional , Group : FileStorageExportExportOptionsRepresentation },
4949 "is_idmap_groups_for_sys_auth" : acctest.Representation {RepType : acctest .Optional , Create : `false` , Update : `true` },
5050 }
51+ FileStorageExportRepresentationWithFullLock = map [string ]interface {}{
52+ "export_set_id" : acctest.Representation {RepType : acctest .Required , Create : `${oci_file_storage_export_set.test_export_set.id}` },
53+ "file_system_id" : acctest.Representation {RepType : acctest .Required , Create : `${oci_file_storage_file_system.test_file_system.id}` },
54+ "path" : acctest.Representation {RepType : acctest .Required , Create : `/files-5` },
55+ "export_options" : acctest.RepresentationGroup {RepType : acctest .Optional , Group : FileStorageExportExportOptionsRepresentation },
56+ "is_idmap_groups_for_sys_auth" : acctest.Representation {RepType : acctest .Optional , Create : `false` , Update : `true` },
57+ "locks" : acctest.RepresentationGroup {RepType : acctest .Optional , Group : FileStorageExportFullLockRepresentation },
58+ "is_lock_override" : acctest.Representation {RepType : acctest .Required , Create : `true` , Update : `true` },
59+ }
60+ FileStorageExportRepresentationWithDeleteLock = map [string ]interface {}{
61+ "export_set_id" : acctest.Representation {RepType : acctest .Required , Create : `${oci_file_storage_export_set.test_export_set.id}` },
62+ "file_system_id" : acctest.Representation {RepType : acctest .Required , Create : `${oci_file_storage_file_system.test_file_system.id}` },
63+ "path" : acctest.Representation {RepType : acctest .Required , Create : `/files-5` },
64+ "export_options" : acctest.RepresentationGroup {RepType : acctest .Optional , Group : FileStorageExportExportOptionsRepresentation },
65+ "is_idmap_groups_for_sys_auth" : acctest.Representation {RepType : acctest .Optional , Create : `false` , Update : `true` },
66+ "locks" : acctest.RepresentationGroup {RepType : acctest .Optional , Group : FileStorageExportDeleteLockRepresentation },
67+ "is_lock_override" : acctest.Representation {RepType : acctest .Required , Create : `true` , Update : `true` },
68+ }
5169 FileStorageExportExportOptionsRepresentation = map [string ]interface {}{
5270 "source" : acctest.Representation {RepType : acctest .Required , Create : `0.0.0.0/0` },
5371 "access" : acctest.Representation {RepType : acctest .Optional , Create : `READ_WRITE` , Update : `READ_ONLY` },
5876 "is_anonymous_access_allowed" : acctest.Representation {RepType : acctest .Optional , Create : `false` , Update : `true` },
5977 "require_privileged_source_port" : acctest.Representation {RepType : acctest .Optional , Create : `false` , Update : `true` },
6078 }
79+ FileStorageExportFullLockRepresentation = map [string ]interface {}{
80+ "type" : acctest.Representation {RepType : acctest .Required , Create : `FULL` },
81+ "message" : acctest.Representation {RepType : acctest .Optional , Create : `message` },
82+ }
83+ FileStorageExportDeleteLockRepresentation = map [string ]interface {}{
84+ "type" : acctest.Representation {RepType : acctest .Required , Create : `DELETE` },
85+ "message" : acctest.Representation {RepType : acctest .Optional , Create : `message` },
86+ }
6187
6288 FileStorageExportResourceDependencies = acctest .GenerateResourceFromRepresentationMap ("oci_file_storage_export_set" , "test_export_set" , acctest .Required , acctest .Create , FileStorageExportSetRepresentation ) +
6389 acctest .GenerateResourceFromRepresentationMap ("oci_core_subnet" , "test_subnet" , acctest .Required , acctest .Create , CoreSubnetRepresentation ) +
@@ -106,10 +132,10 @@ func TestFileStorageExportResource_basic(t *testing.T) {
106132 {
107133 Config : config + compartmentIdVariableStr + FileStorageExportResourceDependencies ,
108134 },
109- // verify Create with optionals
135+ // verify Create with optionals and DELETE lock
110136 {
111137 Config : config + compartmentIdVariableStr + FileStorageExportResourceDependencies +
112- acctest .GenerateResourceFromRepresentationMap ("oci_file_storage_export" , "test_export" , acctest .Optional , acctest .Create , FileStorageExportRepresentation ),
138+ acctest .GenerateResourceFromRepresentationMap ("oci_file_storage_export" , "test_export" , acctest .Optional , acctest .Create , FileStorageExportRepresentationWithDeleteLock ),
113139 Check : acctest .ComposeAggregateTestCheckFuncWrapper (
114140 resource .TestCheckResourceAttr (resourceName , "export_options.#" , "1" ),
115141 resource .TestCheckResourceAttr (resourceName , "export_options.0.access" , "READ_WRITE" ),
@@ -125,6 +151,10 @@ func TestFileStorageExportResource_basic(t *testing.T) {
125151 resource .TestCheckResourceAttrSet (resourceName , "file_system_id" ),
126152 resource .TestCheckResourceAttrSet (resourceName , "id" ),
127153 resource .TestCheckResourceAttr (resourceName , "is_idmap_groups_for_sys_auth" , "false" ),
154+ resource .TestCheckResourceAttr (resourceName , "locks.#" , "1" ),
155+ resource .TestCheckResourceAttr (resourceName , "locks.0.message" , "message" ),
156+ resource .TestCheckResourceAttrSet (resourceName , "locks.0.time_created" ),
157+ resource .TestCheckResourceAttr (resourceName , "locks.0.type" , "DELETE" ),
128158 resource .TestCheckResourceAttr (resourceName , "path" , "/files-5" ),
129159 resource .TestCheckResourceAttrSet (resourceName , "state" ),
130160 resource .TestCheckResourceAttrSet (resourceName , "time_created" ),
@@ -192,12 +222,41 @@ func TestFileStorageExportResource_basic(t *testing.T) {
192222 resource .TestCheckResourceAttrSet (datasourceName , "exports.0.time_created" ),
193223 ),
194224 },
225+ // delete before next Create
226+ {
227+ Config : config + compartmentIdVariableStr + FileStorageExportResourceDependencies ,
228+ },
229+ // verify Create with FULL Lock
230+ {
231+ Config : config + compartmentIdVariableStr + FileStorageExportResourceDependencies +
232+ acctest .GenerateResourceFromRepresentationMap ("oci_file_storage_export" , "test_export" , acctest .Optional , acctest .Create , FileStorageExportRepresentationWithFullLock ),
233+ Check : acctest .ComposeAggregateTestCheckFuncWrapper (
234+ resource .TestCheckResourceAttrSet (resourceName , "export_set_id" ),
235+ resource .TestCheckResourceAttrSet (resourceName , "file_system_id" ),
236+ resource .TestCheckResourceAttrSet (resourceName , "id" ),
237+ resource .TestCheckResourceAttr (resourceName , "is_idmap_groups_for_sys_auth" , "false" ),
238+ resource .TestCheckResourceAttr (resourceName , "locks.#" , "1" ),
239+ resource .TestCheckResourceAttr (resourceName , "locks.0.message" , "message" ),
240+ resource .TestCheckResourceAttrSet (resourceName , "locks.0.time_created" ),
241+ resource .TestCheckResourceAttr (resourceName , "locks.0.type" , "FULL" ),
242+
243+ func (s * terraform.State ) (err error ) {
244+ resId , err = acctest .FromInstanceState (s , resourceName , "id" )
245+ if isEnableExportCompartment , _ := strconv .ParseBool (utils .GetEnvSettingWithDefault ("enable_export_compartment" , "true" )); isEnableExportCompartment {
246+ if errExport := resourcediscovery .TestExportCompartmentWithResourceName (& resId , & compartmentId , resourceName ); errExport != nil {
247+ return errExport
248+ }
249+ }
250+ return err
251+ },
252+ ),
253+ },
195254 // verify resource import
196255 {
197256 Config : config + FileStorageExportRequiredOnlyResource ,
198257 ImportState : true ,
199258 ImportStateVerify : true ,
200- ImportStateVerifyIgnore : []string {},
259+ ImportStateVerifyIgnore : []string {"is_lock_override" },
201260 ResourceName : resourceName ,
202261 },
203262 })
0 commit comments