Skip to content

Commit

Permalink
Fix application instance deletion after_update (#1616)
Browse files Browse the repository at this point in the history
  • Loading branch information
arbulu89 authored Jul 11, 2023
1 parent 7a962ab commit 74402c1
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 23 deletions.
21 changes: 11 additions & 10 deletions lib/trento/application/projectors/database_projector.ex
Original file line number Diff line number Diff line change
Expand Up @@ -186,11 +186,12 @@ defmodule Trento.DatabaseProjector do
sap_system_id: sap_system_id
},
fn multi ->
deregistered_instance = %DatabaseInstanceReadModel{
sap_system_id: sap_system_id,
instance_number: instance_number,
host_id: host_id
}
deregistered_instance =
Repo.get_by(DatabaseInstanceReadModel,
sap_system_id: sap_system_id,
instance_number: instance_number,
host_id: host_id
)

Ecto.Multi.delete(multi, :database_instance, deregistered_instance)
end
Expand Down Expand Up @@ -346,12 +347,12 @@ defmodule Trento.DatabaseProjector do
sap_system_id: sap_system_id
},
_,
_
%{
database_instance: %DatabaseInstanceReadModel{
sid: sid
}
}
) do
%DatabaseReadModel{
sid: sid
} = Repo.get!(DatabaseReadModel, sap_system_id)

TrentoWeb.Endpoint.broadcast(
@databases_topic,
"database_instance_deregistered",
Expand Down
8 changes: 3 additions & 5 deletions lib/trento/application/projectors/sap_system_projector.ex
Original file line number Diff line number Diff line change
Expand Up @@ -357,12 +357,10 @@ defmodule Trento.SapSystemProjector do
sap_system_id: sap_system_id
},
_,
_
%{
application_instance: %ApplicationInstanceReadModel{sid: sid}
}
) do
%SapSystemReadModel{
sid: sid
} = Repo.get!(SapSystemReadModel, sap_system_id)

TrentoWeb.Endpoint.broadcast(
@sap_systems_topic,
"application_instance_deregistered",
Expand Down
11 changes: 7 additions & 4 deletions test/trento/application/projectors/database_projector_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -270,11 +270,14 @@ defmodule Trento.DatabaseProjectorTest do
test "should remove a database instance from the read model after a deregistration" do
deregistered_at = DateTime.utc_now()

%{sid: sid} = insert(:database, id: sap_system_id = Faker.UUID.v4())
insert_list(4, :database_instance)
%{
sid: sid,
sap_system_id: sap_system_id,
instance_number: instance_number,
host_id: host_id
} = insert(:database_instance)

%{instance_number: instance_number, host_id: host_id} =
insert(:database_instance, sap_system_id: sap_system_id, sid: sid)
insert_list(4, :database_instance)

event = %DatabaseInstanceDeregistered{
instance_number: instance_number,
Expand Down
10 changes: 6 additions & 4 deletions test/trento/application/projectors/sap_system_projector_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -279,10 +279,12 @@ defmodule Trento.SapSystemProjectorTest do
test "should remove an application instance from the read model after a deregistration" do
deregistered_at = DateTime.utc_now()

%{sid: sid} = insert(:sap_system, id: sap_system_id = Faker.UUID.v4())

%{instance_number: instance_number, host_id: host_id} =
insert(:application_instance, sap_system_id: sap_system_id, sid: sid)
%{
sid: sid,
sap_system_id: sap_system_id,
instance_number: instance_number,
host_id: host_id
} = insert(:application_instance)

insert_list(4, :application_instance)

Expand Down

0 comments on commit 74402c1

Please sign in to comment.