You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
195 lines
4.8 KiB
195 lines
4.8 KiB
<?php
|
|
/*
|
|
** Zabbix
|
|
** Copyright (C) 2001-2023 Zabbix SIA
|
|
**
|
|
** This program is free software; you can redistribute it and/or modify
|
|
** it under the terms of the GNU General Public License as published by
|
|
** the Free Software Foundation; either version 2 of the License, or
|
|
** (at your option) any later version.
|
|
**
|
|
** 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 General Public License for more details.
|
|
**
|
|
** You should have received a copy of the GNU General Public License
|
|
** along with this program; if not, write to the Free Software
|
|
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
**/
|
|
|
|
|
|
/**
|
|
* Create data for host and template groups test.
|
|
*/
|
|
class HostTemplateGroups {
|
|
|
|
public static function load() {
|
|
// Prepare data for template groups.
|
|
CDataHelper::call('templategroup.create', [
|
|
[
|
|
'name' => 'Group empty for Delete test'
|
|
],
|
|
[
|
|
'name' => 'One group belongs to one object for Delete test'
|
|
],
|
|
[
|
|
'name' => 'First group to one object for Delete test'
|
|
],
|
|
[
|
|
'name' => 'Second group to one object for Delete test'
|
|
]
|
|
]);
|
|
$template_groupids = CDataHelper::getIds('name');
|
|
CDataHelper::createTemplates([
|
|
[
|
|
'host' => 'Template for template group testing',
|
|
'groups' => [
|
|
'groupid' => $template_groupids['One group belongs to one object for Delete test']
|
|
]
|
|
],
|
|
[
|
|
'host' => 'Template with two groups',
|
|
'groups' => [
|
|
['groupid' => $template_groupids['First group to one object for Delete test']],
|
|
['groupid' => $template_groupids['Second group to one object for Delete test']]
|
|
]
|
|
]
|
|
]);
|
|
|
|
// Prepare data for host groups.
|
|
CDataHelper::call('hostgroup.create', [
|
|
[
|
|
'name' => 'Group empty for Delete test'
|
|
],
|
|
[
|
|
'name' => 'One group belongs to one object for Delete test'
|
|
],
|
|
[
|
|
'name' => 'First group to one object for Delete test'
|
|
],
|
|
[
|
|
'name' => 'Second group to one object for Delete test'
|
|
],
|
|
[
|
|
'name' => 'Group for Script'
|
|
],
|
|
[
|
|
'name' => 'Group for Action'
|
|
],
|
|
[
|
|
'name' => 'Group for Maintenance'
|
|
],
|
|
[
|
|
'name' => 'Group for Host prototype'
|
|
],
|
|
[
|
|
'name' => 'Group for Correlation'
|
|
]
|
|
]);
|
|
$host_groupids = CDataHelper::getIds('name');
|
|
|
|
// Create elements with host groups.
|
|
$host = CDataHelper::createHosts([
|
|
[
|
|
'host' => 'Host for host group testing',
|
|
'interfaces' => [],
|
|
'groups' => [
|
|
'groupid' => $host_groupids['One group belongs to one object for Delete test']
|
|
]
|
|
],
|
|
[
|
|
'host' => 'Host with two groups',
|
|
'interfaces' => [],
|
|
'groups' => [
|
|
'groupid' => $host_groupids['First group to one object for Delete test'],
|
|
'groupid' => $host_groupids['Second group to one object for Delete test']
|
|
]
|
|
]
|
|
]);
|
|
$hostid = $host['hostids']['Host for host group testing'];
|
|
|
|
$lld = CDataHelper::call('discoveryrule.create', [
|
|
'name' => 'LLD for host group test',
|
|
'key_' => 'lld.hostgroup',
|
|
'hostid' => $hostid,
|
|
'type' => ITEM_TYPE_TRAPPER,
|
|
'delay' => 0
|
|
]);
|
|
$lldid = $lld['itemids'][0];
|
|
CDataHelper::call('hostprototype.create', [
|
|
'host' => 'Host prototype {#KEY} for host group testing',
|
|
'ruleid' => $lldid,
|
|
'groupLinks' => [
|
|
[
|
|
'groupid' => $host_groupids['Group for Host prototype']
|
|
]
|
|
]
|
|
]);
|
|
|
|
CDataHelper::call('script.create', [
|
|
[
|
|
'name' => 'Script for host group testing',
|
|
'scope' => ZBX_SCRIPT_SCOPE_ACTION,
|
|
'type' => ZBX_SCRIPT_TYPE_WEBHOOK,
|
|
'command' => 'return 1',
|
|
'groupid' => $host_groupids['Group for Script']
|
|
]
|
|
]);
|
|
|
|
CDataHelper::call('action.create', [
|
|
[
|
|
'name' => 'Discovery action for host group testing',
|
|
'eventsource' => EVENT_SOURCE_DISCOVERY,
|
|
'status' => ACTION_STATUS_ENABLED,
|
|
'operations' => [
|
|
[
|
|
'operationtype' => OPERATION_TYPE_GROUP_ADD,
|
|
'opgroup' => [
|
|
[
|
|
'groupid' => $host_groupids['Group for Action']
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]);
|
|
|
|
CDataHelper::call('maintenance.create', [
|
|
[
|
|
'name' => 'Maintenance for host group testing',
|
|
'active_since' => 1358844540,
|
|
'active_till' => 1390466940,
|
|
'groups' => [
|
|
[
|
|
'groupid' => $host_groupids['Group for Maintenance']
|
|
]
|
|
],
|
|
'timeperiods' => [[]]
|
|
]
|
|
]);
|
|
|
|
CDataHelper::call('correlation.create', [
|
|
[
|
|
'name' => 'Corellation for host group testing',
|
|
'filter' => [
|
|
'evaltype' => ZBX_CORR_OPERATION_CLOSE_OLD,
|
|
'conditions' => [
|
|
[
|
|
'type' => ZBX_CORR_CONDITION_NEW_EVENT_HOSTGROUP,
|
|
'groupid' => $host_groupids['Group for Correlation']
|
|
]
|
|
]
|
|
],
|
|
'operations' => [
|
|
[
|
|
'type' => ZBX_CORR_OPERATION_CLOSE_OLD
|
|
]
|
|
]
|
|
]
|
|
]);
|
|
|
|
return ['templategroups' => $template_groupids, 'hostgroups' => $host_groupids];
|
|
}
|
|
}
|