UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

40 lines (39 loc) 2.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const types_1 = require("../../../types"); const base_1 = require("../../base"); class BucketAnalyticsAnalyzer extends base_1.BaseAnalyzer { analyze(params) { const allBucketAnalyticsConfig = params.bucket_analytics; if (!allBucketAnalyticsConfig) { return undefined; } const bucket_analytics_enabled = { type: types_1.CheckAnalysisType.CostOptimization }; bucket_analytics_enabled.what = "Is S3 Bucket Analytics enabled?"; bucket_analytics_enabled.why = `Bucket Analytics gives insights into how object are being accessed and using this information we can get life cycle rule to reduce cost.`; bucket_analytics_enabled.recommendation = "Recommended to enable Analytics for all buckets"; bucket_analytics_enabled.benchmark = ['all']; const allBucketsAnalysis = []; for (const bucketName in allBucketAnalyticsConfig) { const bucket_analysis = {}; bucket_analysis.resource = { bucketName, bucketAnalyticsConfig: allBucketAnalyticsConfig[bucketName] }; bucket_analysis.resourceSummary = { name: "Bucket", value: bucketName, }; if (allBucketAnalyticsConfig[bucketName].length > 0) { bucket_analysis.severity = types_1.SeverityStatus.Good; bucket_analysis.message = "Bucket Analytics is already enabled"; } else { bucket_analysis.severity = types_1.SeverityStatus.Warning; bucket_analysis.message = "Bucket Analytics is not enabled"; bucket_analysis.action = "Enable Bucket Analytics"; } allBucketsAnalysis.push(bucket_analysis); } bucket_analytics_enabled.regions = { global: allBucketsAnalysis }; return { bucket_analytics_enabled }; } } exports.BucketAnalyticsAnalyzer = BucketAnalyticsAnalyzer;