mirror of
https://github.com/Icinga/icingaweb2.git
synced 2026-02-11 14:53:11 -05:00
The upcoming service command objects will require a service object. In order to build the command string, the service command objects require retrieval of the service's host name and the service's name. The actual implementation of the methods is subject to change refs #6593
142 lines
4.4 KiB
PHP
142 lines
4.4 KiB
PHP
<?php
|
|
// {{{ICINGA_LICENSE_HEADER}}}
|
|
// {{{ICINGA_LICENSE_HEADER}}}
|
|
|
|
namespace Icinga\Module\Monitoring\Object;
|
|
|
|
use Icinga\Module\Monitoring\DataView\ServiceStatus;
|
|
use Icinga\Data\Db\DbQuery;
|
|
|
|
class Service extends AbstractObject
|
|
{
|
|
public $type = 'service';
|
|
public $prefix = 'service_';
|
|
|
|
protected function applyObjectFilter(DbQuery $query)
|
|
{
|
|
return $query->where('service_host_name', $this->host_name)
|
|
->where('service_description', $this->service_description);
|
|
}
|
|
|
|
public function populate()
|
|
{
|
|
$this->fetchComments()
|
|
->fetchServicegroups()
|
|
->fetchContacts()
|
|
->fetchContactGroups()
|
|
->fetchCustomvars()
|
|
->fetchDowntimes();
|
|
}
|
|
|
|
protected function getProperties()
|
|
{
|
|
$this->view = ServiceStatus::fromParams(array('backend' => null), array(
|
|
'host_name',
|
|
'host_state',
|
|
'host_state_type',
|
|
'host_last_state_change',
|
|
'host_address',
|
|
'host_problem',
|
|
'host_handled',
|
|
'service_description',
|
|
'service_display_name',
|
|
'service_state',
|
|
'service_in_downtime',
|
|
'service_acknowledged',
|
|
'service_handled',
|
|
'service_unhandled',
|
|
'service_output',
|
|
'service_last_state_change',
|
|
'service_icon_image',
|
|
'service_long_output',
|
|
'service_is_flapping',
|
|
'service_state_type',
|
|
'service_severity',
|
|
'service_last_check',
|
|
'service_notifications_enabled',
|
|
'service_notifications_enabled_changed',
|
|
'service_action_url',
|
|
'service_notes_url',
|
|
'service_last_check',
|
|
'service_next_check',
|
|
'service_attempt',
|
|
'service_last_notification',
|
|
'service_check_command',
|
|
'service_check_source',
|
|
'service_current_notification_number',
|
|
'host_icon_image',
|
|
'host_acknowledged',
|
|
'host_output',
|
|
'host_long_output',
|
|
'host_in_downtime',
|
|
'host_is_flapping',
|
|
'host_last_check',
|
|
'host_notifications_enabled',
|
|
'host_unhandled_services',
|
|
'host_action_url',
|
|
'host_notes_url',
|
|
'host_display_name',
|
|
'host_alias',
|
|
'host_ipv4',
|
|
'host_severity',
|
|
'host_perfdata',
|
|
'host_active_checks_enabled',
|
|
'host_passive_checks_enabled',
|
|
'host_last_hard_state',
|
|
'host_last_hard_state_change',
|
|
'host_last_time_up',
|
|
'host_last_time_down',
|
|
'host_last_time_unreachable',
|
|
'host_modified_host_attributes',
|
|
'host',
|
|
'service',
|
|
'service_hard_state',
|
|
'service_problem',
|
|
'service_perfdata',
|
|
'service_active_checks_enabled',
|
|
'service_active_checks_enabled_changed',
|
|
'service_passive_checks_enabled',
|
|
'service_passive_checks_enabled_changed',
|
|
'service_last_hard_state',
|
|
'service_last_hard_state_change',
|
|
'service_last_time_ok',
|
|
'service_last_time_warning',
|
|
'service_last_time_critical',
|
|
'service_last_time_unknown',
|
|
'service_check_execution_time',
|
|
'service_check_latency',
|
|
'service_current_check_attempt',
|
|
'service_max_check_attempts',
|
|
'service_obsessing',
|
|
'service_obsessing_changed',
|
|
'service_event_handler_enabled',
|
|
'service_event_handler_enabled_changed',
|
|
'service_flap_detection_enabled',
|
|
'service_flap_detection_enabled_changed',
|
|
'service_modified_service_attributes',
|
|
))->where('host_name', $this->params->get('host'))
|
|
->where('service_description', $this->params->get('service'));
|
|
|
|
return $this->view->getQuery()->fetchRow();
|
|
}
|
|
|
|
/**
|
|
* Get the host name the service is running on
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getHostName()
|
|
{
|
|
return $this->params->get('host');
|
|
}
|
|
|
|
/**
|
|
* Get the service name
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getName()
|
|
{
|
|
return $this->params->get('service');
|
|
}
|
|
}
|