From 4d15219c08e3dc92b2aee42e81416a66006ce07a Mon Sep 17 00:00:00 2001 From: Lars Fronius Date: Wed, 5 Oct 2022 11:51:03 +0200 Subject: [PATCH 1/3] Updates ignore error code to reflect actual error code and gracefully handle the case when a log group policy is being deleted but already does not exist, because the cluster was shut down already. Observed behaviour: ResourceNotFoundException: Policy with name [ESLogPolicyc83ee46895a093e947614fc60b86c1a65d36a02321] does not exist. at Request.extractError (/tmp/node_modules/aws-sdk/lib/protocol/json.js:52:27) at Request.callListeners (/tmp/node_modules/aws-sdk/lib/sequential_executor.js:106:20) at Request.emit (/tmp/node_modules/aws-sdk/lib/sequential_executor.js:78:10) at Request.emit (/tmp/node_modules/aws-sdk/lib/request.js:686:14) at Request.transition (/tmp/node_modules/aws-sdk/lib/request.js:22:10) at AcceptorStateMachine.runTo (/tmp/node_modules/aws-sdk/lib/state_machine.js:14:12) at /tmp/node_modules/aws-sdk/lib/state_machine.js:26:10 at Request. (/tmp/node_modules/aws-sdk/lib/request.js:38:9) at Request. (/tmp/node_modules/aws-sdk/lib/request.js:688:12) at Request.callListeners (/tmp/node_modules/aws-sdk/lib/sequential_executor.js:116:18) { code: 'ResourceNotFoundException', time: 2022-10-04T16:28:57.966Z, requestId: '719a967b-bfea-435a-9aeb-ca8b67888e47', statusCode: 400, retryable: false, retryDelay: 38.982884472906434 } Responding { "Status": "FAILED", "Reason": "Policy with name [ESLogPolicyc83ee46895a093e947614fc60b86c1a65d36a02321] does not exist.", "PhysicalResourceId": "2022/10/04/[$LATEST]b282f3f11b1142c0afe77f0d62523288", "StackId": "arn:aws:cloudformation:eu-central-1:165893140444:stack/ReviewShippingEngineStage-review-feature-dcp-481-test-ShippingEngineSearchStack/06651720-40b5-11ed-887d-0a422088f326", "RequestId": "90891990-91c1-43bf-82e3-0d98832fc82c", "LogicalResourceId": "OpenSearchDomainESLogGroupPolicyc83ee46895a093e947614fc60b86c1a65d36a02321E1EA3F89", "NoEcho": false, "Data": {} } --- .../@aws-cdk/aws-elasticsearch/lib/log-group-resource-policy.ts | 2 +- .../aws-opensearchservice/lib/log-group-resource-policy.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/@aws-cdk/aws-elasticsearch/lib/log-group-resource-policy.ts b/packages/@aws-cdk/aws-elasticsearch/lib/log-group-resource-policy.ts index 0a88658e1cf42..0fd9c98464335 100644 --- a/packages/@aws-cdk/aws-elasticsearch/lib/log-group-resource-policy.ts +++ b/packages/@aws-cdk/aws-elasticsearch/lib/log-group-resource-policy.ts @@ -42,7 +42,7 @@ export class LogGroupResourcePolicy extends cr.AwsCustomResource { parameters: { policyName: props.policyName, }, - ignoreErrorCodesMatching: '400', + ignoreErrorCodesMatching: 'ResourceNotFoundException', }, policy: cr.AwsCustomResourcePolicy.fromSdkCalls({ resources: ['*'] }), }); diff --git a/packages/@aws-cdk/aws-opensearchservice/lib/log-group-resource-policy.ts b/packages/@aws-cdk/aws-opensearchservice/lib/log-group-resource-policy.ts index 0a88658e1cf42..0fd9c98464335 100644 --- a/packages/@aws-cdk/aws-opensearchservice/lib/log-group-resource-policy.ts +++ b/packages/@aws-cdk/aws-opensearchservice/lib/log-group-resource-policy.ts @@ -42,7 +42,7 @@ export class LogGroupResourcePolicy extends cr.AwsCustomResource { parameters: { policyName: props.policyName, }, - ignoreErrorCodesMatching: '400', + ignoreErrorCodesMatching: 'ResourceNotFoundException', }, policy: cr.AwsCustomResourcePolicy.fromSdkCalls({ resources: ['*'] }), }); From 2d0d85c835e227c7ab5f2832b71291b228a42842 Mon Sep 17 00:00:00 2001 From: Lars Fronius Date: Wed, 5 Oct 2022 12:06:09 +0200 Subject: [PATCH 2/3] updates unit tests --- .../cdk-integ-elasticsearch.template.json | 4 ++-- .../aws-elasticsearch/test/log-group-resource-policy.test.ts | 2 +- .../test/log-group-resource-policy.test.ts | 2 +- .../cdk-integ-opensearch.template.json | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/@aws-cdk/aws-elasticsearch/test/elasticsearch.integ.snapshot/cdk-integ-elasticsearch.template.json b/packages/@aws-cdk/aws-elasticsearch/test/elasticsearch.integ.snapshot/cdk-integ-elasticsearch.template.json index 1038c14f917e8..5c4ba1a3baf2c 100644 --- a/packages/@aws-cdk/aws-elasticsearch/test/elasticsearch.integ.snapshot/cdk-integ-elasticsearch.template.json +++ b/packages/@aws-cdk/aws-elasticsearch/test/elasticsearch.integ.snapshot/cdk-integ-elasticsearch.template.json @@ -69,7 +69,7 @@ ] ] }, - "Delete": "{\"service\":\"CloudWatchLogs\",\"action\":\"deleteResourcePolicy\",\"parameters\":{\"policyName\":\"ESLogPolicyc8858d5dba055f677469d76cb6ad538fd732ba69a6\"},\"ignoreErrorCodesMatching\":\"400\"}", + "Delete": "{\"service\":\"CloudWatchLogs\",\"action\":\"deleteResourcePolicy\",\"parameters\":{\"policyName\":\"ESLogPolicyc8858d5dba055f677469d76cb6ad538fd732ba69a6\"},\"ignoreErrorCodesMatching\":\"ResourceNotFoundException\"}", "InstallLatestAwsSdk": true }, "DependsOn": [ @@ -377,7 +377,7 @@ ] ] }, - "Delete": "{\"service\":\"CloudWatchLogs\",\"action\":\"deleteResourcePolicy\",\"parameters\":{\"policyName\":\"ESLogPolicyc8405238e455eeabd840cf6933e1814efc51d2de71\"},\"ignoreErrorCodesMatching\":\"400\"}", + "Delete": "{\"service\":\"CloudWatchLogs\",\"action\":\"deleteResourcePolicy\",\"parameters\":{\"policyName\":\"ESLogPolicyc8405238e455eeabd840cf6933e1814efc51d2de71\"},\"ignoreErrorCodesMatching\":\"ResourceNotFoundException\"}", "InstallLatestAwsSdk": true }, "DependsOn": [ diff --git a/packages/@aws-cdk/aws-elasticsearch/test/log-group-resource-policy.test.ts b/packages/@aws-cdk/aws-elasticsearch/test/log-group-resource-policy.test.ts index 815c0086d4a99..bbfa0c37a23c4 100644 --- a/packages/@aws-cdk/aws-elasticsearch/test/log-group-resource-policy.test.ts +++ b/packages/@aws-cdk/aws-elasticsearch/test/log-group-resource-policy.test.ts @@ -59,7 +59,7 @@ test('minimal example renders correctly', () => { parameters: { policyName: 'TestPolicy', }, - ignoreErrorCodesMatching: '400', + ignoreErrorCodesMatching: 'ResourceNotFoundException', }), }); }); diff --git a/packages/@aws-cdk/aws-opensearchservice/test/log-group-resource-policy.test.ts b/packages/@aws-cdk/aws-opensearchservice/test/log-group-resource-policy.test.ts index 815c0086d4a99..bbfa0c37a23c4 100644 --- a/packages/@aws-cdk/aws-opensearchservice/test/log-group-resource-policy.test.ts +++ b/packages/@aws-cdk/aws-opensearchservice/test/log-group-resource-policy.test.ts @@ -59,7 +59,7 @@ test('minimal example renders correctly', () => { parameters: { policyName: 'TestPolicy', }, - ignoreErrorCodesMatching: '400', + ignoreErrorCodesMatching: 'ResourceNotFoundException', }), }); }); diff --git a/packages/@aws-cdk/aws-opensearchservice/test/opensearch.integ.snapshot/cdk-integ-opensearch.template.json b/packages/@aws-cdk/aws-opensearchservice/test/opensearch.integ.snapshot/cdk-integ-opensearch.template.json index 0c2015f39b20b..eb098a4ac8330 100644 --- a/packages/@aws-cdk/aws-opensearchservice/test/opensearch.integ.snapshot/cdk-integ-opensearch.template.json +++ b/packages/@aws-cdk/aws-opensearchservice/test/opensearch.integ.snapshot/cdk-integ-opensearch.template.json @@ -69,7 +69,7 @@ ] ] }, - "Delete": "{\"service\":\"CloudWatchLogs\",\"action\":\"deleteResourcePolicy\",\"parameters\":{\"policyName\":\"ESLogPolicyc881416c4fcb1ec2b4bf7f47a5cde4097f01ec50fc\"},\"ignoreErrorCodesMatching\":\"400\"}", + "Delete": "{\"service\":\"CloudWatchLogs\",\"action\":\"deleteResourcePolicy\",\"parameters\":{\"policyName\":\"ESLogPolicyc881416c4fcb1ec2b4bf7f47a5cde4097f01ec50fc\"},\"ignoreErrorCodesMatching\":\"ResourceNotFoundException\"}", "InstallLatestAwsSdk": true }, "DependsOn": [ @@ -374,7 +374,7 @@ ] ] }, - "Delete": "{\"service\":\"CloudWatchLogs\",\"action\":\"deleteResourcePolicy\",\"parameters\":{\"policyName\":\"ESLogPolicyc80140a7754e9c0dd4e81167ef19e15da5b55dca02\"},\"ignoreErrorCodesMatching\":\"400\"}", + "Delete": "{\"service\":\"CloudWatchLogs\",\"action\":\"deleteResourcePolicy\",\"parameters\":{\"policyName\":\"ESLogPolicyc80140a7754e9c0dd4e81167ef19e15da5b55dca02\"},\"ignoreErrorCodesMatching\":\"ResourceNotFoundException\"}", "InstallLatestAwsSdk": true }, "DependsOn": [ From f0d64f91be49625fab76f4b7dd78fdfe3d30f5e9 Mon Sep 17 00:00:00 2001 From: Lars Fronius Date: Wed, 5 Oct 2022 12:44:44 +0200 Subject: [PATCH 3/3] fix --- .../cdk-integ-elasticsearch-custom-kms-key.template.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@aws-cdk/aws-elasticsearch/test/elasticsearch.custom-kms-key.integ.snapshot/cdk-integ-elasticsearch-custom-kms-key.template.json b/packages/@aws-cdk/aws-elasticsearch/test/elasticsearch.custom-kms-key.integ.snapshot/cdk-integ-elasticsearch-custom-kms-key.template.json index dfb7d83603170..d43c1fc4648a8 100644 --- a/packages/@aws-cdk/aws-elasticsearch/test/elasticsearch.custom-kms-key.integ.snapshot/cdk-integ-elasticsearch-custom-kms-key.template.json +++ b/packages/@aws-cdk/aws-elasticsearch/test/elasticsearch.custom-kms-key.integ.snapshot/cdk-integ-elasticsearch-custom-kms-key.template.json @@ -104,7 +104,7 @@ ] ] }, - "Delete": "{\"service\":\"CloudWatchLogs\",\"action\":\"deleteResourcePolicy\",\"parameters\":{\"policyName\":\"ESLogPolicyc82ca7bfe2f2589b859ebab89e88da2efd284adfad\"},\"ignoreErrorCodesMatching\":\"400\"}", + "Delete": "{\"service\":\"CloudWatchLogs\",\"action\":\"deleteResourcePolicy\",\"parameters\":{\"policyName\":\"ESLogPolicyc82ca7bfe2f2589b859ebab89e88da2efd284adfad\"},\"ignoreErrorCodesMatching\":\"ResourceNotFoundException\"}", "InstallLatestAwsSdk": true }, "DependsOn": [