Merge branch 'master' into bugfix/Take-display_name-into-account-when-searching-for-host-and-service-names-8241
Conflicts: modules/monitoring/application/controllers/ListController.php
This commit is contained in:
commit
b9a6e1042d
|
@ -11,11 +11,11 @@ use Icinga\Web\Form;
|
|||
class ConfirmRemovalForm extends Form
|
||||
{
|
||||
/**
|
||||
* Initalize this form
|
||||
* Initialize this form
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
$this->setName('form_confirm_removal');
|
||||
$this->setSubmitLabel($this->translate('Confirm Removal'));
|
||||
$this->getSubmitLabel() ?: $this->setSubmitLabel($this->translate('Confirm Removal'));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -167,7 +167,7 @@ class Params
|
|||
*
|
||||
* @throws MissingParameterException If the parameter was not given
|
||||
*/
|
||||
public function req($name, $strict = true)
|
||||
public function getRequired($name, $strict = true)
|
||||
{
|
||||
if ($this->has($name)) {
|
||||
$value = $this->get($name);
|
||||
|
@ -258,6 +258,30 @@ class Params
|
|||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Require and remove a parameter
|
||||
*
|
||||
* @param string $name Name of the parameter
|
||||
* @param bool $strict Whether the parameter's value must not be the empty string
|
||||
*
|
||||
* @return mixed
|
||||
*
|
||||
* @throws MissingParameterException If the parameter was not given
|
||||
*/
|
||||
public function shiftRequired($name, $strict = true)
|
||||
{
|
||||
if ($this->has($name)) {
|
||||
$value = $this->get($name);
|
||||
if (! $strict || strlen($value) > 0) {
|
||||
$this->shift($name);
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
$e = new MissingParameterException(t('Required parameter \'%s\' missing'), $name);
|
||||
$e->setParameter($name);
|
||||
throw $e;
|
||||
}
|
||||
|
||||
/**
|
||||
* Put the given value onto the argument stack
|
||||
*
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
namespace Icinga\Web;
|
||||
|
||||
use Zend_Controller_Action_Exception;
|
||||
use Icinga\Data\Sortable;
|
||||
use Icinga\Data\QueryInterface;
|
||||
use Icinga\Web\Controller\ModuleActionController;
|
||||
|
@ -49,6 +50,18 @@ class Controller extends ModuleActionController
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Immediately respond w/ HTTP 404
|
||||
*
|
||||
* @param $message
|
||||
*
|
||||
* @throws Zend_Controller_Action_Exception
|
||||
*/
|
||||
public function httpNotFound($message)
|
||||
{
|
||||
throw new Zend_Controller_Action_Exception($message, 404);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a SortBox widget and apply its sort rules on the given query
|
||||
*
|
||||
|
|
|
@ -54,7 +54,7 @@ class UrlParams
|
|||
*
|
||||
* @throws MissingParameterException If the parameter was not given
|
||||
*/
|
||||
public function req($name, $strict = true)
|
||||
public function getRequired($name, $strict = true)
|
||||
{
|
||||
if ($this->has($name)) {
|
||||
$value = $this->get($name);
|
||||
|
@ -138,6 +138,30 @@ class UrlParams
|
|||
return $ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Require and remove a parameter
|
||||
*
|
||||
* @param string $name Name of the parameter
|
||||
* @param bool $strict Whether the parameter's value must not be the empty string
|
||||
*
|
||||
* @return mixed
|
||||
*
|
||||
* @throws MissingParameterException If the parameter was not given
|
||||
*/
|
||||
public function shiftRequired($name, $strict = true)
|
||||
{
|
||||
if ($this->has($name)) {
|
||||
$value = $this->get($name);
|
||||
if (! $strict || strlen($value) > 0) {
|
||||
$this->shift($name);
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
$e = new MissingParameterException(t('Required parameter \'%s\' missing'), $name);
|
||||
$e->setParameter($name);
|
||||
throw $e;
|
||||
}
|
||||
|
||||
public function addEncoded($param, $value = true)
|
||||
{
|
||||
$this->params[] = array($param, $this->cleanupValue($value));
|
||||
|
|
|
@ -12,7 +12,6 @@ use Icinga\Web\Widget\Tabs;
|
|||
use Icinga\Data\Filter\Filter;
|
||||
use Icinga\Web\Widget;
|
||||
use Icinga\Module\Monitoring\Forms\StatehistoryForm;
|
||||
use Icinga\Data\Filterable;
|
||||
use Icinga\Module\Monitoring\DataView\DataView;
|
||||
|
||||
class Monitoring_ListController extends Controller
|
||||
|
@ -530,6 +529,7 @@ class Monitoring_ListController extends Controller
|
|||
'hosts_down_unhandled',
|
||||
'hosts_pending',
|
||||
'hosts_pending_last_state_change',
|
||||
'hosts_total',
|
||||
'hosts_unreachable_handled',
|
||||
'hosts_unreachable_last_state_change_handled',
|
||||
'hosts_unreachable_last_state_change_unhandled',
|
||||
|
|
|
@ -22,6 +22,8 @@ if (count($hostgroups) === 0) {
|
|||
<thead>
|
||||
<th><?= $this->translate('Last Problem'); ?></th>
|
||||
<th><?= $this->translate('Host Group'); ?></th>
|
||||
<th><?= $this->translate('Total Hosts'); ?></th>
|
||||
<th><?= $this->translate('Host States'); ?></th>
|
||||
<th><?= $this->translate('Total Services'); ?></th>
|
||||
<th><?= $this->translate('Service States'); ?></th>
|
||||
</thead>
|
||||
|
@ -68,6 +70,173 @@ if (count($hostgroups) === 0) {
|
|||
array('title' => sprintf($this->translate('List all hosts in the group "%s"'), $h->hostgroup_alias))
|
||||
); ?>
|
||||
</td>
|
||||
<td class="total">
|
||||
<?= $this->qlink(
|
||||
$h->hosts_total,
|
||||
'monitoring/list/hosts',
|
||||
array('hostgroup_name' => $h->hostgroup_name),
|
||||
array('title' => sprintf(
|
||||
$this->translate('List all hosts in host group "%s"'),
|
||||
$h->hostgroup_alias
|
||||
))
|
||||
); ?>
|
||||
</td>
|
||||
<td>
|
||||
<?php if ($h->hosts_up): ?>
|
||||
<span class="state ok">
|
||||
<?= $this->qlink(
|
||||
$h->hosts_up,
|
||||
'monitoring/list/hosts',
|
||||
array(
|
||||
'host_state' => 0,
|
||||
'hostgroup_name' => $h->hostgroup_name,
|
||||
'sort' => 'host_severity'
|
||||
),
|
||||
array(
|
||||
'title' => sprintf(
|
||||
$this->translatePlural(
|
||||
'List %u host that is currently in state UP in the host group "%s"',
|
||||
'List %u hosts which are currently in state UP in the host group "%s"',
|
||||
$h->hosts_up
|
||||
),
|
||||
$h->hosts_up,
|
||||
$h->hostgroup_alias
|
||||
)
|
||||
)
|
||||
); ?>
|
||||
</span>
|
||||
<?php endif ?>
|
||||
<?php if ($h->hosts_down_unhandled): ?>
|
||||
<span class="state critical">
|
||||
<?= $this->qlink(
|
||||
$h->hosts_down_unhandled,
|
||||
'monitoring/list/hosts',
|
||||
array(
|
||||
'host_state' => 1,
|
||||
'host_acknowledged' => 0,
|
||||
'host_in_downtime' => 0,
|
||||
'hostgroup_name' => $h->hostgroup_name,
|
||||
'sort' => 'host_severity'
|
||||
),
|
||||
array(
|
||||
'title' => sprintf(
|
||||
$this->translatePlural(
|
||||
'List %u host that is currently in state DOWN in the host group "%s"',
|
||||
'List %u hosts which are currently in state DOWN in the host group "%s"',
|
||||
$h->hosts_down_unhandled
|
||||
),
|
||||
$h->hosts_down_unhandled,
|
||||
$h->hostgroup_alias
|
||||
)
|
||||
)
|
||||
); ?>
|
||||
<?php endif ?>
|
||||
<?php if ($h->hosts_down_handled): ?>
|
||||
<span class="state critical handled">
|
||||
<?= $this->qlink(
|
||||
$h->hosts_down_handled,
|
||||
'monitoring/list/hosts',
|
||||
array(
|
||||
'host_state' => 1,
|
||||
'host_handled' => 1,
|
||||
'hostgroup_name' => $h->hostgroup_name,
|
||||
'sort' => 'host_severity'
|
||||
),
|
||||
array(
|
||||
'title' => sprintf(
|
||||
$this->translatePlural(
|
||||
'List %u host that is currently in state DOWN (Acknowledged) in the host group "%s"',
|
||||
'List %u hosts which are currently in state DOWN (Acknowledged) in the host group "%s"',
|
||||
$h->hosts_down_handled
|
||||
),
|
||||
$h->hosts_down_handled,
|
||||
$h->hostgroup_alias
|
||||
)
|
||||
)
|
||||
); ?>
|
||||
</span>
|
||||
<?php endif ?>
|
||||
<?php if ($h->hosts_down_unhandled): ?>
|
||||
</span>
|
||||
<?php endif ?>
|
||||
<?php if ($h->hosts_unreachable_unhandled): ?>
|
||||
<span class="state unknown">
|
||||
<?= $this->qlink(
|
||||
$h->hosts_unreachable_unhandled,
|
||||
'monitoring/list/hosts',
|
||||
array(
|
||||
'host_state' => 2,
|
||||
'host_acknowledged' => 0,
|
||||
'host_in_downtime' => 0,
|
||||
'hostgroup_name' => $h->hostgroup_name,
|
||||
'sort' => 'host_severity'
|
||||
),
|
||||
array(
|
||||
'title' => sprintf(
|
||||
$this->translatePlural(
|
||||
'List %u host that is currently in state UNREACHABLE in the host group "%s"',
|
||||
'List %u hosts which are currently in state UNREACHABLE in the host group "%s"',
|
||||
$h->hosts_unreachable_unhandled
|
||||
),
|
||||
$h->hosts_unreachable_unhandled,
|
||||
$h->hostgroup_alias
|
||||
)
|
||||
)
|
||||
); ?>
|
||||
<?php endif ?>
|
||||
<?php if ($h->hosts_unreachable_handled): ?>
|
||||
<span class="state unknown handled">
|
||||
<?= $this->qlink(
|
||||
$h->hosts_unreachable_handled,
|
||||
'monitoring/list/hosts',
|
||||
array(
|
||||
'host_state' => 2,
|
||||
'host_handled' => 1,
|
||||
'hostgroup_name' => $h->hostgroup_name,
|
||||
'sort' => 'host_severity'
|
||||
),
|
||||
array(
|
||||
'title' => sprintf(
|
||||
$this->translatePlural(
|
||||
'List %u host that is currently in state UNREACHABLE (Acknowledged) in the host group "%s"',
|
||||
'List %u hosts which are currently in state UNREACHABLE (Acknowledged) in the host group "%s"',
|
||||
$h->hosts_unreachable_handled
|
||||
),
|
||||
$h->hosts_unreachable_handled,
|
||||
$h->hostgroup_alias
|
||||
)
|
||||
)
|
||||
); ?>
|
||||
</span>
|
||||
<?php endif ?>
|
||||
<?php if ($h->hosts_unreachable_unhandled): ?>
|
||||
</span>
|
||||
<?php endif ?>
|
||||
<?php if ($h->hosts_pending): ?>
|
||||
<span class="state pending">
|
||||
<?= $this->qlink(
|
||||
$h->hosts_pending,
|
||||
'monitoring/list/hosts',
|
||||
array(
|
||||
'host_state' => 99,
|
||||
'hostgroup_name' => $h->hostgroup_name,
|
||||
'sort' => 'host_severity'
|
||||
),
|
||||
array(
|
||||
'title' => sprintf(
|
||||
$this->translatePlural(
|
||||
'List %u host that is currently in state PENDING in the host group "%s"',
|
||||
'List %u hosts which are currently in state PENDING in the host group "%s"',
|
||||
$h->hosts_pending
|
||||
),
|
||||
$h->hosts_pending,
|
||||
$h->hostgroup_alias
|
||||
)
|
||||
)
|
||||
); ?>
|
||||
</span>
|
||||
<?php endif ?>
|
||||
</td>
|
||||
<td class="total">
|
||||
<?= $this->qlink(
|
||||
$h->services_total,
|
||||
|
|
|
@ -11,6 +11,7 @@ class GroupSummaryQuery extends IdoQuery
|
|||
|
||||
protected $columnMap = array(
|
||||
'hoststatussummary' => array(
|
||||
'hosts_total' => 'SUM(CASE WHEN object_type = \'host\' THEN 1 ELSE 0 END)',
|
||||
'hosts_up' => 'SUM(CASE WHEN object_type = \'host\' AND state = 0 THEN 1 ELSE 0 END)',
|
||||
'hosts_unreachable' => 'SUM(CASE WHEN object_type = \'host\' AND state = 2 THEN 1 ELSE 0 END)',
|
||||
'hosts_unreachable_handled' => 'SUM(CASE WHEN object_type = \'host\' AND state = 2 AND acknowledged + in_downtime != 0 THEN 1 ELSE 0 END)',
|
||||
|
|
|
@ -17,6 +17,7 @@ class Groupsummary extends DataView
|
|||
'servicegroup_alias',
|
||||
'hostgroup_name',
|
||||
'hostgroup_alias',
|
||||
'hosts_total',
|
||||
'hosts_up',
|
||||
'hosts_unreachable',
|
||||
'hosts_unreachable_handled',
|
||||
|
|
|
@ -23,7 +23,7 @@ table.action {
|
|||
border-collapse: separate;
|
||||
border-spacing: 1px;
|
||||
width: 100%;
|
||||
table-layout: fixed;
|
||||
table-layout: fixed !important;
|
||||
margin: 0;
|
||||
color: @colorTextDefault;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue