@@ -2602,6 +2602,137 @@ func (s *ResourceCoreInstanceTestSuite) TestAccResourceCoreInstance_launchOption
26022602 })
26032603}
26042604
2605+ func TestResourceCoreInstance_UpdateSecurityAttributes (t * testing.T ) {
2606+ httpreplay .SetScenario ("TestAccResourceCoreInstance_securityAttributes" )
2607+ defer httpreplay .SaveScenario ()
2608+
2609+ instanceName := "t"
2610+ instanceResourceKey := "oci_core_instance." + instanceName
2611+
2612+ subnetConfig := acctest .GenerateResourceFromRepresentationMap ("oci_core_subnet" , "test_subnet" ,
2613+ acctest .Required , acctest .Create , acctest .RepresentationCopyWithNewProperties (CoreSubnetRepresentation ,
2614+ map [string ]interface {}{
2615+ "dns_label" : acctest.Representation {RepType : acctest .Required , Create : "dnslabel" },
2616+ }))
2617+ vcnConfig := acctest .GenerateResourceFromRepresentationMap ("oci_core_vcn" , "test_vcn" ,
2618+ acctest .Required , acctest .Create , acctest .RepresentationCopyWithNewProperties (CoreVcnRepresentation ,
2619+ map [string ]interface {}{
2620+ "dns_label" : acctest.Representation {RepType : acctest .Required , Create : "dnslabel" },
2621+ }))
2622+ AvailabilityDomainConfig := AvailabilityDomainConfig
2623+ imageConfig := utils .OciImageIdsVariable
2624+ instanceCreateConfig := acctest .GenerateResourceFromRepresentationMap ("oci_core_instance" , instanceName ,
2625+ acctest .Required , acctest .Create , CoreInstanceRepresentation )
2626+
2627+ securityAttributesInstanceConfig := acctest .GenerateResourceFromRepresentationMap ("oci_core_instance" ,
2628+ instanceName , acctest .Required , acctest .Create ,
2629+ acctest .RepresentationCopyWithNewProperties (CoreInstanceRepresentation , map [string ]interface {}{
2630+ "security_attributes" : acctest.Representation {RepType : acctest .Required , Create : map [string ]string {
2631+ "oracle-zpr.sensitivity.value" : "low" ,
2632+ "oracle-zpr.sensitivity.mode" : "enforce" ,
2633+ }},
2634+ }))
2635+ changedSecurityAttributesConfig := acctest .GenerateResourceFromRepresentationMap ("oci_core_instance" ,
2636+ instanceName , acctest .Required , acctest .Create ,
2637+ acctest .RepresentationCopyWithNewProperties (CoreInstanceRepresentation , map [string ]interface {}{
2638+ "security_attributes" : acctest.Representation {RepType : acctest .Required , Create : map [string ]string {
2639+ "oracle-zpr.sensitivity.value" : "medium" ,
2640+ "oracle-zpr.sensitivity.mode" : "enforce" ,
2641+ }},
2642+ }))
2643+ deletedSecurityAttributesConfig := acctest .GenerateResourceFromRepresentationMap ("oci_core_instance" ,
2644+ instanceName , acctest .Required , acctest .Create ,
2645+ acctest .RepresentationCopyWithNewProperties (CoreInstanceRepresentation , map [string ]interface {}{
2646+ "security_attributes" : acctest.Representation {RepType : acctest .Required , Create : map [string ]string {}},
2647+ }))
2648+ securityAttributesTimeoutConfig := acctest .GenerateResourceFromRepresentationMap ("oci_core_instance" ,
2649+ instanceName , acctest .Required , acctest .Create ,
2650+ acctest .RepresentationCopyWithNewProperties (CoreInstanceRepresentation , map [string ]interface {}{
2651+ "security_attributes" : acctest.Representation {RepType : acctest .Required , Create : map [string ]string {
2652+ "oracle-zpr.sensitivity.value" : "low" ,
2653+ "oracle-zpr.sensitivity.mode" : "enforce" ,
2654+ }},
2655+ "timeouts" : acctest.RepresentationGroup {RepType : acctest .Required , Group : map [string ]interface {}{
2656+ "update" : acctest.Representation {RepType : acctest .Required , Create : "1s" },
2657+ }},
2658+ }))
2659+
2660+ config := acctest .LegacyTestProviderConfig () + AvailabilityDomainConfig + imageConfig + subnetConfig + vcnConfig
2661+
2662+ var instanceId string
2663+ resource .Test (t , resource.TestCase {
2664+ Providers : map [string ]* schema.Provider {
2665+ "oci" : acctest .TestAccProvider ,
2666+ },
2667+ CheckDestroy : testAccCheckCoreInstanceDestroy ,
2668+ Steps : []resource.TestStep {
2669+ { // Create an instance
2670+ Config : config + instanceCreateConfig ,
2671+ Check : acctest .ComposeAggregateTestCheckFuncWrapper (
2672+ func (s * terraform.State ) (err error ) {
2673+ instanceId , err = acctest .FromInstanceState (s , instanceResourceKey , "id" )
2674+ return err
2675+ },
2676+ ),
2677+ },
2678+ { // Verify add security_attributes
2679+ Config : config + securityAttributesInstanceConfig ,
2680+ Check : acctest .ComposeAggregateTestCheckFuncWrapper (
2681+ resource .TestCheckResourceAttr (instanceResourceKey , "security_attributes.%" , "2" ),
2682+ resource .TestCheckResourceAttr (instanceResourceKey , "security_attributes.oracle-zpr.sensitivity.value" , "low" ),
2683+ resource .TestCheckResourceAttr (instanceResourceKey , "security_attributes.oracle-zpr.sensitivity.mode" , "enforce" ),
2684+ func (ts * terraform.State ) (err error ) {
2685+ newId , err := acctest .FromInstanceState (ts , instanceResourceKey , "id" )
2686+ if newId != instanceId {
2687+ return fmt .Errorf ("expected same instance ocid, got different" )
2688+ }
2689+ return err
2690+ },
2691+ ),
2692+ },
2693+ { // Verify change security_attributes
2694+ Config : config + changedSecurityAttributesConfig ,
2695+ Check : acctest .ComposeAggregateTestCheckFuncWrapper (
2696+ resource .TestCheckResourceAttr (instanceResourceKey , "security_attributes.%" , "2" ),
2697+ resource .TestCheckResourceAttr (instanceResourceKey , "security_attributes.oracle-zpr.sensitivity.value" , "medium" ),
2698+ resource .TestCheckResourceAttr (instanceResourceKey , "security_attributes.oracle-zpr.sensitivity.mode" , "enforce" ),
2699+ func (ts * terraform.State ) (err error ) {
2700+ newId , err := acctest .FromInstanceState (ts , instanceResourceKey , "id" )
2701+ if newId != instanceId {
2702+ return fmt .Errorf ("expected same instance ocid, got different" )
2703+ }
2704+ return err
2705+ },
2706+ ),
2707+ },
2708+ { // Verify remove security_attributes
2709+ Config : config + deletedSecurityAttributesConfig ,
2710+ Check : acctest .ComposeAggregateTestCheckFuncWrapper (
2711+ resource .TestCheckResourceAttr (instanceResourceKey , "security_attributes.%" , "0" ),
2712+ func (ts * terraform.State ) (err error ) {
2713+ newId , err := acctest .FromInstanceState (ts , instanceResourceKey , "id" )
2714+ if newId != instanceId {
2715+ return fmt .Errorf ("expected same instance ocid, got different" )
2716+ }
2717+ return err
2718+ },
2719+ ),
2720+ },
2721+ { // Verify update timeout
2722+ Config : config + securityAttributesTimeoutConfig ,
2723+ Check : func (ts * terraform.State ) (err error ) {
2724+ newId , err := acctest .FromInstanceState (ts , instanceResourceKey , "id" )
2725+ if newId != instanceId {
2726+ return fmt .Errorf ("expected same instance ocid, got different" )
2727+ }
2728+ return err
2729+ },
2730+ ExpectError : regexp .MustCompile ("Timed out waiting for configuration to reach specified condition" ),
2731+ },
2732+ },
2733+ })
2734+ }
2735+
26052736// issue-routing-tag: core/computeSharedOwnershipVmAndBm
26062737func TestAccResourceCoreInstance_nvmeVMShape (t * testing.T ) {
26072738 httpreplay .SetScenario ("TestAccResourceCoreInstance_nvmeVMShape" )
0 commit comments