11import { getJsonFromFile , sleep } from "../utils/utils.js" ;
2- import * as ECS from "@aws-sdk/client-ecs" ;
3- import AWS from 'aws-sdk' ; /* We really should be migrating to v3, but for now use v2 */
2+ import { ECS , RunTaskCommandOutput } from "@aws-sdk/client-ecs" ;
3+ import { ServiceException } from "@smithy/smithy-client" ;
4+ /* We really should be migrating to v3, but for now use v2 */
45import { getTestCaseTaskDefinition } from "../utils/config-utils.js" ;
56import { PromiseResult } from "aws-sdk/lib/request" ;
6- process . env . AWS_SDK_JS_SUPPRESS_MAINTENANCE_MODE_MESSAGE = '1' ;
77import * as Constants from "../constants.js"
88
99let ecsTestCaseTaskQueue : Array < IEcsTestTask > = [ ] ;
@@ -61,22 +61,21 @@ async function processEcsTestTaskQueue() {
6161async function startECSTask ( task : IEcsTestTask ) {
6262 const testCase = task . testCase ;
6363
64- // Set the region name
65- AWS . config . update ( { region : testCase . config . region } ) ;
66-
6764 // Create an ECS client
68- const ecs = new AWS . ECS ( ) ;
65+ const ecs = new ECS ( {
66+ region : testCase . config . region ,
67+ } ) ;
6968
7069 // Create fargate cluster if it doesn't already exist
71- const clusters = await ecs . listClusters ( ) . promise ( ) ;
70+ const clusters = await ecs . listClusters ( ) ;
7271 if ( ! clusters . clusterArns . some ( c => c . endsWith ( `/${ testCase . config . cluster } ` ) ) ) {
7372 await ecs . createCluster ( {
7473 settings : [ {
7574 name : "containerInsights" ,
7675 value : "enabled"
7776 } ] ,
7877 clusterName : testCase . config . cluster
79- } ) . promise ( ) ;
78+ } ) ;
8079 console . log ( `🍇 Created cluster: ${ testCase . config . cluster } \n` )
8180 await sleep ( 2000 ) ; /* Wait for the container to be ready to accept new tasks */
8281 }
@@ -87,7 +86,7 @@ async function startECSTask(task: IEcsTestTask) {
8786 // Register task definition
8887 let taskDefinitionArn ;
8988 try {
90- taskDefinitionArn = ( await ecs . registerTaskDefinition ( taskDefinition ) . promise ( ) ) . taskDefinition ! . taskDefinitionArn ;
89+ taskDefinitionArn = ( await ecs . registerTaskDefinition ( taskDefinition ) ) . taskDefinition ! . taskDefinitionArn ;
9190 }
9291 catch ( err ) {
9392 console . error ( `Error registering task definition: ${ err } ` ) ;
@@ -133,11 +132,10 @@ function ecsTaskReturn(ecsTestTask: IEcsTestTask) {
133132async function validateAndRetryECSTask ( ecsTestTask : IEcsTestTask ) {
134133 const testCase = ecsTestTask . testCase ;
135134
136- // Set the region name
137- AWS . config . update ( { region : ecsTestTask . testCase . config . region } ) ;
138-
139135 // Create an ECS client
140- const ecs = new AWS . ECS ( ) ;
136+ const ecs = new ECS ( {
137+ region : testCase . config . region ,
138+ } ) ;
141139
142140 const {
143141 currentTasks,
@@ -182,11 +180,10 @@ async function validateAndRetryECSTask(ecsTestTask: IEcsTestTask) {
182180async function outOfRetriesECSTask ( ecsTestTask : IEcsTestTask ) {
183181 const testCase = ecsTestTask . testCase ;
184182
185- // Set the region name
186- AWS . config . update ( { region : ecsTestTask . testCase . config . region } ) ;
187-
188183 // Create an ECS client
189- const ecs = new AWS . ECS ( ) ;
184+ const ecs = new ECS ( {
185+ region : testCase . config . region ,
186+ } ) ;
190187
191188 const {
192189 runningTasksCount,
@@ -212,11 +209,11 @@ async function outOfRetriesECSTask(ecsTestTask: IEcsTestTask) {
212209}
213210
214211
215- async function launchECSTasks ( testCase : ITestCase , taskCount : number , ecs : AWS . ECS , taskDefinitionArn : string ) : Promise < string [ ] > {
212+ async function launchECSTasks ( testCase : ITestCase , taskCount : number , ecs : ECS , taskDefinitionArn : string ) : Promise < string [ ] > {
216213 let launchedTasks = [ ] ;
217214 while ( launchedTasks . length < taskCount ) {
218215 const launchCount = Math . min ( 10 , taskCount - launchedTasks . length ) ;
219- let result : PromiseResult < AWS . ECS . RunTaskResponse , AWS . AWSError > ;
216+ let result : PromiseResult < RunTaskCommandOutput , ServiceException > ;
220217 try {
221218 result = await ecs . runTask ( {
222219 enableExecuteCommand : true ,
@@ -231,7 +228,7 @@ async function launchECSTasks(testCase: ITestCase, taskCount: number, ecs: AWS.E
231228 securityGroups : testCase . config . taskVpcSecurityGroups ,
232229 }
233230 }
234- } ) . promise ( ) ;
231+ } ) ;
235232 }
236233 catch ( err ) {
237234 console . error ( `Error launching task: ${ err } ` ) ;
@@ -254,8 +251,10 @@ async function launchECSTasks(testCase: ITestCase, taskCount: number, ecs: AWS.E
254251 return launchedTasks ;
255252}
256253
257- async function validateECSTestTask ( ecs : AWS . ECS , ecsTestTask : IEcsTestTask ) {
258- const currentTasks = await ecs . describeTasks ( { cluster : ecsTestTask . testCase . config . cluster , tasks : ecsTestTask . executionRecord . taskArns } ) . promise ( ) ;
254+ async function validateECSTestTask ( ecs : ECS , ecsTestTask : IEcsTestTask ) {
255+ const currentTasks = await ecs . describeTasks (
256+ { cluster : ecsTestTask . testCase . config . cluster , tasks : ecsTestTask . executionRecord . taskArns } ,
257+ ) ;
259258 const startingTasks = currentTasks . tasks
260259 . filter ( t => ( t . taskDefinitionArn === ecsTestTask . taskDefinitionArn ) &&
261260 ( t . lastStatus === "PROVISIONING" || t . lastStatus === "PENDING" || t . lastStatus === "ACTIVATING" ) )
0 commit comments