@@ -217,7 +217,7 @@ func TestAccRDSCluster_allowMajorVersionUpgrade(t *testing.T) {
217
217
CheckDestroy : testAccCheckClusterDestroy (ctx ),
218
218
Steps : []resource.TestStep {
219
219
{
220
- Config : testAccClusterConfig_allowMajorVersionUpgrade (rName , true , engine , engineVersion1 ),
220
+ Config : testAccClusterConfig_allowMajorVersionUpgrade (rName , true , engine , engineVersion1 , true ),
221
221
Check : resource .ComposeTestCheckFunc (
222
222
testAccCheckClusterExists (ctx , resourceName , & dbCluster1 ),
223
223
resource .TestCheckResourceAttr (resourceName , "allow_major_version_upgrade" , "true" ),
@@ -240,7 +240,65 @@ func TestAccRDSCluster_allowMajorVersionUpgrade(t *testing.T) {
240
240
},
241
241
},
242
242
{
243
- Config : testAccClusterConfig_allowMajorVersionUpgrade (rName , true , engine , engineVersion2 ),
243
+ Config : testAccClusterConfig_allowMajorVersionUpgrade (rName , true , engine , engineVersion2 , true ),
244
+ Check : resource .ComposeTestCheckFunc (
245
+ testAccCheckClusterExists (ctx , resourceName , & dbCluster2 ),
246
+ resource .TestCheckResourceAttr (resourceName , "allow_major_version_upgrade" , "true" ),
247
+ resource .TestCheckResourceAttr (resourceName , "engine" , engine ),
248
+ resource .TestCheckResourceAttr (resourceName , "engine_version" , engineVersion2 ),
249
+ ),
250
+ },
251
+ },
252
+ })
253
+ }
254
+
255
+ func TestAccRDSCluster_allowMajorVersionUpgradeNoApplyImmediately (t * testing.T ) {
256
+ ctx := acctest .Context (t )
257
+ if testing .Short () {
258
+ t .Skip ("skipping long-running test in short mode" )
259
+ }
260
+
261
+ var dbCluster1 , dbCluster2 rds.DBCluster
262
+ rName := sdkacctest .RandomWithPrefix (acctest .ResourcePrefix )
263
+ resourceName := "aws_rds_cluster.test"
264
+ // If these hardcoded versions become a maintenance burden, use DescribeDBEngineVersions
265
+ // either by having a new data source created or implementing the testing similar
266
+ // to TestAccDMSReplicationInstance_engineVersion
267
+ engine := "aurora-postgresql"
268
+ engineVersion1 := "12.9"
269
+ engineVersion2 := "13.5"
270
+
271
+ resource .ParallelTest (t , resource.TestCase {
272
+ PreCheck : func () { acctest .PreCheck (ctx , t ) },
273
+ ErrorCheck : acctest .ErrorCheck (t , rds .EndpointsID ),
274
+ ProtoV5ProviderFactories : acctest .ProtoV5ProviderFactories ,
275
+ CheckDestroy : testAccCheckClusterDestroy (ctx ),
276
+ Steps : []resource.TestStep {
277
+ {
278
+ Config : testAccClusterConfig_allowMajorVersionUpgrade (rName , true , engine , engineVersion1 , false ),
279
+ Check : resource .ComposeTestCheckFunc (
280
+ testAccCheckClusterExists (ctx , resourceName , & dbCluster1 ),
281
+ resource .TestCheckResourceAttr (resourceName , "allow_major_version_upgrade" , "true" ),
282
+ resource .TestCheckResourceAttr (resourceName , "engine" , engine ),
283
+ resource .TestCheckResourceAttr (resourceName , "engine_version" , engineVersion1 ),
284
+ ),
285
+ },
286
+ {
287
+ ResourceName : resourceName ,
288
+ ImportState : true ,
289
+ ImportStateVerify : true ,
290
+ ImportStateVerifyIgnore : []string {
291
+ "allow_major_version_upgrade" ,
292
+ "apply_immediately" ,
293
+ "cluster_identifier_prefix" ,
294
+ "db_instance_parameter_group_name" ,
295
+ "enable_global_write_forwarding" ,
296
+ "master_password" ,
297
+ "skip_final_snapshot" ,
298
+ },
299
+ },
300
+ {
301
+ Config : testAccClusterConfig_allowMajorVersionUpgrade (rName , true , engine , engineVersion2 , false ),
244
302
Check : resource .ComposeTestCheckFunc (
245
303
testAccCheckClusterExists (ctx , resourceName , & dbCluster2 ),
246
304
resource .TestCheckResourceAttr (resourceName , "allow_major_version_upgrade" , "true" ),
@@ -2599,11 +2657,11 @@ resource "aws_rds_cluster" "test" {
2599
2657
` , identifierPrefix )
2600
2658
}
2601
2659
2602
- func testAccClusterConfig_allowMajorVersionUpgrade (rName string , allowMajorVersionUpgrade bool , engine string , engineVersion string ) string {
2660
+ func testAccClusterConfig_allowMajorVersionUpgrade (rName string , allowMajorVersionUpgrade bool , engine string , engineVersion string , applyImmediately bool ) string {
2603
2661
return fmt .Sprintf (`
2604
2662
resource "aws_rds_cluster" "test" {
2605
2663
allow_major_version_upgrade = %[1]t
2606
- apply_immediately = true
2664
+ apply_immediately = %[5]t
2607
2665
cluster_identifier = %[2]q
2608
2666
engine = %[3]q
2609
2667
engine_version = %[4]q
@@ -2620,6 +2678,7 @@ data "aws_rds_orderable_db_instance" "test" {
2620
2678
2621
2679
# Upgrading requires a healthy primary instance
2622
2680
resource "aws_rds_cluster_instance" "test" {
2681
+ apply_immediately = %[5]t
2623
2682
cluster_identifier = aws_rds_cluster.test.id
2624
2683
engine = data.aws_rds_orderable_db_instance.test.engine
2625
2684
engine_version = data.aws_rds_orderable_db_instance.test.engine_version
@@ -2630,7 +2689,7 @@ resource "aws_rds_cluster_instance" "test" {
2630
2689
ignore_changes = [engine_version]
2631
2690
}
2632
2691
}
2633
- ` , allowMajorVersionUpgrade , rName , engine , engineVersion )
2692
+ ` , allowMajorVersionUpgrade , rName , engine , engineVersion , applyImmediately )
2634
2693
}
2635
2694
2636
2695
func testAccClusterConfig_allowMajorVersionUpgradeCustomParameters (rName string , allowMajorVersionUpgrade bool , engine string , engineVersion string , applyImmediate bool ) string {
0 commit comments