UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

51 lines (50 loc) 2.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const types_1 = require("../../../types"); const utils_1 = require("../../../utils"); const base_1 = require("../../base"); class InstanceStoreVolumesAnalyzer extends base_1.BaseAnalyzer { analyze(params, fullReport) { const allInstances = params.instances; if (!allInstances) { return undefined; } const instance_stored_volume_used = { type: types_1.CheckAnalysisType.Reliability }; instance_stored_volume_used.what = "Are there any EC2 instances with instance stored volumes"; instance_stored_volume_used.why = `Instance store volumes will lose the data in case the instance is failed or terminated`; instance_stored_volume_used.recommendation = `Recommended to use EBS backed volumes as they can help us to recover data when instance has failed`; instance_stored_volume_used.benchmark = ['all']; const allRegionsAnalysis = {}; for (const region in allInstances) { const regionInstances = allInstances[region]; allRegionsAnalysis[region] = []; for (const instance of regionInstances) { const instanceAnalysis = {}; instanceAnalysis.resource = { instanceId: instance.InstanceId, instanceName: utils_1.ResourceUtil.getNameByTags(instance), storageType: instance.RootDeviceType, }; instanceAnalysis.resourceSummary = { name: "Instance", value: `${instanceAnalysis.resource.instanceName} | ${instance.InstanceId}`, }; if (instance.RootDeviceType === "ebs") { instanceAnalysis.severity = types_1.SeverityStatus.Good; instanceAnalysis.message = "EBS backed volume is used"; } else { instanceAnalysis.severity = types_1.SeverityStatus.Failure; instanceAnalysis.message = "Instance stored volume is used"; instanceAnalysis.action = "Switch to EBS backed volumes"; } allRegionsAnalysis[region].push(instanceAnalysis); } } instance_stored_volume_used.regions = allRegionsAnalysis; return { instance_stored_volume_used }; } } exports.InstanceStoreVolumesAnalyzer = InstanceStoreVolumesAnalyzer;