From 52c53e39d1880cce392e45b3406648570da67c60 Mon Sep 17 00:00:00 2001 From: Hunter Werlla Date: Fri, 29 Jan 2021 12:01:24 -0800 Subject: [PATCH] List all CFN resources that are not DELETE_COMPLETE --- src/shared/clients/cloudFormationClient.ts | 2 +- .../clients/defaultCloudFormationClient.ts | 29 ++++++++++++++++--- src/test/shared/clients/mockClients.ts | 4 +-- 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/src/shared/clients/cloudFormationClient.ts b/src/shared/clients/cloudFormationClient.ts index c636e513f11..ddd24de1a16 100644 --- a/src/shared/clients/cloudFormationClient.ts +++ b/src/shared/clients/cloudFormationClient.ts @@ -10,7 +10,7 @@ export interface CloudFormationClient { deleteStack(name: string): Promise - listStacks(statusFilter?: string[]): AsyncIterableIterator + listStacks(): AsyncIterableIterator describeStackResources(name: string): Promise } diff --git a/src/shared/clients/defaultCloudFormationClient.ts b/src/shared/clients/defaultCloudFormationClient.ts index 0e8e48bc3b8..4f9482b3d17 100644 --- a/src/shared/clients/defaultCloudFormationClient.ts +++ b/src/shared/clients/defaultCloudFormationClient.ts @@ -21,13 +21,34 @@ export class DefaultCloudFormationClient implements CloudFormationClient { .promise() } - public async *listStacks( - statusFilter: string[] = ['CREATE_COMPLETE', 'UPDATE_COMPLETE'] - ): AsyncIterableIterator { + public async *listStacks(): AsyncIterableIterator { const client = await this.createSdkClient() const request: CloudFormation.ListStacksInput = { - StackStatusFilter: statusFilter, + // Every StackStatus except for DELETE_COMPLETE + StackStatusFilter: [ + 'CREATE_IN_PROGRESS', + 'CREATE_FAILED', + 'CREATE_COMPLETE', + 'ROLLBACK_IN_PROGRESS', + 'ROLLBACK_FAILED', + 'ROLLBACK_COMPLETE', + 'DELETE_IN_PROGRESS', + 'DELETE_FAILED', + 'UPDATE_IN_PROGRESS', + 'UPDATE_COMPLETE_CLEANUP_IN_PROGRESS', + 'UPDATE_COMPLETE', + 'UPDATE_ROLLBACK_IN_PROGRESS', + 'UPDATE_ROLLBACK_FAILED', + 'UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS', + 'UPDATE_ROLLBACK_COMPLETE', + 'REVIEW_IN_PROGRESS', + 'IMPORT_IN_PROGRESS', + 'IMPORT_COMPLETE', + 'IMPORT_ROLLBACK_IN_PROGRESS', + 'IMPORT_ROLLBACK_FAILED', + 'IMPORT_ROLLBACK_COMPLETE', + ], } do { diff --git a/src/test/shared/clients/mockClients.ts b/src/test/shared/clients/mockClients.ts index 3250ddcd3d7..260edcbe999 100644 --- a/src/test/shared/clients/mockClients.ts +++ b/src/test/shared/clients/mockClients.ts @@ -154,9 +154,9 @@ export class MockCloudFormationClient implements CloudFormationClient { public readonly deleteStack: (name: string) => Promise = async (name: string) => {}, - public readonly listStacks: (statusFilter?: string[]) => AsyncIterableIterator = ( + public readonly listStacks: ( statusFilter?: string[] - ) => asyncGenerator([]), + ) => AsyncIterableIterator = () => asyncGenerator([]), public readonly describeStackResources: ( name: string