Skip to content

Commit 67bdea6

Browse files
authored
Merge pull request #14173 from aws-amplify/gen2-migrations-execute
fix(migrate-template-gen): replace console logs with ora for async tasks
2 parents 0fa33c6 + 1926c8b commit 67bdea6

3 files changed

Lines changed: 15 additions & 12 deletions

File tree

packages/amplify-migration-template-gen/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
"dependencies": {
1212
"@aws-sdk/client-cloudformation": "^3.744.0",
1313
"@aws-sdk/client-cognito-identity-provider": "^3.592.0",
14-
"@aws-sdk/client-ssm": "^3.592.0"
14+
"@aws-sdk/client-ssm": "^3.592.0",
15+
"ora": "^4.0.3"
1516
},
1617
"jest": {
1718
"collectCoverageFrom": [

packages/amplify-migration-template-gen/src/template-generator.ts

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import { tryRefactorStack } from './cfn-stack-refactor-updater';
2828
import CfnOutputResolver from './resolvers/cfn-output-resolver';
2929
import CfnDependencyResolver from './resolvers/cfn-dependency-resolver';
3030
import CfnParameterResolver from './resolvers/cfn-parameter-resolver';
31+
import ora from 'ora';
3132

3233
const CFN_RESOURCE_STACK_TYPE = 'AWS::CloudFormation::Stack';
3334
const GEN2_AMPLIFY_AUTH_LOGICAL_ID_PREFIX = 'amplifyAuth';
@@ -242,21 +243,22 @@ class TemplateGenerator {
242243
categoryTemplateGenerator: CategoryTemplateGenerator<CFN_CATEGORY_TYPE>,
243244
sourceCategoryStackId: string,
244245
): Promise<CFNTemplate | undefined> {
246+
let updatingGen1CategoryStack;
245247
try {
246248
const { newTemplate, parameters: gen1StackParameters } = await categoryTemplateGenerator.generateGen1PreProcessTemplate();
247249

248250
assert(gen1StackParameters);
249-
console.log(`Updating Gen1 ${category} stack...`);
251+
updatingGen1CategoryStack = ora(`Updating Gen1 ${category} stack...`).start();
250252

251253
const gen1StackUpdateStatus = await tryUpdateStack(this.cfnClient, sourceCategoryStackId, gen1StackParameters, newTemplate);
252254

253255
assert(gen1StackUpdateStatus === CFNStackStatus.UPDATE_COMPLETE);
254-
console.log(`Updated Gen1 ${category} stack successfully`);
256+
updatingGen1CategoryStack.succeed(`Updated Gen1 ${category} stack successfully`);
255257

256258
return newTemplate;
257259
} catch (e) {
258260
if (this.isNoResourcesError(e)) {
259-
console.log(e.message);
261+
updatingGen1CategoryStack?.succeed(`No resources found to move in Gen1 ${category} stack. Skipping update.`);
260262
return undefined;
261263
}
262264
throw e;
@@ -274,12 +276,12 @@ class TemplateGenerator {
274276
}> {
275277
const { newTemplate, oldTemplate, parameters } = await categoryTemplateGenerator.generateGen2ResourceRemovalTemplate();
276278

277-
console.log(`Updating Gen2 ${category} stack...`);
279+
const updatingGen2CategoryStack = ora(`Updating Gen2 ${category} stack...`).start();
278280

279281
const gen2StackUpdateStatus = await tryUpdateStack(this.cfnClient, destinationCategoryStackId, parameters ?? [], newTemplate);
280282

281283
assert(gen2StackUpdateStatus === CFNStackStatus.UPDATE_COMPLETE);
282-
console.log(`Updated Gen2 ${category} stack successfully`);
284+
updatingGen2CategoryStack.succeed(`Updated Gen2 ${category} stack successfully`);
283285

284286
return { newTemplate, oldTemplate, parameters };
285287
}
@@ -369,7 +371,6 @@ class TemplateGenerator {
369371
logicalIdMappingForRefactor = logicalIdMapping;
370372
} catch (e) {
371373
if (typeof e === 'object' && 'message' in e && e.message.includes(NO_RESOURCES_TO_MOVE_ERROR)) {
372-
console.log(e.message);
373374
continue;
374375
}
375376
throw e;
@@ -378,6 +379,7 @@ class TemplateGenerator {
378379

379380
assert(newSourceTemplate);
380381
assert(newDestinationTemplate);
382+
const refactorResources = ora(`Moving ${category} resources from ${this.getSourceToDestinationMessage(isRevert)} stack...`).start();
381383
const { success, failedRefactorMetadata } = await this.refactorResources(
382384
logicalIdMappingForRefactor,
383385
sourceCategoryStackId,
@@ -388,7 +390,7 @@ class TemplateGenerator {
388390
destinationTemplateForRefactor,
389391
);
390392
if (!success) {
391-
console.log(
393+
refactorResources.fail(
392394
`Moving ${category} resources from ${this.getSourceToDestinationMessage(isRevert)} stack failed. Reason: ${
393395
failedRefactorMetadata?.reason
394396
}. Status: ${failedRefactorMetadata?.status}. RefactorId: ${failedRefactorMetadata?.stackRefactorId}.`,
@@ -399,7 +401,7 @@ class TemplateGenerator {
399401
}
400402
return false;
401403
} else {
402-
console.log(`Moved ${category} resources from ${this.getSourceToDestinationMessage(isRevert)} stack successfully`);
404+
refactorResources.succeed(`Moved ${category} resources from ${this.getSourceToDestinationMessage(isRevert)} stack successfully`);
403405
}
404406
}
405407
if (!isRevert) {
@@ -435,7 +437,6 @@ class TemplateGenerator {
435437
},
436438
});
437439
}
438-
console.log(`Moving ${category} resources from ${this.getSourceToDestinationMessage(isRevert)} stack...`);
439440
const [success, failedRefactorMetadata] = await tryRefactorStack(this.cfnClient, {
440441
StackDefinitions: [
441442
{
@@ -458,10 +459,10 @@ class TemplateGenerator {
458459
gen2StackParameters: Parameter[] | undefined,
459460
oldGen2Template: CFNTemplate,
460461
) {
461-
console.log(`Rolling back Gen2 ${category} stack...`);
462+
const rollingBackGen2Stack = ora(`Rolling back Gen2 ${category} stack...`).start();
462463
const gen2StackUpdateStatus = await tryUpdateStack(this.cfnClient, gen2CategoryStackId, gen2StackParameters ?? [], oldGen2Template);
463464
assert(gen2StackUpdateStatus === CFNStackStatus.UPDATE_COMPLETE, `Gen2 Stack in a failed state: ${gen2StackUpdateStatus}.`);
464-
console.log(`Rolled back Gen2 ${category} stack successfully`);
465+
rollingBackGen2Stack.succeed(`Rolled back Gen2 ${category} stack successfully`);
465466
}
466467

467468
private async generateRefactorTemplatesForRevert(

yarn.lock

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1910,6 +1910,7 @@ __metadata:
19101910
"@aws-sdk/client-ssm": ^3.592.0
19111911
"@jest/globals": ^29.7.0
19121912
jest: ^29.5.0
1913+
ora: ^4.0.3
19131914
typescript: ^5.4.5
19141915
languageName: unknown
19151916
linkType: soft

0 commit comments

Comments
 (0)