diff --git a/lib/towerops/workers/device_poller_worker.ex b/lib/towerops/workers/device_poller_worker.ex index 28f22496..5c7e561e 100644 --- a/lib/towerops/workers/device_poller_worker.ex +++ b/lib/towerops/workers/device_poller_worker.ex @@ -328,6 +328,15 @@ defmodule Towerops.Workers.DevicePollerWorker do "device:#{device.id}", {:neighbors_updated, device.id} ) + + # Run topology inference after neighbor data is saved + case Towerops.Topology.process_device(device, device.organization_id) do + {:ok, :changed} -> + Logger.debug("Topology updated for #{device.name}") + + {:ok, :unchanged} -> + :ok + end rescue error -> Logger.error("Error polling neighbors for #{device.name}: #{inspect(error)}\n#{Exception.format_stacktrace()}")