Conversation
|
Can one of the admins verify this patch? |
1 similar comment
|
Can one of the admins verify this patch? |
4a70fcb to
3976352
Compare
|
|
||
|
|
||
| class MediaLimitsResource(Resource): | ||
| # isLeaf = True |
There was a problem hiding this comment.
Oh. I had no idea what it was for and forgot to ask. So errm, what is it for?
There was a problem hiding this comment.
| Resource.__init__(self) | ||
| self.limits_dict = {} | ||
| config = hs.get_config() | ||
| self.limits_dict["upload_size"] = config.max_upload_size |
There was a problem hiding this comment.
I'd write this as:
def __init__(self, hs):
Resource.__init__(self)
config = hs.get_config()
self.limits_dict = {
"upload_size": config.max_upload_size,
}| Resource.__init__(self) | ||
| config = hs.get_config() | ||
| self.limits_dict = { | ||
| "upload_size": config.max_upload_size, |
There was a problem hiding this comment.
You can shorten it by s/config/hs.get_config()/ as you do not store config somewhere.
But that I think that is personal preference...
There was a problem hiding this comment.
Eh, the reason for this was to leave it open for more configuration options in the future. Personally I'd be fine with your suggestion if I was only planning to use it once.
But uh, I could go either way with this.
| Resource.__init__(self) | ||
| config = hs.get_config() | ||
| self.limits_dict = { | ||
| "upload_size": config.max_upload_size, |
| self.putChild("preview_url", PreviewUrlResource( | ||
| hs, media_repo, media_repo.media_storage, | ||
| )) | ||
| self.putChild("limits", MediaLimitsResource(hs)) |
|
Is this a smidge more merge-able now matrix-org/matrix-spec-proposals#1189 is a thing? |
|
|
||
| def render_GET(self, request): | ||
| respond_with_json(request, 200, self.limits_dict, send_cors=True) | ||
| return NOT_DONE_YET |
There was a problem hiding this comment.
Presumably we shouldn't be returning NOT_DONE_YET if we have actually finished the request.
@hawkowl how is this meant to work in twisted?
There was a problem hiding this comment.
I'm pretty sure this is correct. Your options for returning from a render_* method are:
- return a
bytes, which twisted will then render as the body and callrequest.finish() - return
NOT_DONE_YET, which skips the above two.
the implication is that if you have rendered the body and called finish() yourself, you should call NOT_DONE_YET.
Note that this is exactly what happens with a whole bunch of our handlers that look like they are asynchronous, but actually complete synchronously.
HOWEVER. There is a problem here, in that wrap_json_request_handler does important things (1: adds exception handling, though that may be moot here; 2: adds logging). So, can haz wrap_json_request_handler please?
|
Other than weirdness about |
| "m.upload.size": config.max_upload_size, | ||
| } | ||
|
|
||
| @wrap_json_request_handler |
There was a problem hiding this comment.
hum; does this actually work?
the docstring on wrap_json_request_handler says:
The handler method must have a signature of "handle_foo(self, request)",
where "self" must have a "clock" attribute (and "request" must be a
SynapseRequest).
I don't think the first is true. You might need a self.clock = hs.get_clock() in the constructor.
|
retest this please |
|
Looks like a 500 on the endpoint. I'll fix. |
| @@ -0,0 +1 @@ | |||
| Add /_media/r0/config | |||
There was a problem hiding this comment.
I guess this won't mean much to the average reader of the synapse changelog. You probably need to say it's a new endpoint for clients. A link to the proposal might help.
|
|
||
| @wrap_json_request_handler | ||
| def _async_render_GET(self, request): | ||
| return respond_with_json(request, 200, self.limits_dict) |
|
@matrixbot retest this please |
|
@matrixbot retest this please |
|
Tests are now passing for this endpoint so I don't know why the other tests are upset. |
|
@matrixbot retest this please |
|
(they were failing due to outdated sytest) |
|
retest this please SRSLY |
|
Thanks! |
Features -------- - Add support for the SNI extension to federation TLS connections. Thanks to @vojeroen! ([\#3439](#3439)) - Add /_media/r0/config ([\#3184](#3184)) - speed up /members API and add `at` and `membership` params as per MSC1227 ([\#3568](#3568)) - implement `summary` block in /sync response as per MSC688 ([\#3574](#3574)) - Add lazy-loading support to /messages as per MSC1227 ([\#3589](#3589)) - Add ability to limit number of monthly active users on the server ([\#3633](#3633)) - Support more federation endpoints on workers ([\#3653](#3653)) - Basic support for room versioning ([\#3654](#3654)) - Ability to disable client/server Synapse via conf toggle ([\#3655](#3655)) - Ability to whitelist specific threepids against monthly active user limiting ([\#3662](#3662)) - Add some metrics for the appservice and federation event sending loops ([\#3664](#3664)) - Where server is disabled, block ability for locked out users to read new messages ([\#3670](#3670)) - set admin uri via config, to be used in error messages where the user should contact the administrator ([\#3687](#3687)) - Synapse's presence functionality can now be disabled with the "use_presence" configuration option. ([\#3694](#3694)) - For resource limit blocked users, prevent writing into rooms ([\#3708](#3708)) Bugfixes -------- - Fix occasional glitches in the synapse_event_persisted_position metric ([\#3658](#3658)) - Fix bug on deleting 3pid when using identity servers that don't support unbind API ([\#3661](#3661)) - Make the tests pass on Twisted < 18.7.0 ([\#3676](#3676)) - Don’t ship recaptcha_ajax.js, use it directly from Google ([\#3677](#3677)) - Fixes test_reap_monthly_active_users so it passes under postgres ([\#3681](#3681)) - Fix mau blocking calulation bug on login ([\#3689](#3689)) - Fix missing yield in synapse.storage.monthly_active_users.initialise_reserved_users ([\#3692](#3692)) - Improve HTTP request logging to include all requests ([\#3700](#3700)) - Avoid timing out requests while we are streaming back the response ([\#3701](#3701)) - Support more federation endpoints on workers ([\#3705](#3705), [\#3713](#3713)) - Fix "Starting db txn 'get_all_updated_receipts' from sentinel context" warning ([\#3710](#3710)) - Fix bug where `state_cache` cache factor ignored environment variables ([\#3719](#3719)) - Fix bug in v0.33.3rc1 which caused infinite loops and OOMs ([\#3723](#3723)) - Fix bug introduced in v0.33.3rc1 which made the ToS give a 500 error ([\#3732](#3732)) Deprecations and Removals ------------------------- - The Shared-Secret registration method of the legacy v1/register REST endpoint has been removed. For a replacement, please see [the admin/register API documentation](https://github.com/matrix-org/synapse/blob/master/docs/admin_api/register_api.rst). ([\#3703](#3703)) Internal Changes ---------------- - The test suite now can run under PostgreSQL. ([\#3423](#3423)) - Refactor HTTP replication endpoints to reduce code duplication ([\#3632](#3632)) - Tests now correctly execute on Python 3. ([\#3647](#3647)) - Sytests can now be run inside a Docker container. ([\#3660](#3660)) - Port over enough to Python 3 to allow the sytests to start. ([\#3668](#3668)) - Update docker base image from alpine 3.7 to 3.8. ([\#3669](#3669)) - Rename synapse.util.async to synapse.util.async_helpers to mitigate async becoming a keyword on Python 3.7. ([\#3678](#3678)) - Synapse's tests are now formatted with the black autoformatter. ([\#3679](#3679)) - Implemented a new testing base class to reduce test boilerplate. ([\#3684](#3684)) - Rename MAU prometheus metrics ([\#3690](#3690)) - add new error type ResourceLimit ([\#3707](#3707)) - Logcontexts for replication command handlers ([\#3709](#3709)) - Update admin register API documentation to reference a real user ID. ([\#3712](#3712))
Part of matrix-org/matrix-spec-proposals#1189.
Exposes the /media/r0/config endpoint