blob: 87a71f6d066e0b6b5b69909523fbdd9bc66bc818 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
<?php
/* Icinga Web 2 | (c) 2017 Icinga Development Team | GPLv2+ */
namespace Icinga\Module\Monitoring\Backend\Ido\Query;
/**
* Query for host and service notification events
*/
class NotificationeventQuery extends IdoQuery
{
protected $columnMap = array(
'notificationevent' => array(
'notificationevent_id' => 'n.notification_id',
'notificationevent_reason' => <<<EOF
(CASE n.notification_reason
WHEN 0 THEN 'normal_notification'
WHEN 1 THEN 'ack'
WHEN 2 THEN 'flapping_started'
WHEN 3 THEN 'flapping_stopped'
WHEN 4 THEN 'flapping_disabled'
WHEN 5 THEN 'dt_start'
WHEN 6 THEN 'dt_end'
WHEN 7 THEN 'dt_cancel'
WHEN 99 THEN 'custom_notification'
ELSE NULL
END)
EOF
,
'notificationevent_start_time' => 'UNIX_TIMESTAMP(n.start_time)',
'notificationevent_end_time' => 'UNIX_TIMESTAMP(n.end_time)',
'notificationevent_state' => 'n.state',
'notificationevent_output' => 'n.output',
'notificationevent_long_output' => 'n.long_output',
'notificationevent_escalated' => 'n.escalated',
'notificationevent_contacts_notified' => 'n.contacts_notified'
),
'object' => array(
'host_name' => 'o.name1',
'service_description' => 'o.name2'
)
);
protected function joinBaseTables()
{
$this->select()
->from(array('n' => $this->prefix . 'notifications'), array())
->join(array('o' => $this->prefix . 'objects'), 'n.object_id = o.object_id', array());
$this->joinedVirtualTables['notificationevent'] = true;
$this->joinedVirtualTables['object'] = true;
}
}
|