Source
$maintenance_count = ($maintenances === []) ? CDBHelper::getCount(self::MAINTENANCE_SQL) : count($maintenances);
<?php
/*
** Copyright (C) 2001-2025 Zabbix SIA
**
** This program is free software: you can redistribute it and/or modify it under the terms of
** the GNU Affero General Public License as published by the Free Software Foundation, version 3.
**
** This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
** without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
** See the GNU Affero General Public License for more details.
**
** You should have received a copy of the GNU Affero General Public License along with this program.
** If not, see <https://www.gnu.org/licenses/>.
**/
require_once __DIR__.'/../../include/CWebTest.php';
require_once __DIR__.'/../behaviors/CMessageBehavior.php';
require_once __DIR__.'/../behaviors/CTableBehavior.php';
/**
* @backup maintenances
*
* @onBefore prepareMaintenanceData
*
* @dataSource HostTemplateGroups
*/
class testPageMaintenance extends CWebTest {
/**
* Attach MessageBehavior and TableBehavior to the test.
*
* @return array
*/
public function getBehaviors() {
return [
CMessageBehavior::class,
CTableBehavior::class
];
}
const MAINTENANCE_SQL = 'SELECT * FROM maintenances ORDER BY maintenanceid';
const APPROACHING_MAINTENANCE = 'Approaching maintenance';
const HOST_MAINTENANCE = 'Maintenance with assigned host';
const MULTIPLE_GROUPS_MAINTENANCE = 'Maintenance with 2 host groups';
const FILTER_NAME_MAINTENANCE = 'Maintenance для фильтра - ʍąɨɲţ€ɲąɲc€🙂';
const ACTIVE_MAINTENANCE = 'Active maintenance';
const DESCRIPTION_MAINTENANCE = 'Description maintenance';
const MAINTENANCE_WITH_DATA = 'Maintenance period 1 (data collection)';
const MAINTENANCE_NO_DATA = 'Maintenance period 2 (no data collection)';
const MAINTENANCE_UPDATE = 'Maintenance for update (data collection)';
const ZABBIX_SERVERS_GROUPID = 4;
public function prepareMaintenanceData() {
CDataHelper::call('maintenance.create', [
[
'name' => self::APPROACHING_MAINTENANCE,
'maintenance_type' => MAINTENANCE_TYPE_NODATA,
'active_since' => 2017008000,
'active_till' => 2019600000,
'groups' => [['groupid' => CDataHelper::get('HostTemplateGroups.hostgroups.Group for Maintenance')]],
'timeperiods' => [[]]
],
[
'name' => self::MULTIPLE_GROUPS_MAINTENANCE,
'maintenance_type' => MAINTENANCE_TYPE_NODATA,
'active_since' => 1388534400,
'active_till' => 1420070400,
'groups' => [
[
'groupid' => self::ZABBIX_SERVERS_GROUPID
],
[
'groupid' => 5 // "Discovered hosts" group
]
],
'timeperiods' => [[]]
],
[
'name' => self::HOST_MAINTENANCE,
'maintenance_type' => MAINTENANCE_TYPE_NORMAL,
'active_since' => 1577836800,
'active_till' => 1577923200,
'hosts' => [['hostid' => 10084]],
'timeperiods' => [[]]
],
[
'name' => self::FILTER_NAME_MAINTENANCE,
'maintenance_type' => MAINTENANCE_TYPE_NORMAL,
'active_since' => 1686009600,
'active_till' => 1688601600,