Skip to content

Commit 29c1a79

Browse files
committed
Add the feature whitch manage to activites
1 parent e48e648 commit 29c1a79

File tree

2 files changed

+94
-10
lines changed

2 files changed

+94
-10
lines changed

lib/activity.js

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,18 @@ module.exports = {
1818
.then(() => BbPromise.resolve());
1919
},
2020

21+
createActivities() {
22+
const promises = [];
23+
_.forEach(this.deployedActivities, (value, key) => {
24+
if (value === 'notDeployed') {
25+
promises.push(key);
26+
}
27+
});
28+
return BbPromise
29+
.map(promises, (name) => this.createActivity(name))
30+
.then(() => BbPromise.resolve());
31+
},
32+
2133
deleteActivity(name) {
2234
const activity = name || this.options.name;
2335
return this.provider.request('StepFunctions',
@@ -28,6 +40,18 @@ module.exports = {
2840
.then(() => BbPromise.resolve());
2941
},
3042

43+
deleteActivities() {
44+
const promises = [];
45+
_.forEach(this.deployedActivities, (value, key) => {
46+
if (value === 'deployed') {
47+
promises.push(key);
48+
}
49+
});
50+
return BbPromise
51+
.map(promises, (name) => this.deleteActivity(name))
52+
.then(() => BbPromise.resolve());
53+
},
54+
3155
describeActivity(name) {
3256
const activity = name || this.options.name;
3357
return this.provider.request('StepFunctions',
@@ -44,6 +68,26 @@ module.exports = {
4468
});
4569
},
4670

71+
describeActivities() {
72+
const promises = [];
73+
_.forEach(this.serverless.service.stepFunctions.activities, (value) => {
74+
promises.push(value);
75+
});
76+
return BbPromise
77+
.map(promises, (name) => this.describeActivity(name))
78+
.then(() => BbPromise.resolve());
79+
},
80+
81+
checkActivitySettings() {
82+
if (!this.serverless.service.stepFunctions.activities) {
83+
const errorMessage = [
84+
'activities statement does not exists in serverless.yml',
85+
].join('');
86+
throw new this.serverless.classes.Error(errorMessage);
87+
}
88+
return BbPromise.resolve();
89+
},
90+
4791
checkActivitySetting(name) {
4892
const activity = name || this.options.name;
4993
if (this.serverless.service.stepFunctions.activities.indexOf(activity) < 0) {
@@ -52,6 +96,7 @@ module.exports = {
5296
].join('');
5397
throw new this.serverless.classes.Error(errorMessage);
5498
}
99+
return BbPromise.resolve();
55100
},
56101

57102
getActivityArn(name) {
@@ -67,4 +112,14 @@ module.exports = {
67112
return BbPromise.resolve();
68113
});
69114
},
115+
116+
getActivityArns() {
117+
const promises = [];
118+
_.forEach(this.serverless.service.stepFunctions.activities, (value) => {
119+
promises.push(value);
120+
});
121+
return BbPromise
122+
.map(promises, (name) => this.getActivityArn(name))
123+
.then(() => BbPromise.resolve());
124+
},
70125
};

lib/index.js

Lines changed: 39 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -225,15 +225,36 @@ class ServerlessStepFunctions {
225225
message += `${chalk.yellow(this.options.name)}${chalk.yellow(':')} `;
226226
message += `${this.activityArns[this.options.name]}\n`;
227227
this.serverless.cli.consoleLog(message);
228+
return BbPromise.resolve();
228229
});
229-
} else {
230-
this.serverless.cli.log(`${this.options.name} activity have already deployed`);
231230
}
231+
this.serverless.cli.log(`${this.options.name} activity have already deployed`);
232+
return BbPromise.resolve();
232233
});
233-
} else {
234-
235234
}
236-
return BbPromise.resolve();
235+
this.serverless.cli.log('Start to deploy all activities...');
236+
return BbPromise.bind(this)
237+
.then(this.yamlParse)
238+
.then(this.checkActivitySettings)
239+
.then(this.getActivityArns)
240+
.then(this.describeActivities)
241+
.then(this.createActivities)
242+
.then(() => {
243+
this.serverless.cli.log('Finish to deploy');
244+
let message = '';
245+
message += `${chalk.yellow.underline('Service Information')}\n`;
246+
message += `${chalk.yellow('service:')} ${this.service}\n`;
247+
message += `${chalk.yellow('stage:')} ${this.stage}\n`;
248+
message += `${chalk.yellow('region:')} ${this.region}\n\n`;
249+
message += `${chalk.yellow.underline('Deployed Activity ARNs')}\n`;
250+
_.forEach(this.activityArns, (value, key) => {
251+
message += `${chalk.yellow(key)}${chalk.yellow(':')} `;
252+
message += `${value}\n`;
253+
});
254+
255+
this.serverless.cli.consoleLog(message);
256+
return BbPromise.resolve();
257+
});
237258
}
238259

239260
activityRemove() {
@@ -251,14 +272,22 @@ class ServerlessStepFunctions {
251272
.then(() => {
252273
this.serverless.cli.log('Finish to remove');
253274
});
254-
} else {
255-
this.serverless.cli.log(`${this.options.name} activity is not deployed`);
256275
}
276+
this.serverless.cli.log(`${this.options.name} activity is not deployed`);
277+
return BbPromise.resolve();
257278
});
258-
} else {
259-
260279
}
261-
return BbPromise.resolve();
280+
this.serverless.cli.log('Start to remove all activities...');
281+
return BbPromise.bind(this)
282+
.then(this.yamlParse)
283+
.then(this.checkActivitySettings)
284+
.then(this.getActivityArns)
285+
.then(this.describeActivities)
286+
.then(this.deleteActivities)
287+
.then(() => {
288+
this.serverless.cli.log('Finish to remove');
289+
return BbPromise.resolve();
290+
});
262291
}
263292

264293
stateMachineDeploy() {

0 commit comments

Comments
 (0)