Skip to content

Commit

Permalink
Only broadcast HostRemovedFromCluster when Host is part of Cluster
Browse files Browse the repository at this point in the history
  • Loading branch information
jamie-suse committed Jul 11, 2023
1 parent c553018 commit d615d40
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 2 deletions.
10 changes: 10 additions & 0 deletions lib/trento/application/projectors/host_projector.ex
Original file line number Diff line number Diff line change
Expand Up @@ -275,6 +275,16 @@ defmodule Trento.HostProjector do
end
end

def after_update(
%HostRemovedFromCluster{host_id: host_id},
_,
%{host: %Trento.HostReadModel{cluster_id: nil}}
) do
TrentoWeb.Endpoint.broadcast("monitoring:hosts", "host_details_updated", %{
id: host_id
})
end

def after_update(
%HostDetailsUpdated{},
_,
Expand Down
12 changes: 10 additions & 2 deletions test/trento/application/projectors/host_projector_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -148,8 +148,12 @@ defmodule Trento.HostProjectorTest do
}

ProjectorTestHelper.project(HostProjector, event, "host_projector")
projection = Repo.get!(HostReadModel, host_id)

assert_broadcast "host_details_updated",
%{id: ^host_id},
1000

projection = Repo.get!(HostReadModel, host_id)
assert nil == projection.cluster_id
end

Expand All @@ -169,8 +173,12 @@ defmodule Trento.HostProjectorTest do
}

ProjectorTestHelper.project(HostProjector, event, "host_projector")
projection = Repo.get!(HostReadModel, host_id)

refute_broadcast "host_details_updated",
%{id: ^host_id},
1000

projection = Repo.get!(HostReadModel, host_id)
assert cluster_id == projection.cluster_id
end

Expand Down

0 comments on commit d615d40

Please sign in to comment.