From 24a8b3da36a1f8c6364aca194160fc4f3aa5126b Mon Sep 17 00:00:00 2001 From: Petr Pchelko Date: Wed, 17 Jul 2019 16:29:35 -0700 Subject: [PATCH] Switch event destination to eventgate. Bug: T226522 Change-Id: I903d83bfd52e8aca31fa38e063bcd12d07a59456 --- config.frontend.test.yaml | 4 ++-- config.fullstack.test.yaml | 4 ++-- sys/events.js | 23 +++++++---------------- test/features/events/events.js | 8 ++++---- 4 files changed, 15 insertions(+), 24 deletions(-) diff --git a/config.frontend.test.yaml b/config.frontend.test.yaml index 5b0284026..7649648d7 100644 --- a/config.frontend.test.yaml +++ b/config.frontend.test.yaml @@ -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? diff --git a/config.fullstack.test.yaml b/config.fullstack.test.yaml index 8c3692ef6..202560090 100644 --- a/config.fullstack.test.yaml +++ b/config.fullstack.test.yaml @@ -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 diff --git a/sys/events.js b/sys/events.js index 1371ed4f2..08bb9304b 100644 --- a/sys/events.js +++ b/sys/events.js @@ -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(() => { @@ -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) => { @@ -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(); @@ -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', diff --git a/test/features/events/events.js b/test/features/events/events.js index dfe338a5a..50ca2bccb 100644 --- a/test/features/events/events.js +++ b/test/features/events/events.js @@ -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) { @@ -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' }); @@ -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' }); @@ -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' });