Skip to content

Commit

Permalink
Merge 24a8b3d into bdc4029
Browse files Browse the repository at this point in the history
  • Loading branch information
Pchelolo committed Jul 17, 2019
2 parents bdc4029 + 24a8b3d commit a16ee71
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 24 deletions.
4 changes: 2 additions & 2 deletions config.frontend.test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -139,8 +139,8 @@ testing_project: &testing_project
options:
events:
uri: http://127.0.0.1:8085/v1/events
topic: resource_change
transcludes_topic: change-prop.transcludes.resource-change
stream: resource_change
transcludes_stream: change-prop.transcludes.resource-change
/{api:sys}: *default_sys

# Hacky way to parametrize RESTBase tests. TODO: Move to config?
Expand Down
4 changes: 2 additions & 2 deletions config.fullstack.test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -177,8 +177,8 @@ testing_project: &testing_project
options:
events:
uri: http://127.0.0.1:8085/v1/events
topic: resource_change
transcludes_topic: change-prop.transcludes.resource-change
stream: resource_change
transcludes_stream: change-prop.transcludes.resource-change
- path: projects/proxy.yaml
options: *proxy_options
/{api:sys}: *default_sys
Expand Down
23 changes: 7 additions & 16 deletions sys/events.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,11 @@ const uuidv1 = require('uuid/v1');

class EventService {
constructor(options) {
if (options && options.eventlogging_service) {
// TODO: remove eventually
// keep compat with old config
options = options.eventlogging_service;
}
if (options && options.purge) {
// TODO: remove eventually
// disregard old-config purge stanzas
options.purge = undefined;
}
this.options = options;
}

emitEvent(hyper, req) {
if (!(this.options && this.options.uri && this.options.topic)) {
if (!(this.options && this.options.uri && this.options.stream)) {
return { status: 200 };
}
return P.try(() => {
Expand All @@ -30,10 +20,10 @@ class EventService {
let triggeredBy = req.headers && req.headers['x-triggered-by'] ||
hyper._rootReq && hyper._rootReq.headers &&
hyper._rootReq.headers['x-triggered-by'];
let topic = this.options.topic;
if (triggeredBy && this.options.transcludes_topic &&
let stream = this.options.stream;
if (triggeredBy && this.options.transcludes_stream &&
/transcludes/.test(triggeredBy)) {
topic = this.options.transcludes_topic;
stream = this.options.transcludes_stream;
}

let events = req.body.map((event) => {
Expand All @@ -44,8 +34,9 @@ class EventService {
});
return undefined;
}
event.$schema = '/resource_change/1.0.0';
event.meta.uri = `http:${event.meta.uri}`;
event.meta.topic = topic;
event.meta.stream = stream;
event.meta.request_id = hyper.reqId;
event.meta.id = uuidv1();
event.meta.dt = new Date().toISOString();
Expand All @@ -62,7 +53,7 @@ class EventService {
if (triggeredBy) {
triggeredBy = triggeredBy.replace(/https?:/g, '');
events = events.filter((event) => {
const eventId = `${event.meta.topic}:${event.meta.uri.replace(/^https?:/, '')}`;
const eventId = `${event.meta.stream}:${event.meta.uri.replace(/^https?:/, '')}`;
if (triggeredBy.indexOf(eventId) !== -1) {
hyper.logger.log('error/events/rerender_loop', {
message: 'Rerender loop detected',
Expand Down
8 changes: 4 additions & 4 deletions test/features/events/events.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ describe('Change event emitting', () => {
assert.deepEqual(!!new Date(event.meta.dt), true);
assert.deepEqual(uuidUtils.test(event.meta.id), true);
assert.deepEqual(uuidUtils.test(event.meta.request_id), true);
assert.deepEqual(event.meta.topic, eventOptions.topic);
assert.deepEqual(event.meta.stream, eventOptions.stream);
assert.deepEqual(event.meta.uri, eventOptions.uri);
assert.deepEqual(event.tags, ['test', 'restbase']);
if (eventOptions.trigger) {
Expand Down Expand Up @@ -70,7 +70,7 @@ describe('Change event emitting', () => {
}

eventLogging = createEventLogging(really_done, {
topic: 'resource_change',
stream: 'resource_change',
uri: 'http://fake.wikipedia.org/wiki/User:Pchelolo'
});

Expand Down Expand Up @@ -109,7 +109,7 @@ describe('Change event emitting', () => {
}

eventLogging = createEventLogging(really_done, {
topic: 'change-prop.transcludes.resource-change',
stream: 'change-prop.transcludes.resource-change',
uri: 'http://fake.wikipedia.org/api/rest_v1/page/html/User:Pchelolo',
trigger: 'mediawiki.revision-create:https://en.wikimedia.org/wiki/Template:One,change-prop.transcludes.resource-change:https://fake.wikipedia.org/wiki/User:Pchelolo'
});
Expand Down Expand Up @@ -148,7 +148,7 @@ describe('Change event emitting', () => {
}

eventLogging = createEventLogging(really_done, {
topic: 'resource_change',
stream: 'resource_change',
uri: 'http://fake.wikipedia.org/wiki/User:Pchelolo',
trigger: 'resource_change:https://fake.wikipedia.org/wiki/Prohibited'
});
Expand Down

0 comments on commit a16ee71

Please sign in to comment.