UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

49 lines (48 loc) 2.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const types_1 = require("../../../types"); const base_1 = require("../../base"); class KeyPairsUnusedAnalyzer extends base_1.BaseAnalyzer { analyze(params, fullReport) { const allKeyPairs = params.key_pairs; const allInstances = params.instances; if (!allKeyPairs || !allInstances) { return undefined; } const key_pairs_unused = { type: types_1.CheckAnalysisType.OperationalExcellence }; key_pairs_unused.what = "Are there any key pairs unused?"; key_pairs_unused.why = "Unused key pairs causes confusion and allows to make mistakes"; key_pairs_unused.recommendation = "Recommended delete unused key pairs"; key_pairs_unused.benchmark = ['all']; const allRegionsAnalysis = {}; for (const region in allInstances) { const regionInstances = allInstances[region]; const regionKeyPairs = allKeyPairs[region]; allRegionsAnalysis[region] = []; const usedKeyPairs = regionInstances.map((instance) => { return instance.KeyName; }); if (!regionKeyPairs) { continue; } regionKeyPairs.forEach((keyPair) => { const keyPairAnalysis = {}; keyPairAnalysis.resource = keyPair; keyPairAnalysis.resourceSummary = { name: "KeyPair", value: keyPair.KeyName }; if (usedKeyPairs.indexOf(keyPair.KeyName) !== -1) { keyPairAnalysis.severity = types_1.SeverityStatus.Good; keyPairAnalysis.message = "Key pair is used"; } else { keyPairAnalysis.severity = types_1.SeverityStatus.Warning; keyPairAnalysis.message = "Key pair is not used"; keyPairAnalysis.action = "Delete the key pair"; } allRegionsAnalysis[region].push(keyPairAnalysis); }); } key_pairs_unused.regions = allRegionsAnalysis; return { key_pairs_unused }; } } exports.KeyPairsUnusedAnalyzer = KeyPairsUnusedAnalyzer;