Skip to content
This repository was archived by the owner on Dec 9, 2024. It is now read-only.

Commit be5a3a7

Browse files
committed
Fixed alarm annotations of trigger can not be saved
1 parent 84ca5ac commit be5a3a7

File tree

2 files changed

+74
-24
lines changed

2 files changed

+74
-24
lines changed

deploy/lib/deployTriggers.js

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,26 +9,21 @@ module.exports = {
99
this.serverless.cli.log(`Deploying Trigger: ${trigger.triggerName}`);
1010
}
1111

12-
const feed = this.getFeed(trigger)
13-
if (feed) {
14-
Object.assign(trigger, { annotations: [{ key: 'feed', value: feed }] });
15-
}
16-
1712
return ow.triggers.create(trigger)
18-
.then(() => {
13+
.then(() => {
1914
if (this.options.verbose) {
2015
this.serverless.cli.log(`Deployed Trigger: ${trigger.triggerName}`);
2116
}
2217
}).catch(err => {
23-
throw new this.serverless.classes.Error(
24-
`Failed to deploy trigger (${trigger.triggerName}) due to error: ${err.message}`
25-
);
26-
})
18+
throw new this.serverless.classes.Error(
19+
`Failed to deploy trigger (${trigger.triggerName}) due to error: ${err.message}`
20+
);
21+
});
2722
});
2823
},
2924

3025
deployTriggers() {
31-
const triggers = this.getTriggers();
26+
const triggers = this.getTriggers(this.serverless.service.triggers);
3227

3328
if(triggers.length) {
3429
this.serverless.cli.log('Deploying Triggers...');
@@ -39,14 +34,22 @@ module.exports = {
3934
);
4035
},
4136

42-
getTriggers() {
43-
const triggers = this.serverless.service.triggers;
44-
const trigger = { feed: undefined };
37+
getTriggers(triggers) {
38+
const feedMask = { feed: undefined };
4539
return Object.keys(triggers)
46-
.map(t => Object.assign({}, triggers[t], trigger));
47-
},
48-
49-
getFeed(trigger) {
50-
return trigger.feed;
40+
.map(t => {
41+
const trigger = triggers[t];
42+
if (trigger.feed) {
43+
Object.assign(trigger, {
44+
trigger: {
45+
annotations: [{
46+
key: 'feed',
47+
value: `/${trigger.feed.namespace}/${trigger.feed.feedName}`,
48+
}],
49+
},
50+
});
51+
}
52+
return Object.assign(trigger, feedMask);
53+
});
5154
},
5255
};

deploy/tests/deployTriggers.js

Lines changed: 52 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,59 @@ describe('deployTriggers', () => {
1717
myTrigger: {
1818
triggerName: 'myTrigger',
1919
namespace: 'myNamespace',
20-
action: 'myAction',
21-
trigger: 'myTrigger',
2220
},
2321
feedTrigger: {
22+
triggerName: 'feedTrigger',
23+
namespace: 'feedNamespace',
24+
trigger: {
25+
annotations: [
26+
{
27+
key: 'feed',
28+
value: '/whisk.system/alarms/alarm'
29+
}
30+
]
31+
},
32+
},
33+
},
34+
serviceTriggers: {
35+
myTrigger: {
2436
triggerName: 'myTrigger',
2537
namespace: 'myNamespace',
26-
action: 'myAction',
27-
trigger: 'myTrigger',
28-
feed: '/whisk.system/alarms/alarm',
38+
},
39+
feedTrigger: {
40+
triggerName: 'feedTrigger',
41+
namespace: 'feedNamespace',
42+
feed: {
43+
trigger : '/feedNamespace/feedTrigger',
44+
feedName: 'alarms/alarm',
45+
namespace: 'whisk.system',
46+
params: {
47+
cron: '* * * * *',
48+
trigger_payload: {}
49+
}
50+
}
2951
},
3052
},
53+
owTriggers: [
54+
{
55+
triggerName: 'myTrigger',
56+
namespace: 'myNamespace',
57+
feed: undefined
58+
},
59+
{
60+
triggerName: 'feedTrigger',
61+
namespace: 'feedNamespace',
62+
trigger: {
63+
annotations: [
64+
{
65+
key: 'feed',
66+
value: '/whisk.system/alarms/alarm'
67+
}
68+
],
69+
},
70+
feed: undefined
71+
},
72+
],
3173
};
3274

3375
beforeEach(() => {
@@ -108,5 +150,10 @@ describe('deployTriggers', () => {
108150
return expect(openwhiskDeploy.deployTrigger(mockTriggerObject.triggers.feedTrigger))
109151
.to.eventually.be.fulfilled;
110152
});
153+
154+
it('should change the trigger format to match the ow.', () => {
155+
expect(openwhiskDeploy.getTriggers(mockTriggerObject.serviceTriggers))
156+
.to.be.deep.equal(mockTriggerObject.owTriggers)
157+
});
111158
});
112159
});

0 commit comments

Comments
 (0)