Skip to content

Commit 540bada

Browse files
committed
Add 'TestAccKinesisAnalyticsV2Application_FlinkApplication_updateRestorable' (#42387).
1 parent e5df7d1 commit 540bada

File tree

1 file changed

+282
-0
lines changed

1 file changed

+282
-0
lines changed

internal/service/kinesisanalyticsv2/application_test.go

Lines changed: 282 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1317,6 +1317,126 @@ func TestAccKinesisAnalyticsV2Application_FlinkApplication_snapshotToggleWhenSki
13171317
})
13181318
}
13191319

1320+
func TestAccKinesisAnalyticsV2Application_FlinkApplication_updateRestorable(t *testing.T) {
1321+
ctx := acctest.Context(t)
1322+
var v awstypes.ApplicationDetail
1323+
resourceName := "aws_kinesisanalyticsv2_application.test"
1324+
iamRoleResourceName := "aws_iam_role.test.0"
1325+
s3BucketResourceName := "aws_s3_bucket.test"
1326+
s3Object1ResourceName := "aws_s3_object.test.0"
1327+
s3Object2ResourceName := "aws_s3_object.test.1"
1328+
rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)
1329+
1330+
resource.ParallelTest(t, resource.TestCase{
1331+
PreCheck: func() { acctest.PreCheck(ctx, t); testAccPreCheck(ctx, t) },
1332+
ErrorCheck: acctest.ErrorCheck(t, names.KinesisAnalyticsV2ServiceID),
1333+
ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories,
1334+
CheckDestroy: testAccCheckApplicationDestroy(ctx),
1335+
Steps: []resource.TestStep{
1336+
{
1337+
Config: testAccApplicationConfig_startRestorableSnapshotFlink(rName),
1338+
Check: resource.ComposeTestCheckFunc(
1339+
testAccCheckApplicationExists(ctx, resourceName, &v),
1340+
resource.TestCheckResourceAttr(resourceName, "application_configuration.#", "1"),
1341+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.application_code_configuration.#", "1"),
1342+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.application_code_configuration.0.code_content.#", "1"),
1343+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.application_code_configuration.0.code_content.0.s3_content_location.#", "1"),
1344+
resource.TestCheckResourceAttrPair(resourceName, "application_configuration.0.application_code_configuration.0.code_content.0.s3_content_location.0.bucket_arn", s3BucketResourceName, names.AttrARN),
1345+
resource.TestCheckResourceAttrPair(resourceName, "application_configuration.0.application_code_configuration.0.code_content.0.s3_content_location.0.file_key", s3Object1ResourceName, names.AttrKey),
1346+
resource.TestCheckResourceAttrPair(resourceName, "application_configuration.0.application_code_configuration.0.code_content.0.s3_content_location.0.object_version", s3Object1ResourceName, "version_id"),
1347+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.application_code_configuration.0.code_content_type", "ZIPFILE"),
1348+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.application_snapshot_configuration.#", "1"),
1349+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.application_snapshot_configuration.0.snapshots_enabled", acctest.CtTrue),
1350+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.environment_properties.#", "1"),
1351+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.#", "1"),
1352+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.checkpoint_configuration.#", "1"),
1353+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.checkpoint_configuration.0.checkpointing_enabled", acctest.CtTrue),
1354+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.checkpoint_configuration.0.checkpoint_interval", "60000"),
1355+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.checkpoint_configuration.0.configuration_type", "DEFAULT"),
1356+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.checkpoint_configuration.0.min_pause_between_checkpoints", "5000"),
1357+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.monitoring_configuration.#", "1"),
1358+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.monitoring_configuration.0.configuration_type", "CUSTOM"),
1359+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.monitoring_configuration.0.log_level", "DEBUG"),
1360+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.monitoring_configuration.0.metrics_level", "TASK"),
1361+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.parallelism_configuration.#", "1"),
1362+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.parallelism_configuration.0.auto_scaling_enabled", acctest.CtTrue),
1363+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.parallelism_configuration.0.configuration_type", "CUSTOM"),
1364+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.parallelism_configuration.0.parallelism", "10"),
1365+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.parallelism_configuration.0.parallelism_per_kpu", "4"),
1366+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.run_configuration.0.application_restore_configuration.#", "1"),
1367+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.run_configuration.0.application_restore_configuration.0.application_restore_type", "RESTORE_FROM_LATEST_SNAPSHOT"),
1368+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.run_configuration.0.flink_run_configuration.#", "1"),
1369+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.run_configuration.0.flink_run_configuration.0.allow_non_restored_state", acctest.CtTrue),
1370+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.sql_application_configuration.#", "0"),
1371+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.vpc_configuration.#", "0"),
1372+
acctest.CheckResourceAttrRegionalARN(ctx, resourceName, names.AttrARN, "kinesisanalytics", fmt.Sprintf("application/%s", rName)),
1373+
resource.TestCheckResourceAttr(resourceName, "cloudwatch_logging_options.#", "0"),
1374+
resource.TestCheckResourceAttrSet(resourceName, "create_timestamp"),
1375+
resource.TestCheckResourceAttr(resourceName, names.AttrDescription, ""),
1376+
resource.TestCheckNoResourceAttr(resourceName, "force_stop"),
1377+
resource.TestCheckResourceAttrSet(resourceName, "last_update_timestamp"),
1378+
resource.TestCheckResourceAttr(resourceName, names.AttrName, rName),
1379+
resource.TestCheckResourceAttr(resourceName, "runtime_environment", "FLINK-1_20"),
1380+
resource.TestCheckResourceAttrPair(resourceName, "service_execution_role", iamRoleResourceName, names.AttrARN),
1381+
resource.TestCheckResourceAttr(resourceName, names.AttrStatus, "RUNNING"),
1382+
resource.TestCheckResourceAttr(resourceName, acctest.CtTagsPercent, "0"),
1383+
resource.TestCheckResourceAttr(resourceName, "version_id", "1"),
1384+
),
1385+
},
1386+
{
1387+
Config: testAccApplicationConfig_startUpdatedRestorableSnapshotFlink(rName),
1388+
Check: resource.ComposeTestCheckFunc(
1389+
testAccCheckApplicationExists(ctx, resourceName, &v),
1390+
resource.TestCheckResourceAttr(resourceName, "application_configuration.#", "1"),
1391+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.application_code_configuration.#", "1"),
1392+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.application_code_configuration.0.code_content.#", "1"),
1393+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.application_code_configuration.0.code_content.0.s3_content_location.#", "1"),
1394+
resource.TestCheckResourceAttrPair(resourceName, "application_configuration.0.application_code_configuration.0.code_content.0.s3_content_location.0.bucket_arn", s3BucketResourceName, names.AttrARN),
1395+
resource.TestCheckResourceAttrPair(resourceName, "application_configuration.0.application_code_configuration.0.code_content.0.s3_content_location.0.file_key", s3Object2ResourceName, names.AttrKey),
1396+
resource.TestCheckResourceAttrPair(resourceName, "application_configuration.0.application_code_configuration.0.code_content.0.s3_content_location.0.object_version", s3Object2ResourceName, "version_id"),
1397+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.application_code_configuration.0.code_content_type", "ZIPFILE"),
1398+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.application_snapshot_configuration.#", "1"),
1399+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.application_snapshot_configuration.0.snapshots_enabled", acctest.CtTrue),
1400+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.environment_properties.#", "1"),
1401+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.#", "1"),
1402+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.checkpoint_configuration.#", "1"),
1403+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.checkpoint_configuration.0.checkpointing_enabled", acctest.CtTrue),
1404+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.checkpoint_configuration.0.checkpoint_interval", "60000"),
1405+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.checkpoint_configuration.0.configuration_type", "DEFAULT"),
1406+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.checkpoint_configuration.0.min_pause_between_checkpoints", "5000"),
1407+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.monitoring_configuration.#", "1"),
1408+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.monitoring_configuration.0.configuration_type", "CUSTOM"),
1409+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.monitoring_configuration.0.log_level", "DEBUG"),
1410+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.monitoring_configuration.0.metrics_level", "TASK"),
1411+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.parallelism_configuration.#", "1"),
1412+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.parallelism_configuration.0.auto_scaling_enabled", acctest.CtTrue),
1413+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.parallelism_configuration.0.configuration_type", "CUSTOM"),
1414+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.parallelism_configuration.0.parallelism", "10"),
1415+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.flink_application_configuration.0.parallelism_configuration.0.parallelism_per_kpu", "4"),
1416+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.run_configuration.0.application_restore_configuration.#", "1"),
1417+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.run_configuration.0.application_restore_configuration.0.application_restore_type", "RESTORE_FROM_LATEST_SNAPSHOT"),
1418+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.run_configuration.0.flink_run_configuration.#", "1"),
1419+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.run_configuration.0.flink_run_configuration.0.allow_non_restored_state", acctest.CtTrue),
1420+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.sql_application_configuration.#", "0"),
1421+
resource.TestCheckResourceAttr(resourceName, "application_configuration.0.vpc_configuration.#", "0"),
1422+
acctest.CheckResourceAttrRegionalARN(ctx, resourceName, names.AttrARN, "kinesisanalytics", fmt.Sprintf("application/%s", rName)),
1423+
resource.TestCheckResourceAttr(resourceName, "cloudwatch_logging_options.#", "0"),
1424+
resource.TestCheckResourceAttrSet(resourceName, "create_timestamp"),
1425+
resource.TestCheckResourceAttr(resourceName, names.AttrDescription, ""),
1426+
resource.TestCheckNoResourceAttr(resourceName, "force_stop"),
1427+
resource.TestCheckResourceAttrSet(resourceName, "last_update_timestamp"),
1428+
resource.TestCheckResourceAttr(resourceName, names.AttrName, rName),
1429+
resource.TestCheckResourceAttr(resourceName, "runtime_environment", "FLINK-1_20"),
1430+
resource.TestCheckResourceAttrPair(resourceName, "service_execution_role", iamRoleResourceName, names.AttrARN),
1431+
resource.TestCheckResourceAttr(resourceName, names.AttrStatus, "RUNNING"),
1432+
resource.TestCheckResourceAttr(resourceName, acctest.CtTagsPercent, "0"),
1433+
resource.TestCheckResourceAttr(resourceName, "version_id", "2"),
1434+
),
1435+
},
1436+
},
1437+
})
1438+
}
1439+
13201440
func TestAccKinesisAnalyticsV2Application_FlinkApplicationStartApplication_onCreate(t *testing.T) {
13211441
ctx := acctest.Context(t)
13221442
var v awstypes.ApplicationDetail
@@ -5875,3 +5995,165 @@ resource "aws_kinesisanalyticsv2_application" "test" {
58755995
}
58765996
`, rName, snapshotsEnabled))
58775997
}
5998+
5999+
func testAccApplicationConfig_startRestorableSnapshotFlink(rName string) string {
6000+
return acctest.ConfigCompose(
6001+
testAccApplicationConfig_baseServiceExecutionIAMRole(rName),
6002+
testAccApplicationConfig_baseFlinkApplication(rName),
6003+
fmt.Sprintf(`
6004+
resource "aws_kinesisanalyticsv2_application" "test" {
6005+
name = %[1]q
6006+
runtime_environment = "FLINK-1_20"
6007+
service_execution_role = aws_iam_role.test[0].arn
6008+
6009+
application_configuration {
6010+
application_code_configuration {
6011+
code_content {
6012+
s3_content_location {
6013+
bucket_arn = aws_s3_bucket.test.arn
6014+
file_key = aws_s3_object.test[0].key
6015+
object_version = aws_s3_object.test[0].version_id
6016+
}
6017+
}
6018+
6019+
code_content_type = "ZIPFILE"
6020+
}
6021+
6022+
application_snapshot_configuration {
6023+
snapshots_enabled = true
6024+
}
6025+
6026+
environment_properties {
6027+
property_group {
6028+
property_group_id = "InputStream0"
6029+
6030+
property_map = {
6031+
"aws.region" = data.aws_region.current.name
6032+
"stream.name" = aws_kinesis_stream.input.name
6033+
}
6034+
}
6035+
6036+
property_group {
6037+
property_group_id = "OutputStream0"
6038+
6039+
property_map = {
6040+
"aws.region" = data.aws_region.current.name
6041+
"stream.name" = aws_kinesis_stream.output.name
6042+
}
6043+
}
6044+
}
6045+
6046+
flink_application_configuration {
6047+
checkpoint_configuration {
6048+
configuration_type = "DEFAULT"
6049+
}
6050+
6051+
monitoring_configuration {
6052+
configuration_type = "CUSTOM"
6053+
log_level = "DEBUG"
6054+
metrics_level = "TASK"
6055+
}
6056+
6057+
parallelism_configuration {
6058+
auto_scaling_enabled = true
6059+
configuration_type = "CUSTOM"
6060+
parallelism = 10
6061+
parallelism_per_kpu = 4
6062+
}
6063+
}
6064+
6065+
run_configuration {
6066+
application_restore_configuration {
6067+
application_restore_type = "RESTORE_FROM_LATEST_SNAPSHOT"
6068+
}
6069+
flink_run_configuration {
6070+
allow_non_restored_state = true
6071+
}
6072+
}
6073+
}
6074+
6075+
start_application = true
6076+
}
6077+
`, rName))
6078+
}
6079+
6080+
func testAccApplicationConfig_startUpdatedRestorableSnapshotFlink(rName string) string {
6081+
return acctest.ConfigCompose(
6082+
testAccApplicationConfig_baseServiceExecutionIAMRole(rName),
6083+
testAccApplicationConfig_baseFlinkApplication(rName),
6084+
fmt.Sprintf(`
6085+
resource "aws_kinesisanalyticsv2_application" "test" {
6086+
name = %[1]q
6087+
runtime_environment = "FLINK-1_20"
6088+
service_execution_role = aws_iam_role.test[0].arn
6089+
6090+
application_configuration {
6091+
application_code_configuration {
6092+
code_content {
6093+
s3_content_location {
6094+
bucket_arn = aws_s3_bucket.test.arn
6095+
file_key = aws_s3_object.test[1].key
6096+
object_version = aws_s3_object.test[1].version_id
6097+
}
6098+
}
6099+
6100+
code_content_type = "ZIPFILE"
6101+
}
6102+
6103+
application_snapshot_configuration {
6104+
snapshots_enabled = true
6105+
}
6106+
6107+
environment_properties {
6108+
property_group {
6109+
property_group_id = "InputStream0"
6110+
6111+
property_map = {
6112+
"aws.region" = data.aws_region.current.name
6113+
"stream.name" = aws_kinesis_stream.input.name
6114+
}
6115+
}
6116+
6117+
property_group {
6118+
property_group_id = "OutputStream0"
6119+
6120+
property_map = {
6121+
"aws.region" = data.aws_region.current.name
6122+
"stream.name" = aws_kinesis_stream.output.name
6123+
}
6124+
}
6125+
}
6126+
6127+
flink_application_configuration {
6128+
checkpoint_configuration {
6129+
configuration_type = "DEFAULT"
6130+
}
6131+
6132+
monitoring_configuration {
6133+
configuration_type = "CUSTOM"
6134+
log_level = "DEBUG"
6135+
metrics_level = "TASK"
6136+
}
6137+
6138+
parallelism_configuration {
6139+
auto_scaling_enabled = true
6140+
configuration_type = "CUSTOM"
6141+
parallelism = 10
6142+
parallelism_per_kpu = 4
6143+
}
6144+
}
6145+
6146+
run_configuration {
6147+
application_restore_configuration {
6148+
application_restore_type = "RESTORE_FROM_LATEST_SNAPSHOT"
6149+
}
6150+
flink_run_configuration {
6151+
allow_non_restored_state = true
6152+
}
6153+
}
6154+
}
6155+
6156+
start_application = true
6157+
}
6158+
`, rName))
6159+
}

0 commit comments

Comments
 (0)