Remove FrontendInstallerWorker

This commit is contained in:
Egor Kislitsyn 2020-11-11 20:12:35 +04:00
parent 08cbd655d1
commit 435bf1f945
No known key found for this signature in database
GPG key ID: 1B49CB15B71E7805
4 changed files with 1 additions and 47 deletions

View file

@ -563,9 +563,7 @@
remote_fetcher: 2, remote_fetcher: 2,
attachments_cleanup: 5, attachments_cleanup: 5,
new_users_digest: 1, new_users_digest: 1,
frontend_installer: 1,
mute_expire: 5 mute_expire: 5
], ],
plugins: [Oban.Plugins.Pruner], plugins: [Oban.Plugins.Pruner],
crontab: [ crontab: [

View file

@ -7,7 +7,6 @@ defmodule Pleroma.Web.AdminAPI.FrontendController do
alias Pleroma.Config alias Pleroma.Config
alias Pleroma.Web.Plugs.OAuthScopesPlug alias Pleroma.Web.Plugs.OAuthScopesPlug
alias Pleroma.Workers.FrontendInstallerWorker
plug(Pleroma.Web.ApiSpec.CastAndValidate) plug(Pleroma.Web.ApiSpec.CastAndValidate)
plug(OAuthScopesPlug, %{scopes: ["write"], admin: true} when action == :install) plug(OAuthScopesPlug, %{scopes: ["write"], admin: true} when action == :install)
@ -30,7 +29,7 @@ def index(conn, _params) do
end end
def install(%{body_params: params} = conn, _params) do def install(%{body_params: params} = conn, _params) do
FrontendInstallerWorker.install(params.name, Map.delete(params, :name)) Pleroma.Frontend.install(params.name, Map.delete(params, :name))
index(conn, %{}) index(conn, %{})
end end

View file

@ -1,21 +0,0 @@
# Pleroma: A lightweight social networking server
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Workers.FrontendInstallerWorker do
use Oban.Worker, queue: :frontend_installer, max_attempts: 1
alias Oban.Job
alias Pleroma.Frontend
def install(name, opts \\ []) do
%{"name" => name, "opts" => Map.new(opts)}
|> new()
|> Oban.insert()
end
def perform(%Job{args: %{"name" => name, "opts" => opts}}) do
opts = Keyword.new(opts, fn {key, value} -> {String.to_existing_atom(key), value} end)
Frontend.install(name, opts)
end
end

View file

@ -4,13 +4,10 @@
defmodule Pleroma.Web.AdminAPI.FrontendControllerTest do defmodule Pleroma.Web.AdminAPI.FrontendControllerTest do
use Pleroma.Web.ConnCase use Pleroma.Web.ConnCase
use Oban.Testing, repo: Pleroma.Repo
import Pleroma.Factory import Pleroma.Factory
alias Pleroma.Config alias Pleroma.Config
alias Pleroma.Tests.ObanHelpers
alias Pleroma.Workers.FrontendInstallerWorker
@dir "test/frontend_static_test" @dir "test/frontend_static_test"
@ -66,13 +63,6 @@ test "from available frontends", %{conn: conn} do
|> post("/api/pleroma/admin/frontends", %{name: "pleroma"}) |> post("/api/pleroma/admin/frontends", %{name: "pleroma"})
|> json_response_and_validate_schema(:ok) |> json_response_and_validate_schema(:ok)
assert_enqueued(
worker: FrontendInstallerWorker,
args: %{"name" => "pleroma", "opts" => %{}}
)
ObanHelpers.perform(all_enqueued(worker: FrontendInstallerWorker))
assert File.exists?(Path.join([@dir, "frontends", "pleroma", "fantasy", "test.txt"])) assert File.exists?(Path.join([@dir, "frontends", "pleroma", "fantasy", "test.txt"]))
response = response =
@ -108,16 +98,6 @@ test "from a file", %{conn: conn} do
}) })
|> json_response_and_validate_schema(:ok) |> json_response_and_validate_schema(:ok)
assert_enqueued(
worker: FrontendInstallerWorker,
args: %{
"name" => "pleroma",
"opts" => %{"file" => "test/fixtures/tesla_mock/frontend.zip"}
}
)
ObanHelpers.perform(all_enqueued(worker: FrontendInstallerWorker))
assert File.exists?(Path.join([@dir, "frontends", "pleroma", "fantasy", "test.txt"])) assert File.exists?(Path.join([@dir, "frontends", "pleroma", "fantasy", "test.txt"]))
end end
@ -136,8 +116,6 @@ test "from an URL", %{conn: conn} do
}) })
|> json_response_and_validate_schema(:ok) |> json_response_and_validate_schema(:ok)
ObanHelpers.perform(all_enqueued(worker: FrontendInstallerWorker))
assert File.exists?(Path.join([@dir, "frontends", "unknown", "baka", "test.txt"])) assert File.exists?(Path.join([@dir, "frontends", "unknown", "baka", "test.txt"]))
end end
end end