Since a situation contains one or more related alarms, we need to define what it means to acknowledge a situation, or for a situation to be acknowledged:
- Ack a situation should ack all of the related alarms which are unacked
- Unacking a situation should unack all acked alarms
- A situation is deemed "acked" if the situation and all related alarms are acked
- If a new unacked alarm gets added to an acked situation, then the situation itself should be unacked (but all other related alarms which were acked should remain acked)
It should be possible to implement this logic in the alarmd Drools context.