diff options
| author | Alexander Strizhakov <alex.strizhakov@gmail.com> | 2020-02-08 12:55:37 +0300 | 
|---|---|---|
| committer | Alexander Strizhakov <alex.strizhakov@gmail.com> | 2020-02-08 13:00:02 +0300 | 
| commit | dad23e3766fb90c2c9b6bca7b5531273242659ad (patch) | |
| tree | 63f388ce8bb3ab2de25566e087bf943772ac29c1 /lib | |
| parent | 1262357ddb4b889337a931a39b3e28bb3d81f944 (diff) | |
| download | pleroma-dad23e3766fb90c2c9b6bca7b5531273242659ad.tar.gz pleroma-dad23e3766fb90c2c9b6bca7b5531273242659ad.zip | |
need_reboot flag
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/config/transfer_task.ex | 4 | ||||
| -rw-r--r-- | lib/pleroma/web/admin_api/admin_api_controller.ex | 48 | 
2 files changed, 31 insertions, 21 deletions
| diff --git a/lib/pleroma/config/transfer_task.ex b/lib/pleroma/config/transfer_task.ex index 6c5ba1f95..f037ce8a5 100644 --- a/lib/pleroma/config/transfer_task.ex +++ b/lib/pleroma/config/transfer_task.ex @@ -146,9 +146,7 @@ defmodule Pleroma.Config.TransferTask do    defp update_env(group, key, nil), do: Application.delete_env(group, key)    defp update_env(group, key, value), do: Application.put_env(group, key, value) -  defp restart(_, :pleroma, :test), do: Logger.warn("pleroma restarted") - -  defp restart(_, :pleroma, _), do: send(Restarter.Pleroma, :after_boot) +  defp restart(_, :pleroma, env), do: Restarter.Pleroma.restart_after_boot(env)    defp restart(started_applications, app, _) do      with {^app, _, _} <- List.keyfind(started_applications, app, 0), diff --git a/lib/pleroma/web/admin_api/admin_api_controller.ex b/lib/pleroma/web/admin_api/admin_api_controller.ex index c95cd182d..67222ebae 100644 --- a/lib/pleroma/web/admin_api/admin_api_controller.ex +++ b/lib/pleroma/web/admin_api/admin_api_controller.ex @@ -8,6 +8,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do    import Pleroma.Web.ControllerHelper, only: [json_response: 3]    alias Pleroma.Activity +  alias Pleroma.Config    alias Pleroma.ConfigDB    alias Pleroma.ModerationLog    alias Pleroma.Plugs.OAuthScopesPlug @@ -570,8 +571,8 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do    @doc "Sends registration invite via email"    def email_invite(%{assigns: %{user: user}} = conn, %{"email" => email} = params) do      with true <- -           Pleroma.Config.get([:instance, :invites_enabled]) && -             !Pleroma.Config.get([:instance, :registrations_open]), +           Config.get([:instance, :invites_enabled]) && +             !Config.get([:instance, :registrations_open]),           {:ok, invite_token} <- UserInviteToken.create_invite(),           email <-             Pleroma.Emails.UserEmail.user_invitation_email( @@ -808,7 +809,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do        configs = ConfigDB.get_all_as_keyword()        merged = -        Pleroma.Config.Holder.config() +        Config.Holder.config()          |> ConfigDB.merge(configs)          |> Enum.map(fn {group, values} ->            Enum.map(values, fn {key, value} -> @@ -838,7 +839,16 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do          end)          |> List.flatten() -      json(conn, %{configs: merged}) +      response = %{configs: merged} + +      response = +        if Restarter.Pleroma.need_reboot?() do +          Map.put(response, :need_reboot, true) +        else +          response +        end + +      json(conn, response)      end    end @@ -863,20 +873,26 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do            Ecto.get_meta(config, :state) == :deleted          end) -      Pleroma.Config.TransferTask.load_and_update_env(deleted, false) +      Config.TransferTask.load_and_update_env(deleted, false)        need_reboot? = -        Enum.any?(updated, fn config -> -          group = ConfigDB.from_string(config.group) -          key = ConfigDB.from_string(config.key) -          value = ConfigDB.from_binary(config.value) -          Pleroma.Config.TransferTask.pleroma_need_restart?(group, key, value) -        end) +        Restarter.Pleroma.need_reboot?() || +          Enum.any?(updated, fn config -> +            group = ConfigDB.from_string(config.group) +            key = ConfigDB.from_string(config.key) +            value = ConfigDB.from_binary(config.value) +            Config.TransferTask.pleroma_need_restart?(group, key, value) +          end)        response = %{configs: updated}        response = -        if need_reboot?, do: Map.put(response, :need_reboot, need_reboot?), else: response +        if need_reboot? do +          Restarter.Pleroma.need_reboot() +          Map.put(response, :need_reboot, need_reboot?) +        else +          response +        end        conn        |> put_view(ConfigView) @@ -886,18 +902,14 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do    def restart(conn, _params) do      with :ok <- configurable_from_database(conn) do -      if Pleroma.Config.get(:env) == :test do -        Logger.warn("pleroma restarted") -      else -        send(Restarter.Pleroma, {:restart, 50}) -      end +      Restarter.Pleroma.restart(Config.get(:env), 50)        json(conn, %{})      end    end    defp configurable_from_database(conn) do -    if Pleroma.Config.get(:configurable_from_database) do +    if Config.get(:configurable_from_database) do        :ok      else        errors( | 
