+
+ # start hackney and gun pools in tests
+ defp http_pools_children(:test) do
+ hackney_options = Config.get([:hackney_pools, :federation])
+ hackney_pool = :hackney_pool.child_spec(:federation, hackney_options)
+ [hackney_pool, Pleroma.Pool.Supervisor]
+ end
+
+ defp http_pools_children(_), do: http_pools(adapter())
+
+ defp http_pools(Tesla.Adapter.Hackney) do
+ pools = [:federation, :media]
+
+ pools =
+ if Config.get([Pleroma.Upload, :proxy_remote]) do
+ [:upload | pools]
+ else
+ pools
+ end
+
+ for pool <- pools do
+ options = Config.get([:hackney_pools, pool])
+ :hackney_pool.child_spec(pool, options)
+ end
+ end
+
+ defp http_pools(Tesla.Adapter.Gun), do: [Pleroma.Pool.Supervisor]
+
+ defp http_pools(_), do: []
+
+ defp adapter, do: Application.get_env(:tesla, :adapter)