|
2 | 2 | // SPDX-License-Identifier: MIT-0 |
3 | 3 |
|
4 | 4 |
|
5 | | -import { Annotations, Duration, Names, RemovalPolicy } from 'aws-cdk-lib'; |
| 5 | +import { Duration, Names, RemovalPolicy } from 'aws-cdk-lib'; |
6 | 6 | import { Bucket, BucketEncryption, BlockPublicAccess } from 'aws-cdk-lib/aws-s3'; |
7 | 7 | import { Construct } from 'constructs'; |
8 | 8 |
|
9 | 9 | import { AnalyticsBucketProps } from './analytics-bucket-props'; |
| 10 | +import { Context } from '../utils'; |
10 | 11 |
|
11 | 12 | /** |
12 | 13 | * Amazon S3 Bucket configured with best-practices and defaults for analytics. |
@@ -35,24 +36,13 @@ import { AnalyticsBucketProps } from './analytics-bucket-props'; |
35 | 36 | export class AnalyticsBucket extends Bucket { |
36 | 37 |
|
37 | 38 | private static LIFECYCLE_RULE = [{ abortIncompleteMultipartUploadAfter: Duration.days(1) }]; |
38 | | - private static FRAMEWORK_CONTEXT_VALUES = 'adsf'; |
39 | 39 |
|
40 | 40 | constructor(scope: Construct, id: string, props: AnalyticsBucketProps) { |
41 | 41 |
|
42 | 42 | const bucketName = (props?.bucketName || 'analytics-bucket') + '-' + Names.uniqueResourceName(scope, {}).toLowerCase(); |
43 | 43 |
|
44 | | - const globalRemovalPolicy = scope.node.tryGetContext(AnalyticsBucket.FRAMEWORK_CONTEXT_VALUES)?.remove_data_on_destroy.toLowerCase() == 'true' || false; |
45 | | - const removalPolicy = props?.removalPolicy == RemovalPolicy.DESTROY && globalRemovalPolicy ? RemovalPolicy.DESTROY : RemovalPolicy.RETAIN; |
46 | | - const autoDeleteObjects = (removalPolicy == RemovalPolicy.DESTROY) && globalRemovalPolicy; |
47 | | - |
48 | | - if (props?.removalPolicy == RemovalPolicy.DESTROY && !globalRemovalPolicy) { |
49 | | - Annotations.of(scope).addWarning( |
50 | | - `WARNING: removalPolicy was reverted back to 'RemovalPolicy.RETAIN'. |
51 | | - If you wish to set 'removalPolicy' to 'DESTROY' you must also |
52 | | - set the global removal policy flag context variable in the 'cdk.json' |
53 | | - or 'cdk.context.json': "adsf": { "remove_data_on_destroy": "true" }.`, |
54 | | - ); |
55 | | - } |
| 44 | + const removalPolicy = Context.revertRemovalPolicy(scope, props?.removalPolicy); |
| 45 | + const autoDeleteObjects = removalPolicy == RemovalPolicy.DESTROY; |
56 | 46 |
|
57 | 47 | super(scope, id, { |
58 | 48 | ...props, |
|
0 commit comments