UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

40 lines (39 loc) 2.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const types_1 = require("../../../types"); const base_1 = require("../../base"); class BucketLifeCycleRulesAnalyzer extends base_1.BaseAnalyzer { analyze(params) { const allBucketLifeCycleRules = params.bucket_life_cycle_rules; if (!allBucketLifeCycleRules) { return undefined; } const bucket_life_cycle_rules_used = { type: types_1.CheckAnalysisType.CostOptimization }; bucket_life_cycle_rules_used.what = "Are S3 Bucket Life Cycle rules used?"; bucket_life_cycle_rules_used.why = `Bucket life cycle rules helps us to manage the S3 object storage by either transferring objects to cheaper storage class or deleting them.`; bucket_life_cycle_rules_used.recommendation = "Recommended to configure life cycle rules for all buckets"; bucket_life_cycle_rules_used.benchmark = ['all']; const allBucketsAnalysis = []; for (const bucketName in allBucketLifeCycleRules) { const bucket_analysis = {}; bucket_analysis.resource = { bucketName, bucketLifeCycleRules: allBucketLifeCycleRules[bucketName] }; bucket_analysis.resourceSummary = { name: "Bucket", value: bucketName, }; if (allBucketLifeCycleRules[bucketName] && allBucketLifeCycleRules[bucketName].length > 0) { bucket_analysis.severity = types_1.SeverityStatus.Good; bucket_analysis.message = "Bucket Life cycle rules are configured"; } else { bucket_analysis.severity = types_1.SeverityStatus.Warning; bucket_analysis.message = "Bucket Life cycle rules are not configured"; bucket_analysis.action = "Configure life cycle rules"; } allBucketsAnalysis.push(bucket_analysis); } bucket_life_cycle_rules_used.regions = { global: allBucketsAnalysis }; return { bucket_life_cycle_rules_used }; } } exports.BucketLifeCycleRulesAnalyzer = BucketLifeCycleRulesAnalyzer;