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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
|
<?php
/* Icinga Web 2 | (c) 2016 Icinga Development Team | GPLv2+ */
namespace Icinga\Module\Eventdb;
use ArrayObject;
class Event extends ArrayObject
{
public static $facilities = array(
0 => 'kernel messages',
1 => 'user-level messages',
2 => 'mail system',
3 => 'system daemons',
4 => 'security/authorization messages',
5 => 'messages generated internally by syslogd',
6 => 'line printer subsystem',
7 => 'network news subsystem',
8 => 'UUCP subsystem',
9 => 'clock daemon',
10 => 'security/authorization messages',
11 => 'FTP daemon',
12 => 'NTP subsystem',
13 => 'log audit',
14 => 'log alert',
15 => 'clock daemon',
16 => 'local use 0',
17 => 'local use 1',
18 => 'local use 2',
19 => 'local use 3',
20 => 'local use 4',
21 => 'local use 5',
22 => 'local use 6',
23 => 'local use 7'
);
public static $priorities = array(
0 => 'emergency',
1 => 'alert',
2 => 'critical',
3 => 'error',
4 => 'warning',
5 => 'notice',
6 => 'info',
7 => 'debug'
);
public static $types = array(
0 => 'syslog',
1 => 'snmp',
2 => 'mail'
);
public static $typeIcons = array(
'_default' => 'help',
'syslog' => 'doc-text',
'snmp' => 'plug',
'mail' => 'bell',
);
public function __construct($data)
{
parent::__construct($data, ArrayObject::ARRAY_AS_PROPS);
}
public function offsetGet($index)
{
if (! $this->offsetExists($index)) {
return null;
}
$getter = 'get' . ucfirst($index);
if (method_exists($this, $getter)) {
return $this->$getter();
}
return parent::offsetGet($index);
}
public function getAck()
{
return (bool) parent::offsetGet('ack');
}
public function getFacility()
{
$facility = (int) parent::offsetGet('facility');
return array_key_exists($facility, static::$facilities) ? static::$facilities[$facility] : $facility;
}
public function getPriority()
{
$priority = (int) parent::offsetGet('priority');
return array_key_exists($priority, static::$priorities) ? static::$priorities[$priority] : $priority;
}
public function getType()
{
$type = (int) parent::offsetGet('type');
return array_key_exists($type, static::$types) ? static::$types[$type] : $type;
}
public function getTypeIcon()
{
if (array_key_exists($type = $this->getType(), static::$typeIcons)) {
return static::$typeIcons[$type];
} else {
return static::$typeIcons['_default'];
}
}
public static function fromData($data)
{
return new static($data);
}
public static function getPriorityId($priorityName)
{
$priorities = array_flip(static::$priorities);
return $priorities[$priorityName];
}
}
|