Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate AWS SDK for JavaScript from v2 to v3 #1730

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
6 changes: 4 additions & 2 deletions collectors/aws/accessanalyzer/listFindings.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
var AWS = require('aws-sdk');
const {
AccessAnalyzer
} = require('@aws-sdk/client-accessanalyzer');
var async = require('async');
var helpers = require(__dirname + '/../../../helpers/aws');

module.exports = function(AWSConfig, collection, retries, callback) {
var accessanalyzer = new AWS.AccessAnalyzer(AWSConfig);
var accessanalyzer = new AccessAnalyzer(AWSConfig);
async.eachLimit(collection.accessanalyzer.listAnalyzers[AWSConfig.region].data, 15, function(analyzer, cb) {
collection.accessanalyzer.listFindings[AWSConfig.region][analyzer.arn] = {};
var params = {
Expand Down
6 changes: 4 additions & 2 deletions collectors/aws/apigateway/getClientCertificate.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
var AWS = require('aws-sdk');
const {
APIGateway
} = require('@aws-sdk/client-api-gateway');
var async = require('async');
var helpers = require(__dirname + '/../../../helpers/aws');

module.exports = function(AWSConfig, collection, retries, callback) {
var apigateway = new AWS.APIGateway(AWSConfig);
var apigateway = new APIGateway(AWSConfig);

async.eachLimit(collection.apigateway.getRestApis[AWSConfig.region].data, 5, function(api, cb){
if (!collection.apigateway.getStages ||
Expand Down
6 changes: 4 additions & 2 deletions collectors/aws/apigateway/getIntegration.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
var AWS = require('aws-sdk');
const {
APIGateway
} = require('@aws-sdk/client-api-gateway');
var async = require('async');
var helpers = require(__dirname + '/../../../helpers/aws');

module.exports = function(AWSConfig, collection, retries, callback) {
var apigateway = new AWS.APIGateway(AWSConfig);
var apigateway = new APIGateway(AWSConfig);

async.eachLimit(collection.apigateway.getRestApis[AWSConfig.region].data, 5, function(api, cb){
if (!collection.apigateway.getResources ||
Expand Down
6 changes: 4 additions & 2 deletions collectors/aws/appmesh/describeVirtualGateway.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
var AWS = require('aws-sdk');
const {
AppMesh
} = require('@aws-sdk/client-app-mesh');
var async = require('async');
var helpers = require(__dirname + '/../../../helpers/aws');

module.exports = function(AWSConfig, collection, retries, callback) {
var appmesh = new AWS.AppMesh(AWSConfig);
var appmesh = new AppMesh(AWSConfig);

if (!collection.appmesh ||
!collection.appmesh.listMeshes ||
Expand Down
6 changes: 4 additions & 2 deletions collectors/aws/autoscaling/describeLaunchConfigurations.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
var AWS = require('aws-sdk');
const {
AutoScaling
} = require('@aws-sdk/client-auto-scaling');
var async = require('async');
var helpers = require(__dirname + '/../../../helpers/aws');

module.exports = function(AWSConfig, collection, retries, callback) {
var autoscaling = new AWS.AutoScaling(AWSConfig);
var autoscaling = new AutoScaling(AWSConfig);

async.eachLimit(collection.autoscaling.describeAutoScalingGroups[AWSConfig.region].data, 15, function(asg, cb){
collection.autoscaling.describeLaunchConfigurations[AWSConfig.region][asg.AutoScalingGroupARN] = {};
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
var AWS = require('aws-sdk');
const {
AutoScaling
} = require('@aws-sdk/client-auto-scaling');
var async = require('async');
var helpers = require(__dirname + '/../../../helpers/aws');

module.exports = function(AWSConfig, collection, retries, callback) {
var autoscaling = new AWS.AutoScaling(AWSConfig);
var autoscaling = new AutoScaling(AWSConfig);

async.eachLimit(collection.autoscaling.describeAutoScalingGroups[AWSConfig.region].data, 15, function(asg, cb){
var params = {
Expand Down
6 changes: 4 additions & 2 deletions collectors/aws/cloudfront/getDistribution.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
var AWS = require('aws-sdk');
const {
CloudFront
} = require('@aws-sdk/client-cloudfront');
var async = require('async');
var helpers = require(__dirname + '/../../../helpers/aws');

module.exports = function(AWSConfig, collection, retries, callback) {
var cloudfront = new AWS.CloudFront(AWSConfig);
var cloudfront = new CloudFront(AWSConfig);

async.eachLimit(collection.cloudfront.listDistributions[AWSConfig.region].data, 15, function(distribution, cb){
collection.cloudfront.getDistribution[AWSConfig.region][distribution.Id] = {};
Expand Down
6 changes: 4 additions & 2 deletions collectors/aws/cloudtrail/listTags.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
var AWS = require('aws-sdk');
const {
CloudTrail
} = require('@aws-sdk/client-cloudtrail');
var async = require('async');
var helpers = require(__dirname + '/../../../helpers/aws');

module.exports = function(AWSConfig, collection, retries, callback) {
var cloudtrail = new AWS.CloudTrail(AWSConfig);
var cloudtrail = new CloudTrail(AWSConfig);

async.eachLimit(collection.cloudtrail.describeTrails[AWSConfig.region].data, 15, function(trail, cb) {
var params = {
Expand Down
6 changes: 4 additions & 2 deletions collectors/aws/cloudwatch/getEc2MetricStatistics.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
var AWS = require('aws-sdk');
const {
CloudWatch
} = require('@aws-sdk/client-cloudwatch');
var async = require('async');
var helpers = require('../../../helpers/aws');

module.exports = function(AWSConfig, collection, retries, callback) {
var cloudwatch = new AWS.CloudWatch(AWSConfig);
var cloudwatch = new CloudWatch(AWSConfig);

async.eachLimit(collection.ec2.describeInstances[AWSConfig.region].data, 10, function(reservation, cb) {
reservation.Instances.forEach(instance => {
Expand Down
6 changes: 4 additions & 2 deletions collectors/aws/cloudwatch/getEcMetricStatistics.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
var AWS = require('aws-sdk');
const {
CloudWatch
} = require('@aws-sdk/client-cloudwatch');
var async = require('async');
var helpers = require(__dirname + '/../../../helpers/aws');

module.exports = function(AWSConfig, collection, retries, callback) {
var cloudwatch = new AWS.CloudWatch(AWSConfig);
var cloudwatch = new CloudWatch(AWSConfig);

async.eachLimit(collection.elasticache.describeCacheClusters[AWSConfig.region].data, 10, function(cluster, cb){
collection.cloudwatch.getEcMetricStatistics[AWSConfig.region][cluster.CacheClusterId] = {};
Expand Down
6 changes: 4 additions & 2 deletions collectors/aws/cloudwatch/getEsMetricStatistics.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
var AWS = require('aws-sdk');
const {
CloudWatch
} = require('@aws-sdk/client-cloudwatch');
var async = require('async');
var helpers = require(__dirname + '/../../../helpers/aws');

module.exports = function(AWSConfig, collection, retries, callback) {
var cloudwatch = new AWS.CloudWatch(AWSConfig);
var cloudwatch = new CloudWatch(AWSConfig);

async.eachLimit(collection.opensearch.listDomainNames[AWSConfig.region].data, 10, function(domain, cb){
collection.cloudwatch.getEsMetricStatistics[AWSConfig.region][domain.DomainName] = {};
Expand Down
6 changes: 4 additions & 2 deletions collectors/aws/cloudwatch/getRdsMetricStatistics.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
var AWS = require('aws-sdk');
const {
CloudWatch
} = require('@aws-sdk/client-cloudwatch');
var async = require('async');
var helpers = require(__dirname + '/../../../helpers/aws');

module.exports = function(AWSConfig, collection, retries, callback) {
var cloudwatch = new AWS.CloudWatch(AWSConfig);
var cloudwatch = new CloudWatch(AWSConfig);

async.eachLimit(collection.rds.describeDBInstances[AWSConfig.region].data, 10, function(instance, cb){
collection.cloudwatch.getRdsMetricStatistics[AWSConfig.region][instance.DBInstanceIdentifier] = {};
Expand Down
6 changes: 4 additions & 2 deletions collectors/aws/cloudwatch/getRdsReadIOPSMetricStatistics.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
var AWS = require('aws-sdk');
const {
CloudWatch
} = require('@aws-sdk/client-cloudwatch');
var async = require('async');
var helpers = require(__dirname + '/../../../helpers/aws');

module.exports = function(AWSConfig, collection, retries, callback) {
var cloudwatch = new AWS.CloudWatch(AWSConfig);
var cloudwatch = new CloudWatch(AWSConfig);

async.eachLimit(collection.rds.describeDBInstances[AWSConfig.region].data, 10, function(instance, cb){
collection.cloudwatch.getRdsReadIOPSMetricStatistics[AWSConfig.region][instance.DBInstanceIdentifier] = {};
Expand Down
6 changes: 4 additions & 2 deletions collectors/aws/cloudwatch/getRdsWriteIOPSMetricStatistics.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
var AWS = require('aws-sdk');
const {
CloudWatch
} = require('@aws-sdk/client-cloudwatch');
var async = require('async');
var helpers = require(__dirname + '/../../../helpers/aws');

module.exports = function(AWSConfig, collection, retries, callback) {
var cloudwatch = new AWS.CloudWatch(AWSConfig);
var cloudwatch = new CloudWatch(AWSConfig);

async.eachLimit(collection.rds.describeDBInstances[AWSConfig.region].data, 10, function(instance, cb){
collection.cloudwatch.getRdsWriteIOPSMetricStatistics[AWSConfig.region][instance.DBInstanceIdentifier] = {};
Expand Down
6 changes: 4 additions & 2 deletions collectors/aws/cloudwatch/getredshiftMetricStatistics.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
var AWS = require('aws-sdk');
const {
CloudWatch
} = require('@aws-sdk/client-cloudwatch');
var async = require('async');
var helpers = require(__dirname + '/../../../helpers/aws');

module.exports = function(AWSConfig, collection, retries, callback) {
var cloudwatch = new AWS.CloudWatch(AWSConfig);
var cloudwatch = new CloudWatch(AWSConfig);

async.eachLimit(collection.redshift.describeClusters[AWSConfig.region].data, 10, function(cluster, cb){
collection.cloudwatch.getredshiftMetricStatistics[AWSConfig.region][cluster.ClusterIdentifier] = {};
Expand Down
6 changes: 4 additions & 2 deletions collectors/aws/codebuild/batchGetProjects.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
var AWS = require('aws-sdk');
const {
CodeBuild
} = require('@aws-sdk/client-codebuild');
var async = require('async');
var helpers = require(__dirname + '/../../../helpers/aws');

module.exports = function(AWSConfig, collection, retries, callback) {
var codebuild = new AWS.CodeBuild(AWSConfig);
var codebuild = new CodeBuild(AWSConfig);

async.eachLimit(collection.codebuild.listProjects[AWSConfig.region].data, 15, function(project, cb){
collection.codebuild.batchGetProjects[AWSConfig.region][project] = {};
Expand Down
28 changes: 19 additions & 9 deletions collectors/aws/collector.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,19 @@
- callback: Function to call when the collection is complete
*********************/

var AWS = require('aws-sdk');

const {
EC2
} = require('@aws-sdk/client-ec2');

var async = require('async');
var https = require('https');
var helpers = require(__dirname + '/../../helpers/aws');
var collectors = require(__dirname + '/../../collectors/aws');
var collectData = require(__dirname + '/../../helpers/shared.js');
// Override max sockets
var agent = new https.Agent({maxSockets: 100});
AWS.config.update({httpOptions: {agent: agent}});

const { Agent } = require('https');
const { Agent: HttpAgent } = require("http");
const { NodeHttpHandler } = require('@aws-sdk/node-http-handler');

var rateError = {message: 'rate', statusCode: 429};

Expand All @@ -50,7 +54,12 @@ var collect = function(AWSConfig, settings, callback) {
var AWSXRay;
var debugMode = settings.debug_mode;
if (debugMode) AWSXRay = require('aws-xray-sdk');

// Override max sockets
const customRequestHandler = new NodeHttpHandler({
httpsAgent: new Agent({maxSockets: 100}),
httpAgent: new HttpAgent({maxSockets: 100})
});
AWSConfig.requestHandler = customRequestHandler;
AWSConfig.maxRetries = 8;
AWSConfig.retryDelayOptions = {base: 100};

Expand All @@ -63,7 +72,8 @@ var collect = function(AWSConfig, settings, callback) {

let runApiCalls = [];

var AWSEC2 = new AWS.EC2(AWSConfig);
var AWSEC2 = new EC2(AWSConfig);

var params = {AllRegions: true};
var excludeRegions = [];

Expand Down Expand Up @@ -136,7 +146,7 @@ var collect = function(AWSConfig, settings, callback) {
}
});
} else {
var executor = debugMode ? (AWSXRay.captureAWSClient(new AWS[serviceName](LocalAWSConfig))) : new AWS[serviceName](LocalAWSConfig);
var executor = debugMode ? (AWSXRay.captureAWSClient(new AWSXRay[serviceName](LocalAWSConfig))) : new AWSXRay[serviceName](LocalAWSConfig);
var paginating = false;
var executorCb = function(err, data) {
if (err) {
Expand Down Expand Up @@ -305,7 +315,7 @@ var collect = function(AWSConfig, settings, callback) {
}
});
} else {
var executor = debugMode ? (AWSXRay.captureAWSClient(new AWS[serviceName](LocalAWSConfig))) : new AWS[serviceName](LocalAWSConfig);
var executor = debugMode ? (AWSXRay.captureAWSClient(new AWSXRay[serviceName](LocalAWSConfig))) : new AWSXRay[serviceName](LocalAWSConfig);

if (!collection[callObj.reliesOnService][callObj.reliesOnCall][LocalAWSConfig.region] ||
!collection[callObj.reliesOnService][callObj.reliesOnCall][LocalAWSConfig.region].data) {
Expand Down
26 changes: 17 additions & 9 deletions collectors/aws/collector_multipart.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,19 @@
- callback: Function to call when the collection is complete
*********************/

var AWS = require('aws-sdk');

const {
EC2
} = require('@aws-sdk/client-ec2');

var async = require('async');
var https = require('https');
var helpers = require(__dirname + '/../../helpers/aws');
var collectors = require(__dirname + '/../../collectors/aws');
var collectData = require(__dirname + '/../../helpers/shared.js');

// Override max sockets
var agent = new https.Agent({maxSockets: 100});
AWS.config.update({httpOptions: {agent: agent}});
const { Agent } = require('https');
const { Agent: HttpAgent } = require("http");
const { NodeHttpHandler } = require('@aws-sdk/node-http-handler');

var CALLS_CONFIG = {
TOTAL_PARTS: 14,
Expand Down Expand Up @@ -61,7 +64,12 @@ var collect = function(AWSConfig, settings, callback) {
var AWSXRay;
var debugMode = settings.debug_mode;
if (debugMode) AWSXRay = require('aws-xray-sdk');

// Override max sockets
const customRequestHandler = new NodeHttpHandler({
httpsAgent: new Agent({maxSockets: 100}),
httpAgent: new HttpAgent({maxSockets: 100})
});
AWSConfig.requestHandler = customRequestHandler;
AWSConfig.maxRetries = 8;
AWSConfig.retryDelayOptions = {base: 100};

Expand All @@ -80,7 +88,7 @@ var collect = function(AWSConfig, settings, callback) {

let runApiCalls = [];

var AWSEC2 = new AWS.EC2(AWSConfig);
var AWSEC2 = new EC2(AWSConfig);
var params = {AllRegions: true};
var excludeRegions = [];
var timeoutCheck;
Expand Down Expand Up @@ -165,7 +173,7 @@ var collect = function(AWSConfig, settings, callback) {
}
});
} else {
var executor = debugMode ? (AWSXRay.captureAWSClient(new AWS[serviceName](LocalAWSConfig))) : new AWS[serviceName](LocalAWSConfig);
var executor = debugMode ? (AWSXRay.captureAWSClient(new AWSXRay[serviceName](LocalAWSConfig))) : new AWSXRay[serviceName](LocalAWSConfig);
var paginating = false;
var executorCb = function(err, data) {
if (err) {
Expand Down Expand Up @@ -345,7 +353,7 @@ var collect = function(AWSConfig, settings, callback) {
}
});
} else {
var executor = debugMode ? (AWSXRay.captureAWSClient(new AWS[serviceName](LocalAWSConfig))) : new AWS[serviceName](LocalAWSConfig);
var executor = debugMode ? (AWSXRay.captureAWSClient(new AWSXRay[serviceName](LocalAWSConfig))) : new AWSXRay[serviceName](LocalAWSConfig);

if (!collection[callObj.reliesOnService][callObj.reliesOnCall][LocalAWSConfig.region] ||
!collection[callObj.reliesOnService][callObj.reliesOnCall][LocalAWSConfig.region].data) {
Expand Down
6 changes: 4 additions & 2 deletions collectors/aws/connect/instanceAttachmentStorageConfigs.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
var AWS = require('aws-sdk');
const {
Connect
} = require('@aws-sdk/client-connect');
var async = require('async');
var helpers = require(__dirname + '/../../../helpers/aws');

module.exports = function(AWSConfig, collection, retries, callback) {
var connect = new AWS.Connect(AWSConfig);
var connect = new Connect(AWSConfig);

async.eachLimit(collection.connect.listInstances[AWSConfig.region].data, 15, function(instance, cb){
collection.connect.instanceAttachmentStorageConfigs[AWSConfig.region][instance.Id] = {};
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
var AWS = require('aws-sdk');
const {
Connect
} = require('@aws-sdk/client-connect');
var async = require('async');
var helpers = require(__dirname + '/../../../helpers/aws');

module.exports = function(AWSConfig, collection, retries, callback) {
var connect = new AWS.Connect(AWSConfig);
var connect = new Connect(AWSConfig);

async.eachLimit(collection.connect.listInstances[AWSConfig.region].data, 15, function(instance, cb){
collection.connect.listInstanceCallRecordingStorageConfigs[AWSConfig.region][instance.Id] = {};
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
var AWS = require('aws-sdk');
const {
Connect
} = require('@aws-sdk/client-connect');
var async = require('async');
var helpers = require(__dirname + '/../../../helpers/aws');

module.exports = function(AWSConfig, collection, retries, callback) {
var connect = new AWS.Connect(AWSConfig);
var connect = new Connect(AWSConfig);

async.eachLimit(collection.connect.listInstances[AWSConfig.region].data, 15, function(instance, cb){
collection.connect.listInstanceChatTranscriptStorageConfigs[AWSConfig.region][instance.Id] = {};
Expand Down
Loading