Moteur watcher
Il faudrait déplacer le traitement des watchers (actuellement effectué dans axe) dans un nouveau moteur engine-watcher. Ce moteur devra être placé en entre axe et action.
axe
La valeur par défaut du flag -publishQueue d'axe doit être remplacée par Engine_watcher (au lieu d'Engine_action).
Les appels au service watcher (et son initialisation) doivent être supprimés et déplacés dans axe.
watcher
Le moteur doit accepter ces options (à définir dans cmd/engine-watcher/main.go et cmd/engine-watcher/dependencies.go, en s'inspirant de cmd/engine-axe) :
-d debug
-printEventOnError
Print event on processing error
-publishQueue string
Publish event to this queue. (default "Engine_action")
-version
version infos
A priori l'interface du service watcher n'a pas besoin d'être modifiée. Lors de la réception d'un événement, il y a deux cas à gérer :
-
event.Entity,event.Alarmetevent.AlarmChangesont définis : il faut appelerProcess(event, event.AlarmChange) -
event.BulkAlarmsWithEntityest défini etevent.BulkTypevauttypes.AlarmChangeTypeResolve: il faut appelerProcessResolvedAlarms(event.BulkAlarmsWithEntity).
Les autres événements sont ignorés.
Le beat doit reprendre les appels au service watcher qui étaient effectués dans axe.