Commit Graph

613 Commits

Author SHA1 Message Date
Kegsay
a506985a66 Allow multiple sync server test requests (#98)
- Test data for the sync server is now in its own file.
- Rejig the sync server tests to support multiple /sync requests and corresponding
  assertions.
- Fixed a minor bug which resulted in state events to appear twice in /sync
  responses when syncing without a `since` parameter.
2017-05-10 17:48:35 +01:00
Robert Swain
cdd2617f8e Merge pull request #97 from matrix-org/rob/util-logging-context-fix
Update github.com/matrix-org/util for request context fix for logging
2017-05-10 15:56:49 +02:00
Robert Swain
042d636e34 Update github.com/matrix-org/util for request context fix for logging 2017-05-10 15:43:58 +02:00
Kegsay
04f3c154b8 Split out notifying /sync requests and calculating sync responses (#96)
* Split out notifying /sync requests and calculating sync responses

The logic for notifying /sync requests is about to get really
complicated as we optimise when to wake up requests, so split
out that code into a separate struct to isolate it and make
it easier to unit test.
2017-05-10 10:42:00 +01:00
Kegsay
e226d564ec Fix a race with sync server integration tests (#95) 2017-05-09 15:58:31 +01:00
Kegsay
42564e8ed6 Factor out creating/deleting/writing to kafka topics (#94) 2017-05-09 09:05:05 +01:00
Kegsay
801b9246ce Add basic sync server integration test (#91) 2017-05-05 17:59:45 +01:00
Mark Haines
a56f609b74 Update gomatrixserverlib (#90) 2017-05-05 17:43:42 +01:00
Mark Haines
0309035aad Update gomatrixserverlib (#89) 2017-05-05 16:19:48 +01:00
Robert Swain
a1ce351d36 Merge pull request #75 from matrix-org/rob/common-logging
Improve logging configuration
2017-04-21 17:48:17 +02:00
Robert Swain
9b7defd375 common/log: Always log to stderr 2017-04-21 02:11:24 +02:00
Robert Swain
27beb8a2b3 common/log: Re-colorize terminal log output 2017-04-21 02:06:06 +02:00
Robert Swain
9b7bf8cba8 common/log: Add license header 2017-04-21 01:45:18 +02:00
Robert Swain
b33ed93dd6 Merge branch 'master' into rob/common-logging 2017-04-21 01:43:36 +02:00
Matthew Hodgson
0391a790a6 Merge pull request #80 from matrix-org/rob/license-headers
Add Apache Version 2.0 license and headers to all golang files
2017-04-20 23:54:27 +01:00
Robert Swain
d09a65abbe Add Apache Version 2.0 license and headers to all golang files 2017-04-21 00:40:52 +02:00
Robert Swain
d03126c546 Merge pull request #79 from matrix-org/rob/consistent-naming
Improve naming consistency
2017-04-21 00:20:27 +02:00
Robert Swain
19c9a0c7a5 travis-test.sh: Fix import path of room server 2017-04-20 19:21:15 +02:00
Robert Swain
e281fc4530 syncserver: Rename to syncapi 2017-04-20 19:21:15 +02:00
Robert Swain
d8b98cec44 client-api-proxy: roomserver-integration-tests: Fix renamed references 2017-04-20 19:21:15 +02:00
Robert Swain
0939ae3686 Rename dendrite-syncserver to dendrite-sync-api-server 2017-04-20 19:21:15 +02:00
Robert Swain
209ba3f6a3 Rename dendrite-roomserver to dendrite-room-server 2017-04-20 19:21:15 +02:00
Robert Swain
2278848922 Rename dendrite-clientapi to dendrite-client-api-server 2017-04-20 19:21:15 +02:00
Kegan Dougal
2a264db85e Don't tightloop if currentPos is 0 2017-04-20 18:01:45 +01:00
Kegsay
cb5081b332 Yank out clientapi config options to env vars for now (#77) 2017-04-20 17:15:34 +01:00
Kegsay
2fadb9e409 Make it possible to point Riot at Dendrite (#74) 2017-04-20 17:11:53 +01:00
Mark Haines
43d1e94e75 Rename dendrite-sync-server to dendrite-syncserver for consistency (#76) 2017-04-20 16:54:22 +01:00
Robert Swain
be47984c43 common/log: Always output timestamps as UTC 2017-04-20 17:16:16 +02:00
Robert Swain
f65e26bc2a cmd: Configure logging before any log messages 2017-04-20 16:28:15 +02:00
Robert Swain
254e61f727 common/log: Switch to RFC3339 format with nanoseconds and trailing zeros 2017-04-20 16:28:15 +02:00
Robert Swain
e8d2d61cc2 cmd: common/log: Always configure logging
When LOG_DIR or so is not specified, just configure the formatter.
2017-04-20 16:27:48 +02:00
Robert Swain
8010083026 dendrite/common: Move logrus configuration to common 2017-04-20 16:27:44 +02:00
Kegsay
db428174d2 tool: Add client-api-proxy (#73) 2017-04-20 14:00:34 +01:00
Kegsay
fad7e9541b /sync: Handle missing state events and return events in the correct order (#72) 2017-04-20 11:18:26 +01:00
Kegsay
92a0325266 Implement incremental sync (#71)
This has the following known shortcomings:
 - It doesn't handle missing events not in the from/to range.
 - It doesn't order events in the timeline correctly.
 - It doesn't handle invited/left rooms at all.
 - There is no intelligent wakeup logic: events for Bob will wake up Alice's stream.
2017-04-19 16:04:01 +01:00
Kegsay
f18d935134 Factor out syncRequest parsing to its own file (#70)
Also ensure every sync response has a `next_batch` token by forcing
it in the constructor, as previously timeouts would not have a token.
2017-04-18 10:32:32 +01:00
Kegsay
53ec4a255b Calculate the complete /sync response (#69) 2017-04-13 16:56:46 +01:00
Kegsay
203e706b99 Move syncserver to its own directory (#66) 2017-04-12 16:06:26 +01:00
Kegsay
da0fffcc19 Add /sync API response structs (#58) 2017-04-11 11:52:26 +01:00
Kegsay
9a266762b4 Return events based on 'since' value (#57) 2017-04-10 15:12:18 +01:00
Kegsay
de9e3e5417 Add structs for HTTP long-polling (#56) 2017-04-07 14:32:42 +01:00
Kegsay
c1c837516a Store current room state (#55) 2017-04-05 10:30:13 +01:00
Kegsay
a3c66f7fa0 Write OutputRoomEvents into the database and remember the arrival order (#54) 2017-03-30 15:29:23 +01:00
Kegsay
2d2c7e7169 sync-server config: Read from a YAML file rather than hard-coded variables (#53) 2017-03-29 14:09:27 +01:00
Kegsay
a423008987 Read roomserver output log and remember position across restarts (#52) 2017-03-29 14:05:43 +01:00
Kegan Dougal
7ab0436689 Add yaml dependency 2017-03-27 13:05:46 +01:00
Kegsay
a974b90ee9 Factor out Consumer from the roomserver (#50) 2017-03-27 10:00:28 +01:00
Mark Haines
e3f3eb8f3d Add metrics for the various ways of calculating room state (#49) 2017-03-23 14:14:25 +00:00
Kegsay
e347aa05fe Make a dendrite-sync-server binary (#48)
Currently the HTTP handlers are attached to an API mux which is created inside
Setup(). In the future, we'll want to split this out so a single mux can have
both sync and clientapi handlers attached to it.
2017-03-22 17:39:08 +00:00
Kegsay
d6a03039dc Prefix 'dendrite-' onto dendrite binaries (#47)
This distinguishes them from tools like 'kafka-producer'
which are not required to run a dendrite server.

The prefix also groups together the dendrite binaries nicely
on `ls` as well as making it nicer to tab-complete.
2017-03-21 17:43:13 +00:00