Island: Fix a bug where failed ping scan created machines

This commit is contained in:
vakarisz 2022-09-29 13:02:04 +03:00 committed by Kekoa Kaaikala
parent 3d80adbcd5
commit 4d2a6083a1
2 changed files with 18 additions and 0 deletions

View File

@ -26,6 +26,9 @@ class handle_ping_scan_event:
self._node_repository = node_repository self._node_repository = node_repository
def __call__(self, event: PingScanEvent): def __call__(self, event: PingScanEvent):
if not event.response_received:
return
try: try:
dest_machine = self._get_destination_machine(event) dest_machine = self._get_destination_machine(event)
self._update_destination_machine(dest_machine, event) self._update_destination_machine(dest_machine, event)

View File

@ -234,3 +234,18 @@ def test_handle_scan_data__node_not_upserted_if_machine_storageerror(
handler(EVENT) handler(EVENT)
assert not node_repository.upsert_communication.called assert not node_repository.upsert_communication.called
def test_handle_scan_data__failed_ping(
handler: handle_ping_scan_event,
machine_repository: IMachineRepository,
node_repository: INodeRepository,
):
machine_repository.upsert_machine = MagicMock(side_effect=StorageError)
machine_repository.get_machine_by_id = MagicMock(side_effect=machine_from_id)
machine_repository.get_machines_by_ip = MagicMock(side_effect=machines_from_ip)
handler(EVENT_NO_RESPONSE)
assert not node_repository.upsert_communication.called
assert not machine_repository.upsert_machine.called