mirror of
https://github.com/element-hq/synapse.git
synced 2024-11-27 12:08:32 +03:00
Convert the main methods run by the reactor to async. (#8213)
This commit is contained in:
parent
abeab964d5
commit
d250521cf5
3 changed files with 18 additions and 21 deletions
1
changelog.d/8213.misc
Normal file
1
changelog.d/8213.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Convert various parts of the codebase to async/await.
|
|
@ -79,8 +79,7 @@ class AdminCmdServer(HomeServer):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
async def export_data_command(hs, args):
|
||||||
def export_data_command(hs, args):
|
|
||||||
"""Export data for a user.
|
"""Export data for a user.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
|
@ -91,10 +90,8 @@ def export_data_command(hs, args):
|
||||||
user_id = args.user_id
|
user_id = args.user_id
|
||||||
directory = args.output_directory
|
directory = args.output_directory
|
||||||
|
|
||||||
res = yield defer.ensureDeferred(
|
res = await hs.get_handlers().admin_handler.export_user_data(
|
||||||
hs.get_handlers().admin_handler.export_user_data(
|
user_id, FileExfiltrationWriter(user_id, directory=directory)
|
||||||
user_id, FileExfiltrationWriter(user_id, directory=directory)
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
print(res)
|
print(res)
|
||||||
|
|
||||||
|
@ -232,14 +229,15 @@ def start(config_options):
|
||||||
# We also make sure that `_base.start` gets run before we actually run the
|
# We also make sure that `_base.start` gets run before we actually run the
|
||||||
# command.
|
# command.
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
async def run():
|
||||||
def run(_reactor):
|
|
||||||
with LoggingContext("command"):
|
with LoggingContext("command"):
|
||||||
yield _base.start(ss, [])
|
_base.start(ss, [])
|
||||||
yield args.func(ss, args)
|
await args.func(ss, args)
|
||||||
|
|
||||||
_base.start_worker_reactor(
|
_base.start_worker_reactor(
|
||||||
"synapse-admin-cmd", config, run_command=lambda: task.react(run)
|
"synapse-admin-cmd",
|
||||||
|
config,
|
||||||
|
run_command=lambda: task.react(lambda _reactor: defer.ensureDeferred(run())),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -411,26 +411,24 @@ def setup(config_options):
|
||||||
|
|
||||||
return provision
|
return provision
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
async def reprovision_acme():
|
||||||
def reprovision_acme():
|
|
||||||
"""
|
"""
|
||||||
Provision a certificate from ACME, if required, and reload the TLS
|
Provision a certificate from ACME, if required, and reload the TLS
|
||||||
certificate if it's renewed.
|
certificate if it's renewed.
|
||||||
"""
|
"""
|
||||||
reprovisioned = yield defer.ensureDeferred(do_acme())
|
reprovisioned = await do_acme()
|
||||||
if reprovisioned:
|
if reprovisioned:
|
||||||
_base.refresh_certificate(hs)
|
_base.refresh_certificate(hs)
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
async def start():
|
||||||
def start():
|
|
||||||
try:
|
try:
|
||||||
# Run the ACME provisioning code, if it's enabled.
|
# Run the ACME provisioning code, if it's enabled.
|
||||||
if hs.config.acme_enabled:
|
if hs.config.acme_enabled:
|
||||||
acme = hs.get_acme_handler()
|
acme = hs.get_acme_handler()
|
||||||
# Start up the webservices which we will respond to ACME
|
# Start up the webservices which we will respond to ACME
|
||||||
# challenges with, and then provision.
|
# challenges with, and then provision.
|
||||||
yield defer.ensureDeferred(acme.start_listening())
|
await acme.start_listening()
|
||||||
yield defer.ensureDeferred(do_acme())
|
await do_acme()
|
||||||
|
|
||||||
# Check if it needs to be reprovisioned every day.
|
# Check if it needs to be reprovisioned every day.
|
||||||
hs.get_clock().looping_call(reprovision_acme, 24 * 60 * 60 * 1000)
|
hs.get_clock().looping_call(reprovision_acme, 24 * 60 * 60 * 1000)
|
||||||
|
@ -439,8 +437,8 @@ def setup(config_options):
|
||||||
if hs.config.oidc_enabled:
|
if hs.config.oidc_enabled:
|
||||||
oidc = hs.get_oidc_handler()
|
oidc = hs.get_oidc_handler()
|
||||||
# Loading the provider metadata also ensures the provider config is valid.
|
# Loading the provider metadata also ensures the provider config is valid.
|
||||||
yield defer.ensureDeferred(oidc.load_metadata())
|
await oidc.load_metadata()
|
||||||
yield defer.ensureDeferred(oidc.load_jwks())
|
await oidc.load_jwks()
|
||||||
|
|
||||||
_base.start(hs, config.listeners)
|
_base.start(hs, config.listeners)
|
||||||
|
|
||||||
|
@ -456,7 +454,7 @@ def setup(config_options):
|
||||||
reactor.stop()
|
reactor.stop()
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
reactor.callWhenRunning(start)
|
reactor.callWhenRunning(lambda: defer.ensureDeferred(start()))
|
||||||
|
|
||||||
return hs
|
return hs
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue