cloud-report
Version:
Collects and analyzes cloud resources
49 lines (48 loc) • 2.28 kB
JavaScript
;
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;