@@ -60,11 +60,14 @@ import {
6060 ChangeSetType ,
6161} from '@aws-sdk/client-cloudformation' ;
6262import { WaiterConfiguration , WaiterResult } from '@smithy/util-waiter' ;
63+ import { AwsClientSettings , DefaultSettings } from '../settings/Settings' ;
6364import { DeploymentMode } from '../stacks/actions/StackActionRequestType' ;
6465import { Count } from '../telemetry/TelemetryDecorator' ;
6566import { AwsClient } from './AwsClient' ;
6667
6768export class CfnService {
69+ private readonly awsClientSettings : AwsClientSettings = DefaultSettings . awsClient ;
70+
6871 public constructor ( private readonly awsClient : AwsClient ) { }
6972
7073 protected async withClient < T > ( request : ( client : CloudFormationClient ) => Promise < T > ) : Promise < T > {
@@ -334,66 +337,66 @@ export class CfnService {
334337 return await this . withClient ( ( client ) => client . send ( new DeleteStackCommand ( params ) ) ) ;
335338 }
336339
337- public async waitUntilChangeSetCreateComplete (
338- params : DescribeChangeSetCommandInput ,
339- timeoutMinutes : number = 5 ,
340- ) : Promise < WaiterResult > {
340+ public async waitUntilChangeSetCreateComplete ( params : DescribeChangeSetCommandInput ) : Promise < WaiterResult > {
341341 return await this . withClient ( async ( client ) => {
342+ const settings = this . awsClientSettings ;
342343 const waiterConfig : WaiterConfiguration < CloudFormationClient > = {
343344 client,
344- maxWaitTime : timeoutMinutes * 60 ,
345+ maxWaitTime : settings . cloudformation . waiter . changeSet . maxWaitTime ,
346+ minDelay : settings . cloudformation . waiter . changeSet . minDelay ,
347+ maxDelay : settings . cloudformation . waiter . changeSet . maxDelay ,
345348 } ;
346349 return await waitUntilChangeSetCreateComplete ( waiterConfig , params ) ;
347350 } ) ;
348351 }
349352
350- public async waitUntilStackCreateComplete (
351- params : DescribeStacksCommandInput ,
352- timeoutMinutes : number = 30 ,
353- ) : Promise < WaiterResult > {
353+ public async waitUntilStackCreateComplete ( params : DescribeStacksCommandInput ) : Promise < WaiterResult > {
354354 return await this . withClient ( async ( client ) => {
355+ const settings = this . awsClientSettings ;
355356 const waiterConfig : WaiterConfiguration < CloudFormationClient > = {
356357 client,
357- maxWaitTime : timeoutMinutes * 60 ,
358+ maxWaitTime : settings . cloudformation . waiter . stack . maxWaitTime ,
359+ minDelay : settings . cloudformation . waiter . stack . minDelay ,
360+ maxDelay : settings . cloudformation . waiter . stack . maxDelay ,
358361 } ;
359362 return await waitUntilStackCreateComplete ( waiterConfig , params ) ;
360363 } ) ;
361364 }
362365
363- public async waitUntilStackUpdateComplete (
364- params : DescribeStacksCommandInput ,
365- timeoutMinutes : number = 30 ,
366- ) : Promise < WaiterResult > {
366+ public async waitUntilStackUpdateComplete ( params : DescribeStacksCommandInput ) : Promise < WaiterResult > {
367367 return await this . withClient ( async ( client ) => {
368+ const settings = this . awsClientSettings ;
368369 const waiterConfig : WaiterConfiguration < CloudFormationClient > = {
369370 client,
370- maxWaitTime : timeoutMinutes * 60 ,
371+ maxWaitTime : settings . cloudformation . waiter . stack . maxWaitTime ,
372+ minDelay : settings . cloudformation . waiter . stack . minDelay ,
373+ maxDelay : settings . cloudformation . waiter . stack . maxDelay ,
371374 } ;
372375 return await waitUntilStackUpdateComplete ( waiterConfig , params ) ;
373376 } ) ;
374377 }
375378
376- public async waitUntilStackImportComplete (
377- params : DescribeStacksCommandInput ,
378- timeoutMinutes : number = 30 ,
379- ) : Promise < WaiterResult > {
379+ public async waitUntilStackImportComplete ( params : DescribeStacksCommandInput ) : Promise < WaiterResult > {
380380 return await this . withClient ( async ( client ) => {
381+ const settings = this . awsClientSettings ;
381382 const waiterConfig : WaiterConfiguration < CloudFormationClient > = {
382383 client,
383- maxWaitTime : timeoutMinutes * 60 ,
384+ maxWaitTime : settings . cloudformation . waiter . stack . maxWaitTime ,
385+ minDelay : settings . cloudformation . waiter . stack . minDelay ,
386+ maxDelay : settings . cloudformation . waiter . stack . maxDelay ,
384387 } ;
385388 return await waitUntilStackImportComplete ( waiterConfig , params ) ;
386389 } ) ;
387390 }
388391
389- public async waitUntilStackDeleteComplete (
390- params : DescribeStacksCommandInput ,
391- timeoutMinutes : number = 30 ,
392- ) : Promise < WaiterResult > {
392+ public async waitUntilStackDeleteComplete ( params : DescribeStacksCommandInput ) : Promise < WaiterResult > {
393393 return await this . withClient ( async ( client ) => {
394+ const settings = this . awsClientSettings ;
394395 const waiterConfig : WaiterConfiguration < CloudFormationClient > = {
395396 client,
396- maxWaitTime : timeoutMinutes * 60 ,
397+ maxWaitTime : settings . cloudformation . waiter . stack . maxWaitTime ,
398+ minDelay : settings . cloudformation . waiter . stack . minDelay ,
399+ maxDelay : settings . cloudformation . waiter . stack . maxDelay ,
397400 } ;
398401 return await waitUntilStackDeleteComplete ( waiterConfig , params ) ;
399402 } ) ;
0 commit comments