Commit graph

614 commits

Author SHA1 Message Date
Kegsay
2a9abefd92 Add more syncserver tests ()
Fixed exactly the same bug as before, but this time for incremental
sync. Yay tests!
2017-05-11 15:51:35 +01:00
Kegsay
a506985a66 Allow multiple sync server test requests ()
- 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 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 ()
* 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 () 2017-05-09 15:58:31 +01:00
Kegsay
42564e8ed6 Factor out creating/deleting/writing to kafka topics () 2017-05-09 09:05:05 +01:00
Kegsay
801b9246ce Add basic sync server integration test () 2017-05-05 17:59:45 +01:00
Mark Haines
a56f609b74 Update gomatrixserverlib () 2017-05-05 17:43:42 +01:00
Mark Haines
0309035aad Update gomatrixserverlib () 2017-05-05 16:19:48 +01:00
Robert Swain
a1ce351d36 Merge pull request 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 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 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 () 2017-04-20 17:15:34 +01:00
Kegsay
2fadb9e409 Make it possible to point Riot at Dendrite () 2017-04-20 17:11:53 +01:00
Mark Haines
43d1e94e75 Rename dendrite-sync-server to dendrite-syncserver for consistency () 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 () 2017-04-20 14:00:34 +01:00
Kegsay
fad7e9541b /sync: Handle missing state events and return events in the correct order () 2017-04-20 11:18:26 +01:00
Kegsay
92a0325266 Implement incremental sync ()
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 ()
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 () 2017-04-13 16:56:46 +01:00
Kegsay
203e706b99 Move syncserver to its own directory () 2017-04-12 16:06:26 +01:00
Kegsay
da0fffcc19 Add /sync API response structs () 2017-04-11 11:52:26 +01:00
Kegsay
9a266762b4 Return events based on 'since' value () 2017-04-10 15:12:18 +01:00
Kegsay
de9e3e5417 Add structs for HTTP long-polling () 2017-04-07 14:32:42 +01:00
Kegsay
c1c837516a Store current room state () 2017-04-05 10:30:13 +01:00
Kegsay
a3c66f7fa0 Write OutputRoomEvents into the database and remember the arrival order () 2017-03-30 15:29:23 +01:00
Kegsay
2d2c7e7169 sync-server config: Read from a YAML file rather than hard-coded variables () 2017-03-29 14:09:27 +01:00
Kegsay
a423008987 Read roomserver output log and remember position across restarts () 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 () 2017-03-27 10:00:28 +01:00
Mark Haines
e3f3eb8f3d Add metrics for the various ways of calculating room state () 2017-03-23 14:14:25 +00:00
Kegsay
e347aa05fe Make a dendrite-sync-server binary ()
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