Removes deployment group deletion (#2479)

This commit is contained in:
Cristine Guadelupe 2024-02-09 15:59:36 +07:00 committed by GitHub
parent fe5598dbb5
commit c9d505a2b4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 11 additions and 149 deletions

View file

@ -198,21 +198,6 @@ defmodule Livebook.Teams do
end end
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 """ @doc """
Creates an Agent Key. Creates an Agent Key.
""" """

View file

@ -197,15 +197,6 @@ defmodule Livebook.Teams.Requests do
put("/api/v1/org/deployment-groups", params, team) put("/api/v1/org/deployment-groups", params, team)
end 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 """ @doc """
Send a request to Livebook Team API to create an agent key. Send a request to Livebook Team API to create an agent key.
""" """

View file

@ -1,8 +1,6 @@
defmodule LivebookWeb.Hub.Teams.DeploymentGroupListComponent do defmodule LivebookWeb.Hub.Teams.DeploymentGroupListComponent do
use LivebookWeb, :live_component use LivebookWeb, :live_component
alias Livebook.Teams
@impl true @impl true
def render(assigns) do def render(assigns) do
~H""" ~H"""
@ -37,23 +35,6 @@ defmodule LivebookWeb.Hub.Teams.DeploymentGroupListComponent do
<span>Edit</span> <span>Edit</span>
</.link> </.link>
</.menu_item> </.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> </.menu>
</div> </div>
</div> </div>
@ -66,31 +47,4 @@ defmodule LivebookWeb.Hub.Teams.DeploymentGroupListComponent do
</div> </div>
""" """
end 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 end

View file

@ -11,7 +11,6 @@ defmodule LivebookProto do
SecretDeleted, SecretDeleted,
SecretUpdated, SecretUpdated,
DeploymentGroupCreated, DeploymentGroupCreated,
DeploymentGroupDeleted,
DeploymentGroupUpdated, DeploymentGroupUpdated,
UserConnected UserConnected
} }
@ -32,7 +31,6 @@ defmodule LivebookProto do
| SecretDeleted.t() | SecretDeleted.t()
| SecretUpdated.t() | SecretUpdated.t()
| DeploymentGroupCreated.t() | DeploymentGroupCreated.t()
| DeploymentGroupDeleted.t()
| DeploymentGroupUpdated.t() | DeploymentGroupUpdated.t()
| UserConnected.t() | UserConnected.t()

View file

@ -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

View file

@ -48,22 +48,17 @@ defmodule LivebookProto.Event do
json_name: "deploymentGroupUpdated", json_name: "deploymentGroupUpdated",
oneof: 0 oneof: 0
field :deployment_group_deleted, 10, field :agent_connected, 10,
type: LivebookProto.DeploymentGroupDeleted,
json_name: "deploymentGroupDeleted",
oneof: 0
field :agent_connected, 11,
type: LivebookProto.AgentConnected, type: LivebookProto.AgentConnected,
json_name: "agentConnected", json_name: "agentConnected",
oneof: 0 oneof: 0
field :agent_key_created, 12, field :agent_key_created, 11,
type: LivebookProto.AgentKeyCreated, type: LivebookProto.AgentKeyCreated,
json_name: "agentKeyCreated", json_name: "agentKeyCreated",
oneof: 0 oneof: 0
field :agent_key_deleted, 13, field :agent_key_deleted, 12,
type: LivebookProto.AgentKeyDeleted, type: LivebookProto.AgentKeyDeleted,
json_name: "agentKeyDeleted", json_name: "agentKeyDeleted",
oneof: 0 oneof: 0

View file

@ -123,9 +123,6 @@ defmodule Livebook.Hubs.TeamClientTest do
# receives `{:deployment_group_updated, deployment_group}` event # receives `{:deployment_group_updated, deployment_group}` event
assert_receive {:deployment_group_updated, ^updated_deployment_group} 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 # receives `{:deployment_group_deleted, deployment_group}` event
assert_receive {:deployment_group_deleted, ^updated_deployment_group} assert_receive {:deployment_group_deleted, ^updated_deployment_group}
end end

View file

@ -242,16 +242,4 @@ defmodule Livebook.TeamsTest do
assert "is invalid" in errors_on(changeset).mode assert "is invalid" in errors_on(changeset).mode
end end
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 end

View file

@ -86,7 +86,7 @@ defmodule LivebookWeb.Integration.Hub.DeploymentGroupLiveTest do
} }
} }
new_mode = :offline new_name = "FOO"
{:ok, view, html} = {:ok, view, html} =
live(conn, ~p"/hub/#{hub.id}/deployment-groups/edit/#{deployment_group.id}") live(conn, ~p"/hub/#{hub.id}/deployment-groups/edit/#{deployment_group.id}")
@ -106,13 +106,13 @@ defmodule LivebookWeb.Integration.Hub.DeploymentGroupLiveTest do
view view
|> element("#deployment-groups-form") |> 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_receive {:deployment_group_updated, ^updated_deployment_group}
assert_patch(view, "/hub/#{hub.id}/deployment-groups/edit/#{deployment_group.id}") 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) assert updated_deployment_group in Livebook.Teams.get_deployment_groups(hub)
end end

View file

@ -375,7 +375,7 @@ defmodule LivebookWeb.Integration.Hub.EditLiveTest do
} }
} }
new_mode = :offline new_name = "FOO"
view view
|> element("#hub-deployment-group-#{deployment_group.id}-edit") |> element("#hub-deployment-group-#{deployment_group.id}-edit")
@ -401,47 +401,16 @@ defmodule LivebookWeb.Integration.Hub.EditLiveTest do
view view
|> element("#deployment-groups-form") |> 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_receive {:deployment_group_updated, ^updated_deployment_group}
assert_patch(view, "/hub/#{hub.id}/deployment-groups/edit/#{deployment_group.id}") 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) assert updated_deployment_group in Livebook.Teams.get_deployment_groups(hub)
end 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 test "raises an error if the deployment group does not exist", %{conn: conn, hub: hub} do
assert_raise LivebookWeb.NotFoundError, fn -> assert_raise LivebookWeb.NotFoundError, fn ->
live(conn, ~p"/hub/#{hub.id}/deployment-groups/edit/9999999") live(conn, ~p"/hub/#{hub.id}/deployment-groups/edit/9999999")

View file

@ -188,16 +188,6 @@ defmodule Livebook.HubHelpers do
send(pid, {:event, :deployment_group_created, deployment_group_created}) send(pid, {:event, :deployment_group_created, deployment_group_created})
end 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 def put_offline_hub_file_system(file_system) do
hub = offline_hub() hub = offline_hub()
{:ok, pid} = hub_pid(hub) {:ok, pid} = hub_pid(hub)