chore(health): avoid duplicate interface health check speficiations

This commit is contained in:
Steffen Jost 2024-07-08 17:40:53 +02:00
parent 2caa5aec5b
commit 9d3198f49b

View File

@ -115,7 +115,16 @@ mkInterfaceLogTable flagError interfs@(reqIfs, banIfs) = do
EL.on ( ilog E.^. InterfaceLogInterface E.=?. ihealth E.?. InterfaceHealthInterface
E.&&. ilog E.^. InterfaceLogSubtype E.=~. E.joinV (ihealth E.?. InterfaceHealthSubtype)
E.&&. ilog E.^. InterfaceLogWrite E.=~. E.joinV (ihealth E.?. InterfaceHealthWrite )
)
E.&&. E.notExists (do -- a more specific match does not exist
otherh <- E.from $ E.table @InterfaceHealth
E.where_ $ otherh E.^. InterfaceHealthInterface E.=?. ihealth E.?. InterfaceHealthInterface
E.&&. E.just (otherh E.^. InterfaceHealthHours) E.!=. ihealth E.?. InterfaceHealthHours
E.&&. ( (otherh E.^. InterfaceHealthSubtype E.?=. ilog E.^. InterfaceLogSubtype) E.&&. E.isNothing (E.joinV $ ihealth E.?. InterfaceHealthSubtype)
E.||. otherh E.^. InterfaceHealthSubtype E.=?. ihealth E.?. InterfaceHealthSubtype)
E.&&. ( (otherh E.^. InterfaceHealthWrite E.?=. ilog E.^. InterfaceLogWrite ) E.&&. E.isNothing (E.joinV $ ihealth E.?. InterfaceHealthWrite )
E.||. otherh E.^. InterfaceHealthWrite E.=?. ihealth E.?. InterfaceHealthWrite )
)
)
let matchUIH crits = E.or
[ E.and $ catMaybes
[ ilog E.^. InterfaceLogInterface E.==. E.val (sanitize ifce) & Just