mirror of
https://github.com/serverless/serverless.git
synced 2026-01-25 15:07:39 +00:00
Add resource count and warning to info display
This commit is contained in:
parent
c7ac0bdd68
commit
39b62d96b7
@ -12,7 +12,15 @@ module.exports = {
|
||||
message += `${chalk.yellow('service:')} ${info.service}\n`;
|
||||
message += `${chalk.yellow('stage:')} ${info.stage}\n`;
|
||||
message += `${chalk.yellow('region:')} ${info.region}\n`;
|
||||
message += `${chalk.yellow('stack:')} ${info.stack}`;
|
||||
message += `${chalk.yellow('stack:')} ${info.stack}\n`;
|
||||
message += `${chalk.yellow('resources:')} ${info.resourceCount}`;
|
||||
|
||||
if (info.resourceCount >= 150) {
|
||||
message += `\n${chalk.red('WARNING:')}\n`;
|
||||
message += ` You have ${info.resourceCount} resources in your service.\n`;
|
||||
message += ' CloudFormation has a hard limit of 200 resources in a service.\n';
|
||||
message += ' For advice on avoiding this limit, check out this link: http://bit.ly/2IiYB38.';
|
||||
}
|
||||
|
||||
this.serverless.cli.consoleLog(message);
|
||||
return message;
|
||||
|
||||
@ -32,6 +32,7 @@ describe('#display()', () => {
|
||||
endpoint: null,
|
||||
functions: [],
|
||||
apiKeys: [],
|
||||
resourceCount: 10,
|
||||
},
|
||||
};
|
||||
consoleLogStub = sinon.stub(serverless.cli, 'consoleLog').returns();
|
||||
@ -48,7 +49,8 @@ describe('#display()', () => {
|
||||
expectedMessage += `${chalk.yellow('service:')} my-first\n`;
|
||||
expectedMessage += `${chalk.yellow('stage:')} dev\n`;
|
||||
expectedMessage += `${chalk.yellow('region:')} eu-west-1\n`;
|
||||
expectedMessage += `${chalk.yellow('stack:')} my-first-dev`;
|
||||
expectedMessage += `${chalk.yellow('stack:')} my-first-dev\n`;
|
||||
expectedMessage += `${chalk.yellow('resources:')} 10`;
|
||||
|
||||
const message = awsInfo.displayServiceInfo();
|
||||
expect(consoleLogStub.calledOnce).to.equal(true);
|
||||
|
||||
19
lib/plugins/aws/info/getResourceCount.js
Normal file
19
lib/plugins/aws/info/getResourceCount.js
Normal file
@ -0,0 +1,19 @@
|
||||
'use strict';
|
||||
|
||||
const BbPromise = require('bluebird');
|
||||
|
||||
module.exports = {
|
||||
getResourceCount() {
|
||||
const stackName = this.provider.naming.getStackName();
|
||||
|
||||
return this.provider.request('CloudFormation',
|
||||
'listStackResources',
|
||||
{ StackName: stackName })
|
||||
.then((result) => {
|
||||
if (result) {
|
||||
this.gatheredData.info.resourceCount = result.StackResourceSummaries.length;
|
||||
}
|
||||
return BbPromise.resolve();
|
||||
});
|
||||
},
|
||||
};
|
||||
@ -3,6 +3,7 @@
|
||||
const BbPromise = require('bluebird');
|
||||
const validate = require('../lib/validate');
|
||||
const getStackInfo = require('./getStackInfo');
|
||||
const getResourceCount = require('./getResourceCount');
|
||||
const getApiKeyValues = require('./getApiKeyValues');
|
||||
const display = require('./display');
|
||||
|
||||
@ -15,6 +16,7 @@ class AwsInfo {
|
||||
this,
|
||||
validate,
|
||||
getStackInfo,
|
||||
getResourceCount,
|
||||
getApiKeyValues,
|
||||
display
|
||||
);
|
||||
@ -54,6 +56,7 @@ class AwsInfo {
|
||||
|
||||
'aws:info:gatherData': () => BbPromise.bind(this)
|
||||
.then(this.getStackInfo)
|
||||
.then(this.getResourceCount)
|
||||
.then(this.getApiKeyValues),
|
||||
|
||||
'aws:info:displayServiceInfo': () => BbPromise.bind(this)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user