mirror of
https://github.com/livebook-dev/livebook.git
synced 2025-12-18 22:21:32 +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
|
||||||
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.
|
||||||
"""
|
"""
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
"""
|
"""
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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",
|
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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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")
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue