Skip to content

Commit 945eb5f

Browse files
committed
db: Update models to reflect latest schema updates
1 parent 299ca1f commit 945eb5f

File tree

8 files changed

+24
-137
lines changed

8 files changed

+24
-137
lines changed

library/Icingadb/Model/Behavior/HasProblematicParent.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public function rewriteColumn($column, ?string $relation = null): ?AliasedExpres
5050
->columns([new Expression('1')])
5151
->utilize('from')
5252
->limit(1)
53-
->filter(Filter::equal('dependency.state.failed', 'y'));
53+
->filter(Filter::equal('state.failed', 'y'));
5454

5555
$subQueryResolver = $subQuery->getResolver()->setAliasPrefix('hpp_');
5656
$subQueryTarget = $subQueryResolver->resolveRelation($subQueryModel->getTableName() . '.from')->getTarget();

library/Icingadb/Model/Dependency.php

-95
This file was deleted.

library/Icingadb/Model/DependencyEdge.php

+9-6
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,12 @@
1515
*
1616
* @property string $to_node_id
1717
* @property string $from_node_id
18-
* @property ?string $dependency_id
18+
* @property string $display_name
19+
* @property string $dependency_edge_state_id
1920
*
2021
* @property DependencyNode|Query $child
2122
* @property DependencyNode|Query $parent
22-
* @property (?Dependency)|Query $dependency
23+
* @property DependencyEdgeState|Query $state
2324
*/
2425
class DependencyEdge extends Model
2526
{
@@ -38,7 +39,8 @@ public function getColumns(): array
3839
return [
3940
'to_node_id',
4041
'from_node_id',
41-
'dependency_id'
42+
'display_name',
43+
'dependency_edge_state_id'
4244
];
4345
}
4446

@@ -47,7 +49,7 @@ public function createBehaviors(Behaviors $behaviors): void
4749
$behaviors->add(new Binary([
4850
'to_node_id',
4951
'from_node_id',
50-
'dependency_id'
52+
'dependency_edge_state_id'
5153
]));
5254
}
5355

@@ -57,8 +59,9 @@ public function createRelations(Relations $relations): void
5759
->setCandidateKey('from_node_id');
5860
$relations->belongsTo('parent', DependencyNode::class)
5961
->setCandidateKey('to_node_id');
60-
$relations->belongsTo('dependency', Dependency::class)
61-
->setJoinType('LEFT');
62+
$relations->hasOne('state', DependencyEdgeState::class)
63+
->setCandidateKey('dependency_edge_state_id')
64+
->setForeignKey('id');
6265

6366
// "from" and "to" are only necessary for sub-query filters.
6467
$relations->belongsTo('from', DependencyNode::class)
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,23 @@
11
<?php
22

3-
/* Icinga DB Web | (c) 2024 Icinga GmbH | GPLv2 */
4-
53
namespace Icinga\Module\Icingadb\Model;
64

75
use ipl\Orm\Behavior\Binary;
86
use ipl\Orm\Behavior\BoolCast;
97
use ipl\Orm\Behaviors;
108
use ipl\Orm\Model;
11-
use ipl\Orm\Query;
12-
use ipl\Orm\Relations;
139

1410
/**
15-
* Dependency state model.
11+
* Dependency edge state model.
1612
*
1713
* @property string $id
18-
* @property string $dependency_id
1914
* @property bool $failed
20-
*
21-
* @property Dependency|Query $dependency
2215
*/
23-
class DependencyState extends Model
16+
class DependencyEdgeState extends Model
2417
{
2518
public function getTableName(): string
2619
{
27-
return 'dependency_state';
20+
return 'dependency_edge_state';
2821
}
2922

3023
public function getKeyName(): string
@@ -35,24 +28,24 @@ public function getKeyName(): string
3528
public function getColumns(): array
3629
{
3730
return [
38-
'dependency_id',
3931
'failed'
4032
];
4133
}
4234

35+
public function getColumnDefinitions(): array
36+
{
37+
return [
38+
'failed' => t('Dependency Edge State Failed')
39+
];
40+
}
41+
4342
public function createBehaviors(Behaviors $behaviors): void
4443
{
4544
$behaviors->add(new Binary([
46-
'id',
47-
'dependency_id'
45+
'id'
4846
]));
4947
$behaviors->add(new BoolCast([
5048
'failed'
5149
]));
5250
}
53-
54-
public function createRelations(Relations $relations): void
55-
{
56-
$relations->belongsTo('dependency', Dependency::class);
57-
}
5851
}

library/Icingadb/Model/RedundancyGroup.php

-4
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,9 @@
1616
* Redundancy group model.
1717
*
1818
* @property string $id
19-
* @property string $name
2019
* @property string $display_name
2120
*
2221
* @property (?RedundancyGroupState)|Query $state
23-
* @property Dependency|Query $dependency
2422
* @property DependencyEdge|Query $from
2523
* @property DependencyEdge|Query $to
2624
*/
@@ -39,7 +37,6 @@ public function getKeyName(): string
3937
public function getColumns(): array
4038
{
4139
return [
42-
'name',
4340
'display_name'
4441
];
4542
}
@@ -67,7 +64,6 @@ public function createRelations(Relations $relations): void
6764
$relations->hasOne('state', RedundancyGroupState::class)
6865
->setJoinType('LEFT');
6966

70-
$relations->hasMany('dependency', Dependency::class);
7167
$relations->hasOne('dependency_node', DependencyNode::class)->setJoinType('LEFT');
7268

7369
$relations->belongsToMany('from', DependencyEdge::class)

library/Icingadb/Model/Timeperiod.php

-1
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,5 @@ public function createRelations(Relations $relations)
9898
$relations->hasMany('service', Service::class)
9999
->setForeignKey('check_timeperiod_id');
100100
$relations->hasMany('user', User::class);
101-
$relations->hasMany('dependency', Dependency::class);
102101
}
103102
}

library/Icingadb/Model/UnreachableParent.php

+2-11
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,11 @@
2525
* @property ?string $host_id
2626
* @property ?string $service_id
2727
* @property ?string $redundancy_group_id
28-
* @property ?string $dependency_id
2928
* @property int $is_group_member
3029
*
3130
* @property (?Host)|Query $host
3231
* @property (?Service)|Query $service
3332
* @property (?RedundancyGroup)|Query $redundancy_group
34-
* @property (?Dependency)|Query $dependency
3533
*/
3634
class UnreachableParent extends DependencyNode
3735
{
@@ -54,7 +52,6 @@ public function getColumns(): array
5452
'host_id',
5553
'service_id',
5654
'redundancy_group_id',
57-
'dependency_id',
5855
'is_group_member'
5956
];
6057
}
@@ -67,8 +64,6 @@ public function createRelations(Relations $relations): void
6764
->setJoinType('LEFT');
6865
$relations->belongsTo('redundancy_group', RedundancyGroup::class)
6966
->setJoinType('LEFT');
70-
$relations->belongsTo('dependency', Dependency::class)
71-
->setJoinType('LEFT');
7267
}
7368

7469
public function createBehaviors(Behaviors $behaviors): void
@@ -77,8 +72,7 @@ public function createBehaviors(Behaviors $behaviors): void
7772
'id',
7873
'host_id',
7974
'service_id',
80-
'redundancy_group_id',
81-
'dependency_id'
75+
'redundancy_group_id'
8276
]));
8377

8478
$behaviors->add(new ReRoute([
@@ -116,7 +110,6 @@ private static function selectNodes(Connection $db, Model $root): Select
116110
'host_id' => 'host_id',
117111
'service_id' => new Expression("COALESCE(%s, CAST('' as binary(20)))", ['service_id']),
118112
'redundancy_group_id' => new Expression("CAST('' as binary(20))"),
119-
'dependency_id' => new Expression("CAST('' as binary(20))"),
120113
'is_group_member' => new Expression('0')
121114
]);
122115
if ($root instanceof Host) {
@@ -143,11 +136,10 @@ private static function selectNodes(Connection $db, Model $root): Select
143136
'host_id' => 'to.host_id',
144137
'service_id' => 'to.service_id',
145138
'redundancy_group_id' => 'to.redundancy_group_id',
146-
'dependency_id' => 'dependency_id',
147139
'is_group_member' => new Expression('urn.redundancy_group_id IS NOT NULL AND urn.level > 0')
148140
]);
149141
$nodeQuery->filter(Filter::any(
150-
Filter::equal('dependency.state.failed', 'y'),
142+
Filter::equal('state.failed', 'y'),
151143
Filter::equal('to.redundancy_group.state.failed', 'y')
152144
));
153145

@@ -164,7 +156,6 @@ private static function selectNodes(Connection $db, Model $root): Select
164156
'host_id' => null,
165157
'service_id' => null,
166158
'redundancy_group_id' => null,
167-
'dependency_id' => null,
168159
'is_group_member' => null
169160
],
170161
$nodeSelect->getColumns()

library/Icingadb/Widget/Detail/ObjectDetail.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -702,7 +702,7 @@ protected function createAffectedObjects(): ?array
702702
$failedEdges = DependencyEdge::on($this->getDb())
703703
->utilize('child')
704704
->columns([new Expression('1')])
705-
->filter(Filter::equal('dependency.state.failed', 'y'));
705+
->filter(Filter::equal('state.failed', 'y'));
706706

707707
if ($this->object instanceof Host) {
708708
$failedEdges

0 commit comments

Comments
 (0)