forked from YokaiRick/akkoma
deprecation warnings
This commit is contained in:
parent
696bf09433
commit
18d21aed00
2 changed files with 96 additions and 6 deletions
|
@ -56,6 +56,7 @@ def warn do
|
||||||
check_old_mrf_config()
|
check_old_mrf_config()
|
||||||
check_media_proxy_whitelist_config()
|
check_media_proxy_whitelist_config()
|
||||||
check_welcome_message_config()
|
check_welcome_message_config()
|
||||||
|
check_gun_pool_options()
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_welcome_message_config do
|
def check_welcome_message_config do
|
||||||
|
@ -115,4 +116,46 @@ def check_media_proxy_whitelist_config do
|
||||||
""")
|
""")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def check_gun_pool_options do
|
||||||
|
pool_config = Config.get(:connections_pool)
|
||||||
|
|
||||||
|
if timeout = pool_config[:await_up_timeout] do
|
||||||
|
Logger.warn("""
|
||||||
|
!!!DEPRECATION WARNING!!!
|
||||||
|
Your config is using old setting name `await_up_timeout` instead of `connect_timeout`. Setting should work for now, but you are advised to change format to scheme with port to prevent possible issues later.
|
||||||
|
""")
|
||||||
|
|
||||||
|
Config.put(:connections_pool, Keyword.put_new(pool_config, :connect_timeout, timeout))
|
||||||
|
end
|
||||||
|
|
||||||
|
pools_configs = Config.get(:pools)
|
||||||
|
|
||||||
|
warning_preface = """
|
||||||
|
!!!DEPRECATION WARNING!!!
|
||||||
|
Your config is using old setting name `timeout` instead of `recv_timeout` in pool settings. Setting should work for now, but you are advised to change format to scheme with port to prevent possible issues later.
|
||||||
|
"""
|
||||||
|
|
||||||
|
updated_config =
|
||||||
|
Enum.reduce(pools_configs, [], fn {pool_name, config}, acc ->
|
||||||
|
if timeout = config[:timeout] do
|
||||||
|
Keyword.put(acc, pool_name, Keyword.put_new(config, :recv_timeout, timeout))
|
||||||
|
else
|
||||||
|
acc
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
if updated_config != [] do
|
||||||
|
pool_warnings =
|
||||||
|
updated_config
|
||||||
|
|> Keyword.keys()
|
||||||
|
|> Enum.map(fn pool_name ->
|
||||||
|
"\n* `:timeout` options in #{pool_name} pool is now `:recv_timeout`"
|
||||||
|
end)
|
||||||
|
|
||||||
|
Logger.warn(Enum.join([warning_preface | pool_warnings]))
|
||||||
|
|
||||||
|
Config.put(:pools, updated_config)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -4,12 +4,15 @@ defmodule Pleroma.Config.DeprecationWarningsTest do
|
||||||
|
|
||||||
import ExUnit.CaptureLog
|
import ExUnit.CaptureLog
|
||||||
|
|
||||||
|
alias Pleroma.Config
|
||||||
|
alias Pleroma.Config.DeprecationWarnings
|
||||||
|
|
||||||
test "check_old_mrf_config/0" do
|
test "check_old_mrf_config/0" do
|
||||||
clear_config([:instance, :rewrite_policy], Pleroma.Web.ActivityPub.MRF.NoOpPolicy)
|
clear_config([:instance, :rewrite_policy], Pleroma.Web.ActivityPub.MRF.NoOpPolicy)
|
||||||
clear_config([:instance, :mrf_transparency], true)
|
clear_config([:instance, :mrf_transparency], true)
|
||||||
clear_config([:instance, :mrf_transparency_exclusions], [])
|
clear_config([:instance, :mrf_transparency_exclusions], [])
|
||||||
|
|
||||||
assert capture_log(fn -> Pleroma.Config.DeprecationWarnings.check_old_mrf_config() end) =~
|
assert capture_log(fn -> DeprecationWarnings.check_old_mrf_config() end) =~
|
||||||
"""
|
"""
|
||||||
!!!DEPRECATION WARNING!!!
|
!!!DEPRECATION WARNING!!!
|
||||||
Your config is using old namespaces for MRF configuration. They should work for now, but you are advised to change to new namespaces to prevent possible issues later:
|
Your config is using old namespaces for MRF configuration. They should work for now, but you are advised to change to new namespaces to prevent possible issues later:
|
||||||
|
@ -44,22 +47,66 @@ test "move_namespace_and_warn/2" do
|
||||||
]
|
]
|
||||||
|
|
||||||
assert capture_log(fn ->
|
assert capture_log(fn ->
|
||||||
Pleroma.Config.DeprecationWarnings.move_namespace_and_warn(
|
DeprecationWarnings.move_namespace_and_warn(
|
||||||
config_map,
|
config_map,
|
||||||
"Warning preface"
|
"Warning preface"
|
||||||
)
|
)
|
||||||
end) =~ "Warning preface\n error :key\n error :key2\n error :key3"
|
end) =~ "Warning preface\n error :key\n error :key2\n error :key3"
|
||||||
|
|
||||||
assert Pleroma.Config.get(new_group1) == 1
|
assert Config.get(new_group1) == 1
|
||||||
assert Pleroma.Config.get(new_group2) == 2
|
assert Config.get(new_group2) == 2
|
||||||
assert Pleroma.Config.get(new_group3) == 3
|
assert Config.get(new_group3) == 3
|
||||||
end
|
end
|
||||||
|
|
||||||
test "check_media_proxy_whitelist_config/0" do
|
test "check_media_proxy_whitelist_config/0" do
|
||||||
clear_config([:media_proxy, :whitelist], ["https://example.com", "example2.com"])
|
clear_config([:media_proxy, :whitelist], ["https://example.com", "example2.com"])
|
||||||
|
|
||||||
assert capture_log(fn ->
|
assert capture_log(fn ->
|
||||||
Pleroma.Config.DeprecationWarnings.check_media_proxy_whitelist_config()
|
DeprecationWarnings.check_media_proxy_whitelist_config()
|
||||||
end) =~ "Your config is using old format (only domain) for MediaProxy whitelist option"
|
end) =~ "Your config is using old format (only domain) for MediaProxy whitelist option"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "check_gun_pool_options/0" do
|
||||||
|
test "await_up_timeout" do
|
||||||
|
config = Config.get(:connections_pool)
|
||||||
|
clear_config(:connections_pool, Keyword.put(config, :await_up_timeout, 5_000))
|
||||||
|
|
||||||
|
assert capture_log(fn ->
|
||||||
|
DeprecationWarnings.check_gun_pool_options()
|
||||||
|
end) =~
|
||||||
|
"Your config is using old setting name `await_up_timeout` instead of `connect_timeout`"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "pool timeout" do
|
||||||
|
old_config = [
|
||||||
|
federation: [
|
||||||
|
size: 50,
|
||||||
|
max_waiting: 10,
|
||||||
|
timeout: 10_000
|
||||||
|
],
|
||||||
|
media: [
|
||||||
|
size: 50,
|
||||||
|
max_waiting: 10,
|
||||||
|
timeout: 10_000
|
||||||
|
],
|
||||||
|
upload: [
|
||||||
|
size: 25,
|
||||||
|
max_waiting: 5,
|
||||||
|
timeout: 15_000
|
||||||
|
],
|
||||||
|
default: [
|
||||||
|
size: 10,
|
||||||
|
max_waiting: 2,
|
||||||
|
timeout: 5_000
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
||||||
|
clear_config(:pools, old_config)
|
||||||
|
|
||||||
|
assert capture_log(fn ->
|
||||||
|
DeprecationWarnings.check_gun_pool_options()
|
||||||
|
end) =~
|
||||||
|
"Your config is using old setting name `timeout` instead of `recv_timeout` in pool settings"
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue