Skip to content

Commit

Permalink
UnreachableParent: Only fetch responsible nodes
Browse files Browse the repository at this point in the history
A node is responsible if:

* it's a host which is reachable but has a problem
* it's a service which is reachable but has a problem
* it's a redundancy group which is reachable but has failed
  • Loading branch information
nilmerg committed Nov 28, 2024
1 parent e355db1 commit 7f4bd9f
Showing 1 changed file with 14 additions and 4 deletions.
18 changes: 14 additions & 4 deletions library/Icingadb/Model/UnreachableParent.php
Original file line number Diff line number Diff line change
Expand Up @@ -96,10 +96,20 @@ public static function on(Connection $db, Model $root = null): Query
self::selectNodes($db, $root),
'unreachable_parent',
true
)->where([
'unreachable_parent.level > ?' => 0,
'unreachable_parent.is_group_member = ?' => 0
]);
);

$query->filter(Filter::all(
Filter::greaterThan('level', 0),
Filter::equal('is_group_member', 0),
Filter::any(
Filter::equal('service.state.affects_children', 'y'),
Filter::all(
Filter::unlike('service_id', '*'),
Filter::equal('host.state.affects_children', 'y')
),
Filter::equal('redundancy_group.state.failed', 'y')
)
));

return $query;
}
Expand Down

0 comments on commit 7f4bd9f

Please sign in to comment.