2019-09-23 09:31:18 -04:00
|
|
|
<?php
|
|
|
|
|
|
2020-03-13 03:38:01 -04:00
|
|
|
/* Icinga DB Web | (c) 2020 Icinga GmbH | GPLv2 */
|
|
|
|
|
|
2019-11-04 19:07:30 -05:00
|
|
|
namespace Icinga\Module\Icingadb\Model;
|
2019-09-23 09:31:18 -04:00
|
|
|
|
2019-11-22 09:56:07 -05:00
|
|
|
use Icinga\Module\Icingadb\Model\Behavior\ReRoute;
|
2022-05-19 10:28:45 -04:00
|
|
|
use ipl\Orm\Behavior\Binary;
|
2019-11-22 09:56:07 -05:00
|
|
|
use ipl\Orm\Behaviors;
|
2019-09-23 09:31:18 -04:00
|
|
|
use ipl\Orm\Model;
|
|
|
|
|
use ipl\Orm\Relations;
|
|
|
|
|
|
2024-01-23 02:43:02 -05:00
|
|
|
/**
|
|
|
|
|
* @property string $id
|
|
|
|
|
* @property string $environment_id
|
|
|
|
|
* @property string $name_checksum
|
|
|
|
|
* @property string $properties_checksum
|
|
|
|
|
* @property string $name
|
|
|
|
|
* @property string $name_ci
|
|
|
|
|
* @property string $display_name
|
|
|
|
|
* @property ?string $zone_id
|
|
|
|
|
*/
|
2019-09-23 09:31:18 -04:00
|
|
|
class Servicegroup extends Model
|
|
|
|
|
{
|
|
|
|
|
public function getTableName()
|
|
|
|
|
{
|
|
|
|
|
return 'servicegroup';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function getKeyName()
|
|
|
|
|
{
|
|
|
|
|
return 'id';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function getColumns()
|
|
|
|
|
{
|
|
|
|
|
return [
|
|
|
|
|
'environment_id',
|
|
|
|
|
'name_checksum',
|
|
|
|
|
'properties_checksum',
|
|
|
|
|
'name',
|
|
|
|
|
'name_ci',
|
|
|
|
|
'display_name',
|
|
|
|
|
'zone_id'
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
|
2022-06-08 09:34:01 -04:00
|
|
|
public function getColumnDefinitions()
|
2020-11-02 10:08:47 -05:00
|
|
|
{
|
|
|
|
|
return [
|
2022-07-11 11:31:53 -04:00
|
|
|
'environment_id' => t('Environment Id'),
|
2020-11-02 10:08:47 -05:00
|
|
|
'name_checksum' => t('Servicegroup Name Checksum'),
|
|
|
|
|
'properties_checksum' => t('Servicegroup Properties Checksum'),
|
|
|
|
|
'name' => t('Servicegroup Name'),
|
|
|
|
|
'name_ci' => t('Servicegroup Name (CI)'),
|
|
|
|
|
'display_name' => t('Servicegroup Display Name'),
|
2022-07-11 11:31:53 -04:00
|
|
|
'zone_id' => t('Zone Id')
|
2020-11-02 10:08:47 -05:00
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
|
2020-11-03 04:20:49 -05:00
|
|
|
public function getSearchColumns()
|
|
|
|
|
{
|
2023-05-30 09:26:00 -04:00
|
|
|
return ['name_ci', 'display_name'];
|
2020-11-03 04:20:49 -05:00
|
|
|
}
|
|
|
|
|
|
2019-12-11 09:58:53 -05:00
|
|
|
public function getDefaultSort()
|
2019-11-04 10:54:51 -05:00
|
|
|
{
|
2019-12-11 09:58:53 -05:00
|
|
|
return 'display_name';
|
2019-11-04 10:54:51 -05:00
|
|
|
}
|
|
|
|
|
|
2019-11-22 09:56:07 -05:00
|
|
|
public function createBehaviors(Behaviors $behaviors)
|
|
|
|
|
{
|
|
|
|
|
$behaviors->add(new ReRoute([
|
|
|
|
|
'host' => 'service.host',
|
2024-11-26 08:35:39 -05:00
|
|
|
'hostgroup' => 'service.hostgroup',
|
|
|
|
|
'parent' => 'service.from.to',
|
|
|
|
|
'child' => 'service.to.from'
|
2019-11-22 09:56:07 -05:00
|
|
|
]));
|
2022-03-29 09:27:18 -04:00
|
|
|
|
|
|
|
|
$behaviors->add(new Binary([
|
|
|
|
|
'id',
|
|
|
|
|
'environment_id',
|
|
|
|
|
'name_checksum',
|
|
|
|
|
'properties_checksum',
|
|
|
|
|
'zone_id'
|
|
|
|
|
]));
|
2019-11-22 09:56:07 -05:00
|
|
|
}
|
|
|
|
|
|
2019-09-23 09:31:18 -04:00
|
|
|
public function createRelations(Relations $relations)
|
|
|
|
|
{
|
|
|
|
|
$relations->belongsTo('environment', Environment::class);
|
|
|
|
|
$relations->belongsTo('zone', Zone::class);
|
|
|
|
|
|
|
|
|
|
$relations->belongsToMany('customvar', Customvar::class)
|
2025-07-07 09:16:48 -04:00
|
|
|
->through(ServicegroupCustomvar::class)
|
|
|
|
|
->setThroughAlias('t_servicegroup_customvar');
|
2019-09-23 09:31:18 -04:00
|
|
|
$relations->belongsToMany('customvar_flat', CustomvarFlat::class)
|
2019-11-19 08:22:17 -05:00
|
|
|
->through(ServicegroupCustomvar::class);
|
2022-05-19 09:48:10 -04:00
|
|
|
$relations->belongsToMany('vars', Vars::class)
|
2020-11-03 04:24:16 -05:00
|
|
|
->through(ServicegroupCustomvar::class);
|
2019-09-23 09:31:18 -04:00
|
|
|
$relations->belongsToMany('service', Service::class)
|
2019-11-19 08:22:17 -05:00
|
|
|
->through(ServicegroupMember::class);
|
2019-09-23 09:31:18 -04:00
|
|
|
}
|
|
|
|
|
}
|