Skip to content

Commit

Permalink
fix: remove process on next and await (#6239)
Browse files Browse the repository at this point in the history
  • Loading branch information
ammarkarachi committed Jan 7, 2021
1 parent 1c1dda9 commit 59d4a0e
Show file tree
Hide file tree
Showing 31 changed files with 142 additions and 130 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ async function addWalkthrough(context, defaultValuesFilename, serviceMetadata) {
if (resourceName) {
const errMessage = 'Kinesis resource have already been added to your project.';
context.print.warning(errMessage);
context.usageData.emitError(new ResourceAlreadyExistsError(errMessage));
await context.usageData.emitError(new ResourceAlreadyExistsError(errMessage));
exitOnNextTick(0);
}
return configure(context, defaultValuesFilename, serviceMetadata);
Expand Down Expand Up @@ -158,7 +158,7 @@ async function updateWalkthrough(context, defaultValuesFilename, serviceMetadata
if (kinesisResources.length === 0) {
const errMessage = 'No Kinesis streams resource to update. Please use "amplify add analytics" command to create a new Kinesis stream';
context.print.error(errMessage);
context.usageData.emitError(new ResourceDoesNotExistError(errMessage));
await context.usageData.emitError(new ResourceDoesNotExistError(errMessage));
exitOnNextTick(0);
return;
} else if (kinesisResources.length === 1) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ async function addWalkthrough(context, defaultValuesFilename, serviceMetadata) {
if (resourceName) {
const errMessage = 'Pinpoint analytics have already been added to your project.';
context.print.warning(errMessage);
context.usageData.emitError(new ResourceAlreadyExistsError(errMessage));
await context.usageData.emitError(new ResourceAlreadyExistsError(errMessage));
exitOnNextTick(0);
} else {
return configure(context, defaultValuesFilename, serviceMetadata);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,11 @@ import { editSchemaFlow } from './utils/edit-schema-flow';
import { NotImplementedError, exitOnNextTick } from 'amplify-cli-core';
import { addResource as addContainer, updateResource as updateContainer } from './containers-handler';
import inquirer from 'inquirer';
import { API_TYPE, ServiceConfiguration, getPermissionPolicies as getContainerPermissionPolicies } from './service-walkthroughs/containers-walkthrough';
import {
API_TYPE,
ServiceConfiguration,
getPermissionPolicies as getContainerPermissionPolicies,
} from './service-walkthroughs/containers-walkthrough';
import { category } from '../../category-constants';

export async function console(context, service) {
Expand All @@ -19,7 +23,7 @@ export async function console(context, service) {
if (!openConsole) {
const errMessage = 'Opening console functionality not available for this option';
context.print.error(errMessage);
context.usageData.emitError(new NotImplementedError(errMessage));
await context.usageData.emitError(new NotImplementedError(errMessage));
exitOnNextTick(0);
}

Expand Down Expand Up @@ -139,7 +143,7 @@ export async function updateResource(context, category, service, options) {
hasAPIGatewayContainerResource,
hasAPIGatewayLambdaResource,
hasGraphQLAppSyncResource,
hasGraphqlContainerResource
hasGraphqlContainerResource,
} = await describeApiResourcesBySubCategory(context);

switch (service) {
Expand All @@ -157,7 +161,7 @@ export async function updateResource(context, category, service, options) {
if (hasAPIGatewayContainerResource && hasAPIGatewayLambdaResource) {
useContainerResource = await isRestContainer(context);
} else if (hasAPIGatewayContainerResource) {
useContainerResource = true
useContainerResource = true;
} else {
useContainerResource = false;
}
Expand All @@ -174,38 +178,31 @@ export async function updateResource(context, category, service, options) {
}

async function describeApiResourcesBySubCategory(context) {

const { allResources } = await context.amplify.getResourceStatus();
const resources = allResources
.filter(resource =>
resource.category === category &&
resource.mobileHubMigrated !== true
);
const resources = allResources.filter(resource => resource.category === category && resource.mobileHubMigrated !== true);

let hasAPIGatewayContainerResource = false;
let hasAPIGatewayLambdaResource = false;
let hasGraphQLAppSyncResource = false;
let hasGraphqlContainerResource = false;

resources.forEach(resource => {
hasAPIGatewayContainerResource = hasAPIGatewayContainerResource ||
(resource.service === 'ElasticContainer' && resource.apiType === API_TYPE.REST);
hasAPIGatewayContainerResource =
hasAPIGatewayContainerResource || (resource.service === 'ElasticContainer' && resource.apiType === API_TYPE.REST);

hasAPIGatewayLambdaResource = hasAPIGatewayLambdaResource ||
resource.service === 'API Gateway';
hasAPIGatewayLambdaResource = hasAPIGatewayLambdaResource || resource.service === 'API Gateway';

hasGraphQLAppSyncResource = hasGraphQLAppSyncResource ||
resource.service === 'AppSync';
hasGraphQLAppSyncResource = hasGraphQLAppSyncResource || resource.service === 'AppSync';

hasGraphqlContainerResource = hasGraphqlContainerResource ||
(resource.service === 'ElasticContainer' && resource.apiType === API_TYPE.GRAPHQL);
})
hasGraphqlContainerResource =
hasGraphqlContainerResource || (resource.service === 'ElasticContainer' && resource.apiType === API_TYPE.GRAPHQL);
});

return {
hasAPIGatewayLambdaResource,
hasAPIGatewayContainerResource,
hasGraphQLAppSyncResource,
hasGraphqlContainerResource
hasGraphqlContainerResource,
};
}

Expand All @@ -218,7 +215,7 @@ async function updateContainerResource(context, category, service, apiType: API_
if (!updateWalkthrough) {
const errMessage = 'Update functionality not available for this option';
context.print.error(errMessage);
context.usageData.emitError(new NotImplementedError(errMessage));
await context.usageData.emitError(new NotImplementedError(errMessage));
exitOnNextTick(0);
}

Expand All @@ -236,7 +233,7 @@ async function updateNonContainerResource(context, category, service) {
if (!updateWalkthrough) {
const errMessage = 'Update functionality not available for this option';
context.print.error(errMessage);
context.usageData.emitError(new NotImplementedError(errMessage));
await context.usageData.emitError(new NotImplementedError(errMessage));
exitOnNextTick(0);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ export async function updateWalkthrough(context, defaultValuesFilename) {
if (resources.length === 0) {
const errMessage = 'No REST API resource to update. Please use "amplify add api" command to create a new REST API';
context.print.error(errMessage);
context.usageData.emitError(new ResourceDoesNotExistError(errMessage));
await context.usageData.emitError(new ResourceDoesNotExistError(errMessage));
exitOnNextTick(0);
return;
}
Expand Down Expand Up @@ -80,7 +80,7 @@ export async function updateWalkthrough(context, defaultValuesFilename) {
if (updateApi.resourceName === 'AdminQueries') {
const errMessage = `The Admin Queries API is maintained through the Auth category and should be updated using 'amplify update auth' command`;
context.print.warning(errMessage);
context.usageData.emitError(new ResourceDoesNotExistError(errMessage));
await context.usageData.emitError(new ResourceDoesNotExistError(errMessage));
exitOnNextTick(0);
}

Expand Down Expand Up @@ -802,9 +802,10 @@ export const openConsole = async (context: $TSContext) => {

const restApis = Object.keys(categoryAmplifyMeta).filter(resourceName => {
const resource = categoryAmplifyMeta[resourceName];
return resource.output &&
(resource.service === serviceName ||
(resource.service === elasticContainerServiceName && resource.apiType === 'REST'))
return (
resource.output &&
(resource.service === serviceName || (resource.service === elasticContainerServiceName && resource.apiType === 'REST'))
);
});

if (restApis) {
Expand All @@ -813,43 +814,48 @@ export const openConsole = async (context: $TSContext) => {

if (restApis.length > 1) {
({ selectedApi } = await inquirer.prompt({
type: "list",
name: "selectedApi",
type: 'list',
name: 'selectedApi',
choices: restApis,
message: "Please select the API"
message: 'Please select the API',
}));
}
const selectedResource = categoryAmplifyMeta[selectedApi];

if (selectedResource.service === serviceName) {
const { output: { ApiId } } = selectedResource;
const {
output: { ApiId },
} = selectedResource;

url = `https://${Region}.console.aws.amazon.com/apigateway/home?region=${Region}#/apis/${ApiId}/resources/`;

} else { // Elastic Container API
const { output: { PipelineName, ServiceName, ClusterName } } = selectedResource;
const codePipeline = "CodePipeline";
const elasticContainer = "ElasticContainer"
} else {
// Elastic Container API
const {
output: { PipelineName, ServiceName, ClusterName },
} = selectedResource;
const codePipeline = 'CodePipeline';
const elasticContainer = 'ElasticContainer';

const { selectedConsole } = await inquirer.prompt({
name: "selectedConsole",
message: "Which console you want to open",
type: "list",
choices: [{
name: "Elastic Container Service (Deployed container status)",
value: elasticContainer
}, {
name: "CodePipeline (Container build status)",
value: codePipeline
}]
name: 'selectedConsole',
message: 'Which console you want to open',
type: 'list',
choices: [
{
name: 'Elastic Container Service (Deployed container status)',
value: elasticContainer,
},
{
name: 'CodePipeline (Container build status)',
value: codePipeline,
},
],
});

if (selectedConsole === elasticContainer) {
url = `https://console.aws.amazon.com/ecs/home?region=${Region}#/clusters/${ClusterName}/services/${ServiceName}/details`

url = `https://console.aws.amazon.com/ecs/home?region=${Region}#/clusters/${ClusterName}/services/${ServiceName}/details`;
} else if (selectedConsole === codePipeline) {
url = `https://${Region}.console.aws.amazon.com/codesuite/codepipeline/pipelines/${PipelineName}/view`

url = `https://${Region}.console.aws.amazon.com/codesuite/codepipeline/pipelines/${PipelineName}/view`;
} else {
context.print.error('Option not available');
return;
Expand All @@ -860,4 +866,4 @@ export const openConsole = async (context: $TSContext) => {
} else {
context.print.error('There are no REST APIs pushed to the cloud');
}
};
};
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ async function serviceWalkthrough(context, defaultValuesFilename, datasourceMeta
const errMessage =
'You must create an AppSync API in your project before adding a graphql datasource. Please use "amplify api add" to create the API.';
context.print.error(errMessage);
context.usageData.emitError(new ResourceDoesNotExistError(errMessage));
await context.usageData.emitError(new ResourceDoesNotExistError(errMessage));
exitOnNextTick(0);
}

Expand All @@ -35,7 +35,7 @@ async function serviceWalkthrough(context, defaultValuesFilename, datasourceMeta
const errMessage =
'You must create an AppSync API in your project before adding a graphql datasource. Please use "amplify api add" to create the API.';
context.print.error(errMessage);
context.usageData.emitError(new ResourceDoesNotExistError(errMessage));
await context.usageData.emitError(new ResourceDoesNotExistError(errMessage));
exitOnNextTick(0);
}

Expand Down Expand Up @@ -97,7 +97,7 @@ async function selectCluster(context, inputs, AWS) {
}
const errMessage = 'No properly configured Aurora Serverless clusters found.';
context.print.error(errMessage);
context.usageData.emitError(new ResourceDoesNotExistError(errMessage));
await context.usageData.emitError(new ResourceDoesNotExistError(errMessage));
exitOnNextTick(0);
}

Expand Down Expand Up @@ -149,7 +149,7 @@ async function getSecretStoreArn(context, inputs, clusterResourceId, AWS) {
} else {
const errMessage = 'No RDS access credentials found in the AWS Secrect Manager.';
context.print.error(errMessage);
context.usageData.emitError(new ResourceCredentialsNotFoundError(errMessage));
await context.usageData.emitError(new ResourceCredentialsNotFoundError(errMessage));
exitOnNextTick(0);
}
}
Expand Down Expand Up @@ -194,7 +194,7 @@ async function selectDatabase(context, inputs, clusterArn, secretArn, AWS) {

const errMessage = 'No properly configured databases found.';
context.print.error(errMessage);
context.usageData.emitError(new ResourceDoesNotExistError(errMessage));
await context.usageData.emitError(new ResourceDoesNotExistError(errMessage));
exitOnNextTick(0);
}

Expand Down

0 comments on commit 59d4a0e

Please sign in to comment.