mirror of
https://github.com/Icinga/icingaweb2.git
synced 2025-06-29 18:14:26 +02: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
143 lines
4.4 KiB
PHP
143 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');
|
|
}
|
|
}
|