mirror of
https://github.com/livebook-dev/livebook.git
synced 2025-02-03 04:38:11 +08:00
Removes deployment group deletion (#2479)
This commit is contained in:
parent
fe5598dbb5
commit
c9d505a2b4
11 changed files with 11 additions and 149 deletions
|
@ -198,21 +198,6 @@ defmodule Livebook.Teams do
|
|||
end
|
||||
end
|
||||
|
||||
@doc """
|
||||
Deletes a Deployment Group.
|
||||
"""
|
||||
@spec delete_deployment_group(Team.t(), DeploymentGroup.t()) ::
|
||||
:ok
|
||||
| {:error, Ecto.Changeset.t()}
|
||||
| {:transport_error, String.t()}
|
||||
def delete_deployment_group(%Team{} = team, deployment_group) do
|
||||
case Requests.delete_deployment_group(team, deployment_group) do
|
||||
{:ok, _} -> :ok
|
||||
{:error, %{"errors" => errors}} -> {:error, Requests.add_errors(deployment_group, errors)}
|
||||
any -> any
|
||||
end
|
||||
end
|
||||
|
||||
@doc """
|
||||
Creates an Agent Key.
|
||||
"""
|
||||
|
|
|
@ -197,15 +197,6 @@ defmodule Livebook.Teams.Requests do
|
|||
put("/api/v1/org/deployment-groups", params, team)
|
||||
end
|
||||
|
||||
@doc """
|
||||
Send a request to Livebook Team API to delete a deployment group.
|
||||
"""
|
||||
@spec delete_deployment_group(Team.t(), DeploymentGroup.t()) ::
|
||||
{:ok, String.t()} | {:error, map() | String.t()} | {:transport_error, String.t()}
|
||||
def delete_deployment_group(team, deployment_group) do
|
||||
delete("/api/v1/org/deployment-groups", %{id: deployment_group.id}, team)
|
||||
end
|
||||
|
||||
@doc """
|
||||
Send a request to Livebook Team API to create an agent key.
|
||||
"""
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
defmodule LivebookWeb.Hub.Teams.DeploymentGroupListComponent do
|
||||
use LivebookWeb, :live_component
|
||||
|
||||
alias Livebook.Teams
|
||||
|
||||
@impl true
|
||||
def render(assigns) do
|
||||
~H"""
|
||||
|
@ -37,23 +35,6 @@ defmodule LivebookWeb.Hub.Teams.DeploymentGroupListComponent do
|
|||
<span>Edit</span>
|
||||
</.link>
|
||||
</.menu_item>
|
||||
<.menu_item variant={:danger}>
|
||||
<button
|
||||
id={"hub-deployment-group-#{deployment_group.id}-delete"}
|
||||
type="button"
|
||||
role="menuitem"
|
||||
class="text-red-600"
|
||||
phx-click={
|
||||
JS.push("delete_deployment_group",
|
||||
value: %{id: deployment_group.id, name: deployment_group.name}
|
||||
)
|
||||
}
|
||||
phx-target={@myself}
|
||||
>
|
||||
<.remix_icon icon="delete-bin-line" />
|
||||
<span>Delete</span>
|
||||
</button>
|
||||
</.menu_item>
|
||||
</.menu>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -66,31 +47,4 @@ defmodule LivebookWeb.Hub.Teams.DeploymentGroupListComponent do
|
|||
</div>
|
||||
"""
|
||||
end
|
||||
|
||||
@impl true
|
||||
def handle_event("delete_deployment_group", %{"id" => id, "name" => name}, socket) do
|
||||
on_confirm = fn socket ->
|
||||
hub = Livebook.Hubs.fetch_hub!(socket.assigns.hub.id)
|
||||
deployment_groups = Teams.get_deployment_groups(hub)
|
||||
deployment_group = Enum.find(deployment_groups, &(&1.id == id))
|
||||
|
||||
case Teams.delete_deployment_group(hub, deployment_group) do
|
||||
:ok ->
|
||||
socket
|
||||
|> put_flash(:success, "Deployment group #{deployment_group.name} deleted successfully")
|
||||
|> push_patch(to: ~p"/hub/#{hub.id}")
|
||||
|
||||
{:transport_error, reason} ->
|
||||
put_flash(socket, :error, reason)
|
||||
end
|
||||
end
|
||||
|
||||
{:noreply,
|
||||
confirm(socket, on_confirm,
|
||||
title: "Delete hub deployment group",
|
||||
description: "Are you sure you want to delete #{name}?",
|
||||
confirm_text: "delete",
|
||||
confirm_icon: "delete-bin-6-line"
|
||||
)}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -11,7 +11,6 @@ defmodule LivebookProto do
|
|||
SecretDeleted,
|
||||
SecretUpdated,
|
||||
DeploymentGroupCreated,
|
||||
DeploymentGroupDeleted,
|
||||
DeploymentGroupUpdated,
|
||||
UserConnected
|
||||
}
|
||||
|
@ -32,7 +31,6 @@ defmodule LivebookProto do
|
|||
| SecretDeleted.t()
|
||||
| SecretUpdated.t()
|
||||
| DeploymentGroupCreated.t()
|
||||
| DeploymentGroupDeleted.t()
|
||||
| DeploymentGroupUpdated.t()
|
||||
| UserConnected.t()
|
||||
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
defmodule LivebookProto.DeploymentGroupDeleted do
|
||||
use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.12.0"
|
||||
|
||||
field :id, 1, type: :string
|
||||
end
|
|
@ -48,22 +48,17 @@ defmodule LivebookProto.Event do
|
|||
json_name: "deploymentGroupUpdated",
|
||||
oneof: 0
|
||||
|
||||
field :deployment_group_deleted, 10,
|
||||
type: LivebookProto.DeploymentGroupDeleted,
|
||||
json_name: "deploymentGroupDeleted",
|
||||
oneof: 0
|
||||
|
||||
field :agent_connected, 11,
|
||||
field :agent_connected, 10,
|
||||
type: LivebookProto.AgentConnected,
|
||||
json_name: "agentConnected",
|
||||
oneof: 0
|
||||
|
||||
field :agent_key_created, 12,
|
||||
field :agent_key_created, 11,
|
||||
type: LivebookProto.AgentKeyCreated,
|
||||
json_name: "agentKeyCreated",
|
||||
oneof: 0
|
||||
|
||||
field :agent_key_deleted, 13,
|
||||
field :agent_key_deleted, 12,
|
||||
type: LivebookProto.AgentKeyDeleted,
|
||||
json_name: "agentKeyDeleted",
|
||||
oneof: 0
|
||||
|
|
|
@ -123,9 +123,6 @@ defmodule Livebook.Hubs.TeamClientTest do
|
|||
# receives `{:deployment_group_updated, deployment_group}` event
|
||||
assert_receive {:deployment_group_updated, ^updated_deployment_group}
|
||||
|
||||
# deletes the deployment group
|
||||
assert Livebook.Teams.delete_deployment_group(team, updated_deployment_group) == :ok
|
||||
|
||||
# receives `{:deployment_group_deleted, deployment_group}` event
|
||||
assert_receive {:deployment_group_deleted, ^updated_deployment_group}
|
||||
end
|
||||
|
|
|
@ -242,16 +242,4 @@ defmodule Livebook.TeamsTest do
|
|||
assert "is invalid" in errors_on(changeset).mode
|
||||
end
|
||||
end
|
||||
|
||||
describe "delete_deployment_group/2" do
|
||||
test "deletes a deployment group", %{user: user, node: node} do
|
||||
team = create_team_hub(user, node)
|
||||
deployment_group = build(:deployment_group, name: "BAR", mode: :online)
|
||||
|
||||
assert {:ok, id} = Teams.create_deployment_group(team, deployment_group)
|
||||
|
||||
delete_deployment_group = %{deployment_group | id: to_string(id)}
|
||||
assert Teams.delete_deployment_group(team, delete_deployment_group) == :ok
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -86,7 +86,7 @@ defmodule LivebookWeb.Integration.Hub.DeploymentGroupLiveTest do
|
|||
}
|
||||
}
|
||||
|
||||
new_mode = :offline
|
||||
new_name = "FOO"
|
||||
|
||||
{:ok, view, html} =
|
||||
live(conn, ~p"/hub/#{hub.id}/deployment-groups/edit/#{deployment_group.id}")
|
||||
|
@ -106,13 +106,13 @@ defmodule LivebookWeb.Integration.Hub.DeploymentGroupLiveTest do
|
|||
|
||||
view
|
||||
|> element("#deployment-groups-form")
|
||||
|> render_submit(put_in(attrs.deployment_group.mode, new_mode))
|
||||
|> render_submit(put_in(attrs.deployment_group.name, new_name))
|
||||
|
||||
updated_deployment_group = %{deployment_group | mode: new_mode}
|
||||
updated_deployment_group = %{deployment_group | name: new_name}
|
||||
|
||||
assert_receive {:deployment_group_updated, ^updated_deployment_group}
|
||||
assert_patch(view, "/hub/#{hub.id}/deployment-groups/edit/#{deployment_group.id}")
|
||||
assert render(view) =~ "Deployment group TEAMS_EDIT_DEPLOYMENT_GROUP updated successfully"
|
||||
assert render(view) =~ "Deployment group FOO updated successfully"
|
||||
assert updated_deployment_group in Livebook.Teams.get_deployment_groups(hub)
|
||||
end
|
||||
|
||||
|
|
|
@ -375,7 +375,7 @@ defmodule LivebookWeb.Integration.Hub.EditLiveTest do
|
|||
}
|
||||
}
|
||||
|
||||
new_mode = :offline
|
||||
new_name = "FOO"
|
||||
|
||||
view
|
||||
|> element("#hub-deployment-group-#{deployment_group.id}-edit")
|
||||
|
@ -401,47 +401,16 @@ defmodule LivebookWeb.Integration.Hub.EditLiveTest do
|
|||
|
||||
view
|
||||
|> element("#deployment-groups-form")
|
||||
|> render_submit(put_in(attrs.deployment_group.mode, new_mode))
|
||||
|> render_submit(put_in(attrs.deployment_group.name, new_name))
|
||||
|
||||
updated_deployment_group = %{deployment_group | mode: new_mode}
|
||||
updated_deployment_group = %{deployment_group | name: new_name}
|
||||
|
||||
assert_receive {:deployment_group_updated, ^updated_deployment_group}
|
||||
assert_patch(view, "/hub/#{hub.id}/deployment-groups/edit/#{deployment_group.id}")
|
||||
assert render(view) =~ "Deployment group TEAM_EDIT_DEPLOYMENT_GROUP updated successfully"
|
||||
assert render(view) =~ "Deployment group FOO updated successfully"
|
||||
assert updated_deployment_group in Livebook.Teams.get_deployment_groups(hub)
|
||||
end
|
||||
|
||||
test "deletes existing deployment group", %{conn: conn, hub: hub} do
|
||||
insert_deployment_group(
|
||||
name: "TEAM_DELETE_DEPLOYMENT_GROUP",
|
||||
mode: :online,
|
||||
hub_id: hub.id
|
||||
)
|
||||
|
||||
assert_receive {:deployment_group_created,
|
||||
%DeploymentGroup{name: "TEAM_DELETE_DEPLOYMENT_GROUP"} = deployment_group}
|
||||
|
||||
{:ok, view, _html} = live(conn, ~p"/hub/#{hub.id}")
|
||||
|
||||
refute view
|
||||
|> element("#deployment-groups-form button[disabled]")
|
||||
|> has_element?()
|
||||
|
||||
view
|
||||
|> element("#hub-deployment-group-#{deployment_group.id}-delete", "Delete")
|
||||
|> render_click()
|
||||
|
||||
render_confirm(view)
|
||||
|
||||
assert_receive {:deployment_group_deleted,
|
||||
%DeploymentGroup{name: "TEAM_DELETE_DEPLOYMENT_GROUP"}}
|
||||
|
||||
assert_patch(view, "/hub/#{hub.id}")
|
||||
assert render(view) =~ "Deployment group TEAM_DELETE_DEPLOYMENT_GROUP deleted successfully"
|
||||
refute render(element(view, "#hub-deployment-groups-list")) =~ deployment_group.name
|
||||
refute deployment_group in Livebook.Teams.get_deployment_groups(hub)
|
||||
end
|
||||
|
||||
test "raises an error if the deployment group does not exist", %{conn: conn, hub: hub} do
|
||||
assert_raise LivebookWeb.NotFoundError, fn ->
|
||||
live(conn, ~p"/hub/#{hub.id}/deployment-groups/edit/9999999")
|
||||
|
|
|
@ -188,16 +188,6 @@ defmodule Livebook.HubHelpers do
|
|||
send(pid, {:event, :deployment_group_created, deployment_group_created})
|
||||
end
|
||||
|
||||
def remove_offline_hub_deployment_group(deployment_group) do
|
||||
hub = offline_hub()
|
||||
{:ok, pid} = hub_pid(hub)
|
||||
|
||||
deployment_group_deleted =
|
||||
%LivebookProto.DeploymentGroupDeleted{id: deployment_group.id}
|
||||
|
||||
send(pid, {:event, :deployment_group_deleted, deployment_group_deleted})
|
||||
end
|
||||
|
||||
def put_offline_hub_file_system(file_system) do
|
||||
hub = offline_hub()
|
||||
{:ok, pid} = hub_pid(hub)
|
||||
|
|
Loading…
Reference in a new issue