monitoring: Adapt host and service classes to match their base class' interface
This commit is contained in:
parent
aca5a2e466
commit
c0e3447339
|
@ -4,32 +4,64 @@
|
||||||
|
|
||||||
namespace Icinga\Module\Monitoring\Object;
|
namespace Icinga\Module\Monitoring\Object;
|
||||||
|
|
||||||
use Icinga\Module\Monitoring\DataView\HostStatus;
|
use Icinga\Module\Monitoring\Backend;
|
||||||
use Icinga\Data\Db\DbQuery;
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A Icinga host
|
||||||
|
*/
|
||||||
class Host extends MonitoredObject
|
class Host extends MonitoredObject
|
||||||
{
|
{
|
||||||
public $type = 'host';
|
/**
|
||||||
|
* Type of the Icinga host
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $type = self::TYPE_HOST;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prefix of the Icinga host
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
public $prefix = 'host_';
|
public $prefix = 'host_';
|
||||||
|
|
||||||
protected function applyObjectFilter(DbQuery $query)
|
/**
|
||||||
|
* Host name
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $host;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new host
|
||||||
|
*
|
||||||
|
* @param Backend $backend Backend to fetch host information from
|
||||||
|
* @param string $host Host name
|
||||||
|
*/
|
||||||
|
public function __construct(Backend $backend, $host)
|
||||||
{
|
{
|
||||||
return $query->where('host_name', $this->host_name);
|
parent::__construct($backend);
|
||||||
|
$this->host = $host;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function populate()
|
/**
|
||||||
|
* Get the host name
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getHost()
|
||||||
{
|
{
|
||||||
$this->fetchComments()
|
return $this->host;
|
||||||
->fetchHostgroups()
|
|
||||||
->fetchContacts()
|
|
||||||
->fetchContactGroups()
|
|
||||||
->fetchCustomvars()
|
|
||||||
->fetchDowntimes();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getProperties()
|
/**
|
||||||
|
* Get the data view to fetch the host information from
|
||||||
|
*
|
||||||
|
* @return \Icinga\Module\Monitoring\DataView\HostStatus
|
||||||
|
*/
|
||||||
|
protected function getDataView()
|
||||||
{
|
{
|
||||||
$this->view = HostStatus::fromParams(array('backend' => null), array(
|
return $this->backend->select()->from('hostStatus', array(
|
||||||
'host_name',
|
'host_name',
|
||||||
'host_alias',
|
'host_alias',
|
||||||
'host_address',
|
'host_address',
|
||||||
|
@ -70,8 +102,8 @@ class Host extends MonitoredObject
|
||||||
'host_notes_url',
|
'host_notes_url',
|
||||||
'host_modified_host_attributes',
|
'host_modified_host_attributes',
|
||||||
'host_problem',
|
'host_problem',
|
||||||
'process_perfdata' => 'host_process_performance_data',
|
'host_process_performance_data'
|
||||||
))->where('host_name', $this->params->get('host'));
|
))
|
||||||
return $this->view->getQuery()->fetchRow();
|
->where('host_name', $this->host);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,33 +4,83 @@
|
||||||
|
|
||||||
namespace Icinga\Module\Monitoring\Object;
|
namespace Icinga\Module\Monitoring\Object;
|
||||||
|
|
||||||
use Icinga\Module\Monitoring\DataView\ServiceStatus;
|
use Icinga\Module\Monitoring\Backend;
|
||||||
use Icinga\Data\Db\DbQuery;
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A Icinga service
|
||||||
|
*/
|
||||||
class Service extends MonitoredObject
|
class Service extends MonitoredObject
|
||||||
{
|
{
|
||||||
public $type = 'service';
|
/**
|
||||||
|
* Type of the Icinga service
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $type = self::TYPE_SERVICE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prefix of the Icinga service
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
public $prefix = 'service_';
|
public $prefix = 'service_';
|
||||||
|
|
||||||
protected function applyObjectFilter(DbQuery $query)
|
/**
|
||||||
|
* Host name the service is running on
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $host;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Service name
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new service
|
||||||
|
*
|
||||||
|
* @param Backend $backend Backend to fetch service information from
|
||||||
|
* @param string $host Host name the service is running on
|
||||||
|
* @param string $service Service name
|
||||||
|
*/
|
||||||
|
public function __construct(Backend $backend, $host, $service)
|
||||||
{
|
{
|
||||||
return $query->where('service_host_name', $this->host_name)
|
parent::__construct($backend);
|
||||||
->where('service_description', $this->service_description);
|
$this->host = $host;
|
||||||
|
$this->service = $service;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function populate()
|
/**
|
||||||
|
* Get the host name the service is running on
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getHost()
|
||||||
{
|
{
|
||||||
$this->fetchComments()
|
return $this->host;
|
||||||
->fetchServicegroups()
|
|
||||||
->fetchContacts()
|
|
||||||
->fetchContactGroups()
|
|
||||||
->fetchCustomvars()
|
|
||||||
->fetchDowntimes();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getProperties()
|
/**
|
||||||
|
* Get the service name
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getService()
|
||||||
{
|
{
|
||||||
$this->view = ServiceStatus::fromParams(array('backend' => null), array(
|
return $this->service;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the data view
|
||||||
|
*
|
||||||
|
* @return \Icinga\Module\Monitoring\DataView\ServiceStatus
|
||||||
|
*/
|
||||||
|
protected function getDataView()
|
||||||
|
{
|
||||||
|
return $this->backend->select()->from('serviceStatus', array(
|
||||||
'host_name',
|
'host_name',
|
||||||
'host_state',
|
'host_state',
|
||||||
'host_state_type',
|
'host_state_type',
|
||||||
|
@ -114,30 +164,10 @@ class Service extends MonitoredObject
|
||||||
'service_flap_detection_enabled',
|
'service_flap_detection_enabled',
|
||||||
'service_flap_detection_enabled_changed',
|
'service_flap_detection_enabled_changed',
|
||||||
'service_modified_service_attributes',
|
'service_modified_service_attributes',
|
||||||
'process_perfdata' => 'service_process_performance_data',
|
'service_process_performance_data',
|
||||||
))->where('host_name', $this->params->get('host'))
|
'service_percent_state_change'
|
||||||
->where('service_description', $this->params->get('service'));
|
))
|
||||||
|
->where('host_name', $this->host)
|
||||||
return $this->view->getQuery()->fetchRow();
|
->where('service_description', $this->service);
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue