4444 "values" : acctest.Representation {RepType : acctest .Required , Create : []string {`${oci_core_cross_connect.test_cross_connect.id}` }},
4545 }
4646
47+ // for the required fields on create and update
4748 CoreCrossConnectRepresentation = map [string ]interface {}{
4849 "compartment_id" : acctest.Representation {RepType : acctest .Required , Create : `${var.compartment_id}` },
49- "location_name" : acctest.Representation {RepType : acctest .Required , Create : `${data.oci_core_cross_connect_locations.test_cross_connect_locations.cross_connect_locations.1 .name}` },
50+ "location_name" : acctest.Representation {RepType : acctest .Required , Create : `${data.oci_core_cross_connect_locations.test_cross_connect_locations.cross_connect_locations.0 .name}` },
5051 "port_speed_shape_name" : acctest.Representation {RepType : acctest .Required , Create : `10 Gbps` },
5152 "customer_reference_name" : acctest.Representation {RepType : acctest .Optional , Create : `customerReferenceName` , Update : `customerReferenceName2` },
5253 "defined_tags" : acctest.Representation {RepType : acctest .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")}` },
6263 "primary_key" : acctest.RepresentationGroup {RepType : acctest .Optional , Group : CoreCrossConnectMacsecPropertiesPrimaryKeyRepresentation },
6364 }
6465 CoreCrossConnectMacsecPropertiesPrimaryKeyRepresentation = map [string ]interface {}{
65- "connectivity_association_key_secret_id" : acctest.Representation {RepType : acctest .Required , Create : `${var.secret_ocid_ckn}` },
66- "connectivity_association_name_secret_id" : acctest.Representation {RepType : acctest .Required , Create : `${var.secret_ocid_cak}` },
66+ "connectivity_association_key_secret_id" : acctest.Representation {RepType : acctest .Required , Create : `${var.secret_ocid_cak}` },
67+ "connectivity_association_name_secret_id" : acctest.Representation {RepType : acctest .Required , Create : `${var.secret_ocid_ckn}` },
68+ "connectivity_association_key_secret_version" : acctest.Representation {RepType : acctest .Optional , Update : `${var.secret_version_cak}` },
69+ "connectivity_association_name_secret_version" : acctest.Representation {RepType : acctest .Optional , Update : `${var.secret_version_ckn}` },
6770 }
6871
6972 CoreCrossConnectResourceDependencies = acctest .GenerateResourceFromRepresentationMap ("oci_core_cross_connect_group" , "test_cross_connect_group" , acctest .Required , acctest .Create , CoreCrossConnectGroupRepresentation ) +
@@ -106,9 +109,9 @@ func TestCoreCrossConnectResource_basic(t *testing.T) {
106109 acctest .GenerateResourceFromRepresentationMap ("oci_core_cross_connect" , "test_cross_connect" , acctest .Optional , acctest .Create , CoreCrossConnectRepresentation ), "core" , "crossConnect" , t )
107110
108111 acctest .ResourceTest (t , testAccCheckCoreCrossConnectDestroy , []resource.TestStep {
109- // verify Create
112+ // verify Create // Step:0
110113 {
111- Config : config + compartmentIdVariableStr + CoreCrossConnectResourceDependencies + secretIdVariableStrCKN + secretIdVariableStrCAK +
114+ Config : config + compartmentIdVariableStr + CoreCrossConnectResourceDependencies + secretIdVariableStrCKN + secretIdVariableStrCAK + secretVersionStrCAK + secretVersionStrCKN +
112115 acctest .GenerateResourceFromRepresentationMap ("oci_core_cross_connect" , "test_cross_connect" , acctest .Required , acctest .Create , CoreCrossConnectRepresentation ),
113116 Check : acctest .ComposeAggregateTestCheckFuncWrapper (
114117 resource .TestCheckResourceAttr (resourceName , "compartment_id" , compartmentId ),
@@ -123,11 +126,38 @@ func TestCoreCrossConnectResource_basic(t *testing.T) {
123126 ),
124127 },
125128
126- // delete before next Create
129+ // verify updates to macsec parameters // Step:1
130+ {
131+ Config : config + compartmentIdVariableStr + CoreCrossConnectResourceDependencies + secretIdVariableStrCKN + secretIdVariableStrCAK + secretVersionStrCKN + secretVersionStrCAK +
132+ acctest .GenerateResourceFromRepresentationMap ("oci_core_cross_connect" , "test_cross_connect" , acctest .Optional , acctest .Update , CoreCrossConnectRepresentation ),
133+ Check : acctest .ComposeAggregateTestCheckFuncWrapper (
134+ resource .TestCheckResourceAttr (resourceName , "macsec_properties.#" , "1" ),
135+ resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.encryption_cipher" , "AES256_GCM_XPN" ),
136+ resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.is_unprotected_traffic_allowed" , "true" ),
137+ resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.primary_key.#" , "1" ),
138+ resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.primary_key.0.connectivity_association_key_secret_id" , secretIdCAK ),
139+ resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.primary_key.0.connectivity_association_name_secret_id" , secretIdCKN ),
140+ resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.primary_key.0.connectivity_association_key_secret_version" , secretVersionCAK ),
141+ resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.primary_key.0.connectivity_association_name_secret_version" , secretVersionCKN ),
142+ resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.state" , "ENABLED" ),
143+ resource .TestCheckResourceAttr (resourceName , "port_speed_shape_name" , "10 Gbps" ),
144+ resource .TestCheckResourceAttr (resourceName , "state" , "PROVISIONED" ),
145+
146+ func (s * terraform.State ) (err error ) {
147+ resId2 , err = acctest .FromInstanceState (s , resourceName , "id" )
148+ if resId != resId2 {
149+ return fmt .Errorf ("Resource recreated when it was supposed to be updated." )
150+ }
151+ return err
152+ },
153+ ),
154+ },
155+ // delete before next Create // Step:2
127156 {
128157 Config : config + compartmentIdVariableStr + CoreCrossConnectResourceDependencies ,
129158 },
130- // verify Create with optionals
159+
160+ // verify Create with optionals // Step:3
131161 {
132162 Config : config + compartmentIdVariableStr + CoreCrossConnectResourceDependencies + secretIdVariableStrCKN + secretIdVariableStrCAK +
133163 acctest .GenerateResourceFromRepresentationMap ("oci_core_cross_connect" , "test_cross_connect" , acctest .Optional , acctest .Create , CoreCrossConnectRepresentation ),
@@ -141,8 +171,8 @@ func TestCoreCrossConnectResource_basic(t *testing.T) {
141171 resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.encryption_cipher" , "AES256_GCM" ),
142172 resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.is_unprotected_traffic_allowed" , "false" ),
143173 resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.primary_key.#" , "1" ),
144- resource .TestCheckResourceAttrSet (resourceName , "macsec_properties.0.primary_key.0.connectivity_association_key_secret_id" ),
145- resource .TestCheckResourceAttrSet (resourceName , "macsec_properties.0.primary_key.0.connectivity_association_name_secret_id" ),
174+ resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.primary_key.0.connectivity_association_key_secret_id" , secretIdCAK ),
175+ resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.primary_key.0.connectivity_association_name_secret_id" , secretIdCKN ),
146176 resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.state" , "ENABLED" ),
147177 resource .TestCheckResourceAttr (resourceName , "port_speed_shape_name" , "10 Gbps" ),
148178 resource .TestCheckResourceAttr (resourceName , "state" , "PROVISIONED" ),
@@ -159,7 +189,7 @@ func TestCoreCrossConnectResource_basic(t *testing.T) {
159189 ),
160190 },
161191
162- // verify Update to the compartment (the compartment will be switched back in the next step)
192+ // verify Update to the compartment (the compartment will be switched back in the next step) // Step:4
163193 {
164194 Config : config + compartmentIdVariableStr + compartmentIdUVariableStr + CoreCrossConnectResourceDependencies + secretIdVariableStrCKN + secretIdVariableStrCAK + secretVersionStrCAK + secretVersionStrCKN +
165195 acctest .GenerateResourceFromRepresentationMap ("oci_core_cross_connect" , "test_cross_connect" , acctest .Optional , acctest .Create ,
@@ -175,8 +205,10 @@ func TestCoreCrossConnectResource_basic(t *testing.T) {
175205 resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.encryption_cipher" , "AES256_GCM" ),
176206 resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.is_unprotected_traffic_allowed" , "false" ),
177207 resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.primary_key.#" , "1" ),
178- resource .TestCheckResourceAttrSet (resourceName , "macsec_properties.0.primary_key.0.connectivity_association_key_secret_id" ),
179- resource .TestCheckResourceAttrSet (resourceName , "macsec_properties.0.primary_key.0.connectivity_association_name_secret_id" ),
208+ resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.primary_key.0.connectivity_association_key_secret_id" , secretIdCAK ),
209+ resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.primary_key.0.connectivity_association_name_secret_id" , secretIdCKN ),
210+ resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.primary_key.0.connectivity_association_key_secret_version" , secretVersionCAK ),
211+ resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.primary_key.0.connectivity_association_name_secret_version" , secretVersionCKN ),
180212 resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.state" , "ENABLED" ),
181213 resource .TestCheckResourceAttr (resourceName , "port_speed_shape_name" , "10 Gbps" ),
182214
@@ -190,7 +222,7 @@ func TestCoreCrossConnectResource_basic(t *testing.T) {
190222 ),
191223 },
192224
193- // verify updates to updatable parameters
225+ // verify updates to updatable parameters // Step:5
194226 {
195227 Config : config + compartmentIdVariableStr + CoreCrossConnectResourceDependencies + secretIdVariableStrCKN + secretIdVariableStrCAK + secretVersionStrCAK + secretVersionStrCKN +
196228 acctest .GenerateResourceFromRepresentationMap ("oci_core_cross_connect" , "test_cross_connect" , acctest .Optional , acctest .Update , CoreCrossConnectRepresentation ),
@@ -204,8 +236,10 @@ func TestCoreCrossConnectResource_basic(t *testing.T) {
204236 resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.encryption_cipher" , "AES256_GCM_XPN" ),
205237 resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.is_unprotected_traffic_allowed" , "true" ),
206238 resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.primary_key.#" , "1" ),
207- resource .TestCheckResourceAttrSet (resourceName , "macsec_properties.0.primary_key.0.connectivity_association_key_secret_id" ),
208- resource .TestCheckResourceAttrSet (resourceName , "macsec_properties.0.primary_key.0.connectivity_association_name_secret_id" ),
239+ resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.primary_key.0.connectivity_association_key_secret_id" , secretIdCAK ),
240+ resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.primary_key.0.connectivity_association_name_secret_id" , secretIdCKN ),
241+ resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.primary_key.0.connectivity_association_key_secret_version" , secretVersionCAK ),
242+ resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.primary_key.0.connectivity_association_name_secret_version" , secretVersionCKN ),
209243 resource .TestCheckResourceAttr (resourceName , "macsec_properties.0.state" , "ENABLED" ),
210244 resource .TestCheckResourceAttr (resourceName , "port_speed_shape_name" , "10 Gbps" ),
211245 resource .TestCheckResourceAttr (resourceName , "state" , "PROVISIONED" ),
@@ -219,11 +253,11 @@ func TestCoreCrossConnectResource_basic(t *testing.T) {
219253 },
220254 ),
221255 },
222- // verify datasource
256+ // verify datasource // Step:6
223257 {
224258 Config : config +
225259 acctest .GenerateDataSourceFromRepresentationMap ("oci_core_cross_connects" , "test_cross_connects" , acctest .Optional , acctest .Update , CoreCoreCrossConnectDataSourceRepresentation ) +
226- compartmentIdVariableStr + CoreCrossConnectResourceDependencies + secretIdVariableStrCKN + secretIdVariableStrCAK + secretVersionStrCAK + secretVersionStrCKN +
260+ compartmentIdVariableStr + CoreCrossConnectResourceDependencies + secretIdVariableStrCKN + secretIdVariableStrCAK + secretVersionStrCKN + secretVersionStrCAK +
227261 acctest .GenerateResourceFromRepresentationMap ("oci_core_cross_connect" , "test_cross_connect" , acctest .Optional , acctest .Update , CoreCrossConnectRepresentation ),
228262 Check : acctest .ComposeAggregateTestCheckFuncWrapper (
229263 resource .TestCheckResourceAttr (datasourceName , "compartment_id" , compartmentId ),
@@ -240,10 +274,10 @@ func TestCoreCrossConnectResource_basic(t *testing.T) {
240274 resource .TestCheckResourceAttr (datasourceName , "cross_connects.0.macsec_properties.0.encryption_cipher" , "AES256_GCM_XPN" ),
241275 resource .TestCheckResourceAttr (datasourceName , "cross_connects.0.macsec_properties.0.is_unprotected_traffic_allowed" , "true" ),
242276 resource .TestCheckResourceAttr (datasourceName , "cross_connects.0.macsec_properties.0.primary_key.#" , "1" ),
243- resource .TestCheckResourceAttrSet (datasourceName , "cross_connects.0.macsec_properties.0.primary_key.0.connectivity_association_key_secret_id" ),
244- resource .TestCheckResourceAttrSet (datasourceName , "cross_connects.0.macsec_properties.0.primary_key.0.connectivity_association_key_secret_version" ),
245- resource .TestCheckResourceAttrSet (datasourceName , "cross_connects.0.macsec_properties.0.primary_key.0.connectivity_association_name_secret_id" ),
246- resource .TestCheckResourceAttrSet (datasourceName , "cross_connects.0.macsec_properties.0.primary_key.0.connectivity_association_name_secret_version" ),
277+ resource .TestCheckResourceAttr (datasourceName , "cross_connects.0.macsec_properties.0.primary_key.0.connectivity_association_key_secret_id" , secretIdCAK ),
278+ resource .TestCheckResourceAttr (datasourceName , "cross_connects.0.macsec_properties.0.primary_key.0.connectivity_association_key_secret_version" , secretVersionCAK ),
279+ resource .TestCheckResourceAttr (datasourceName , "cross_connects.0.macsec_properties.0.primary_key.0.connectivity_association_name_secret_id" , secretIdCKN ),
280+ resource .TestCheckResourceAttr (datasourceName , "cross_connects.0.macsec_properties.0.primary_key.0.connectivity_association_name_secret_version" , secretVersionCKN ),
247281 resource .TestCheckResourceAttrSet (datasourceName , "cross_connects.0.oci_logical_device_name" ),
248282 resource .TestCheckResourceAttrSet (datasourceName , "cross_connects.0.oci_physical_device_name" ),
249283 resource .TestCheckResourceAttr (datasourceName , "cross_connects.0.macsec_properties.0.state" , "ENABLED" ),
@@ -254,11 +288,11 @@ func TestCoreCrossConnectResource_basic(t *testing.T) {
254288 resource .TestCheckResourceAttr (datasourceName , "cross_connects.0.state" , "PROVISIONED" ),
255289 ),
256290 },
257- // verify singular datasource
291+ // verify singular datasource // Step:7
258292 {
259293 Config : config +
260294 acctest .GenerateDataSourceFromRepresentationMap ("oci_core_cross_connect" , "test_cross_connect" , acctest .Required , acctest .Create , CoreCoreCrossConnectSingularDataSourceRepresentation ) +
261- compartmentIdVariableStr + CoreCrossConnectResourceConfig + secretIdVariableStrCKN + secretIdVariableStrCAK + secretVersionStrCAK + secretVersionStrCKN ,
295+ compartmentIdVariableStr + CoreCrossConnectResourceConfig + secretIdVariableStrCKN + secretIdVariableStrCAK + secretVersionStrCKN + secretVersionStrCAK ,
262296 Check : acctest .ComposeAggregateTestCheckFuncWrapper (
263297 resource .TestCheckResourceAttrSet (singularDatasourceName , "cross_connect_id" ),
264298
@@ -272,8 +306,10 @@ func TestCoreCrossConnectResource_basic(t *testing.T) {
272306 resource .TestCheckResourceAttr (singularDatasourceName , "macsec_properties.0.encryption_cipher" , "AES256_GCM_XPN" ),
273307 resource .TestCheckResourceAttr (singularDatasourceName , "macsec_properties.0.is_unprotected_traffic_allowed" , "true" ),
274308 resource .TestCheckResourceAttr (singularDatasourceName , "macsec_properties.0.primary_key.#" , "1" ),
275- resource .TestCheckResourceAttrSet (singularDatasourceName , "macsec_properties.0.primary_key.0.connectivity_association_key_secret_version" ),
276- resource .TestCheckResourceAttrSet (singularDatasourceName , "macsec_properties.0.primary_key.0.connectivity_association_name_secret_version" ),
309+ resource .TestCheckResourceAttr (singularDatasourceName , "macsec_properties.0.primary_key.0.connectivity_association_key_secret_id" , secretIdCAK ),
310+ resource .TestCheckResourceAttr (singularDatasourceName , "macsec_properties.0.primary_key.0.connectivity_association_name_secret_id" , secretIdCKN ),
311+ resource .TestCheckResourceAttr (singularDatasourceName , "macsec_properties.0.primary_key.0.connectivity_association_key_secret_version" , secretVersionCAK ),
312+ resource .TestCheckResourceAttr (singularDatasourceName , "macsec_properties.0.primary_key.0.connectivity_association_name_secret_version" , secretVersionCKN ),
277313 resource .TestCheckResourceAttrSet (singularDatasourceName , "oci_logical_device_name" ),
278314 resource .TestCheckResourceAttrSet (singularDatasourceName , "oci_physical_device_name" ),
279315 resource .TestCheckResourceAttr (singularDatasourceName , "macsec_properties.0.state" , "ENABLED" ),
@@ -284,7 +320,7 @@ func TestCoreCrossConnectResource_basic(t *testing.T) {
284320 resource .TestCheckResourceAttrSet (singularDatasourceName , "time_created" ),
285321 ),
286322 },
287- // verify resource import
323+ // verify resource import // Step:8
288324 // import requires full configuration to handle cross connect dependency on cross connect Group during destroy
289325 {
290326 Config : config + CoreCrossConnectRequiredOnlyResource ,
0 commit comments