@cloud-carbon-footprint/aws
Version:
The core logic to get cloud usage data and estimate energy and carbon emissions from Amazon Web Services.
40 lines • 2.65 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const ComputeOptimizerRecommendation_1 = __importDefault(require("./ComputeOptimizerRecommendation"));
class EBSTargetComputeOptimizerRecommendation extends ComputeOptimizerRecommendation_1.default {
constructor(computeOptimizerRecommendationData) {
super(computeOptimizerRecommendationData);
this.accountName = this.accountId;
this.region = this.getRegion(computeOptimizerRecommendationData.volumeArn);
this.recommendationOptions = [
{
volumeType: computeOptimizerRecommendationData.recommendationOptions_1_configuration_volumeType,
volumeSize: computeOptimizerRecommendationData.recommendationOptions_1_configuration_volumeSize,
costSavings: computeOptimizerRecommendationData.recommendationOptions_1_estimatedMonthlySavings_value,
performanceRisk: computeOptimizerRecommendationData.recommendationOptions_1_performanceRisk,
},
{
volumeType: computeOptimizerRecommendationData.recommendationOptions_2_configuration_volumeType,
volumeSize: computeOptimizerRecommendationData.recommendationOptions_2_configuration_volumeSize,
costSavings: computeOptimizerRecommendationData.recommendationOptions_2_estimatedMonthlySavings_value,
performanceRisk: computeOptimizerRecommendationData.recommendationOptions_2_performanceRisk,
},
{
volumeType: computeOptimizerRecommendationData.recommendationOptions_3_configuration_volumeType,
volumeSize: computeOptimizerRecommendationData.recommendationOptions_3_configuration_volumeSize,
costSavings: computeOptimizerRecommendationData.recommendationOptions_3_estimatedMonthlySavings_value,
performanceRisk: computeOptimizerRecommendationData.recommendationOptions_3_performanceRisk,
},
];
const optimalRecommendation = this.getOptimalRecommendation(this.recommendationOptions);
this.volumeType = optimalRecommendation.volumeType;
this.volumeSize = parseInt(optimalRecommendation.volumeSize);
this.description = `${this.volumeType}(${this.volumeSize}GB)`;
this.costSavings = parseFloat(optimalRecommendation.costSavings);
}
}
exports.default = EBSTargetComputeOptimizerRecommendation;
//# sourceMappingURL=EBSTargetComputeOptimizerRecommendation.js.map