Kegsay
cc7117392f
Send the entire room state down when transitioning to 'join' on a /sync response ( #100 )
...
This is only 'mostly' correct currently, because what should be no-op dupe
joins will actually trigger the entire room state to be re-sent.
Bizarrely, it's significantly easier to just do that than work out if we should,
and there are no client-visible effects to doing so, so we just do it for now.
2017-05-12 16:56:17 +01:00
Kegsay
2a9abefd92
Add more syncserver tests ( #99 )
...
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 ( #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
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
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
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
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
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
Kegsay
83b9cfeb2b
Move binaries to /cmd ( #46 )
2017-03-21 17:14:17 +00:00
Kegsay
346f5d6334
Use gomatrixserverlib.StateKeyTuple and helper functions for auth ( #44 )
...
* Update gomatrixserverib dep
* Use helper functions when creating rooms
* Use gomatrixserverlib.StateKeyTuple
2017-03-17 16:28:15 +00:00
Mark Haines
44c63254a7
Tool for writing messages to a single partition in kafka. ( #43 )
2017-03-17 16:27:45 +00:00
Mark Haines
ac66d07177
Add option to stop processing input after a given number of messages ( #38 )
...
* Add option to stop processing input after a given number of messages
2017-03-17 13:01:07 +00:00
Kegsay
a7390953dd
Implement /state event sending ( #41 )
2017-03-17 11:21:52 +00:00