[pkg-nagios-changes] [Git][nagios-team/icingadb-web][experimental] 5 commits: New upstream version 1.2.2

Bas Couwenberg (@sebastic) gitlab at salsa.debian.org
Wed Jul 16 14:16:43 BST 2025



Bas Couwenberg pushed to branch experimental at Debian Nagios Maintainer Group / icingadb-web


Commits:
7b26282f by Bas Couwenberg at 2025-07-16T15:11:06+02:00
New upstream version 1.2.2
- - - - -
1a201af5 by Bas Couwenberg at 2025-07-16T15:11:10+02:00
Update upstream source from tag 'upstream/1.2.2'

Update to upstream version '1.2.2'
with Debian dir 2d39f2d32c50af3641b67a09f3894bfbc785500a
- - - - -
4a0667aa by Bas Couwenberg at 2025-07-16T15:11:21+02:00
New upstream release.

- - - - -
12ce77e7 by Bas Couwenberg at 2025-07-16T15:13:13+02:00
Require at least icinga-php-library 0.17.0.

- - - - -
1edd0105 by Bas Couwenberg at 2025-07-16T15:13:35+02:00
Set distribution to experimental.

- - - - -


26 changed files:

- AUTHORS
- CHANGELOG.md
- application/controllers/HostController.php
- debian/changelog
- debian/control
- doc/02-Installation.md.d/From-Source.md
- library/Icingadb/Common/Auth.php
- library/Icingadb/Model/Checkcommand.php
- library/Icingadb/Model/CustomvarFlat.php
- library/Icingadb/Model/DependencyNode.php
- library/Icingadb/Model/Eventcommand.php
- library/Icingadb/Model/Host.php
- library/Icingadb/Model/Hostgroup.php
- library/Icingadb/Model/Notification.php
- library/Icingadb/Model/Notificationcommand.php
- library/Icingadb/Model/Service.php
- library/Icingadb/Model/Servicegroup.php
- library/Icingadb/Model/Timeperiod.php
- library/Icingadb/Model/User.php
- library/Icingadb/Model/Usergroup.php
- library/Icingadb/Widget/Detail/CommentDetail.php
- library/Icingadb/Widget/Detail/DowntimeDetail.php
- library/Icingadb/Widget/Detail/RedundancyGroupDetail.php
- library/Icingadb/Widget/ItemList/ObjectList.php
- module.info
- test/php/library/Icingadb/Model/Behavior/FlattenedObjectVarsTest.php


Changes:

=====================================
AUTHORS
=====================================
@@ -1,4 +1,5 @@
 Alexander A. Klimov <alexander.klimov at icinga.com>
+Alvar Penning <alvar.penning at icinga.com>
 Eric Lippmann <eric.lippmann at icinga.com>
 Feu Mourek <feu.mourek at icinga.com>
 Florian Strohmaier <florian.strohmaier at icinga.com>


=====================================
CHANGELOG.md
=====================================
@@ -3,10 +3,24 @@
 Please make sure to always read our [Upgrading](https://icinga.com/docs/icinga-db-web/latest/doc/05-Upgrading/)
 documentation before switching to a new version.
 
+## 1.2.2 (2025-07-16)
+
+**Notice:** This is a security release. It is recommended to upgrade _quickly_.
+
+See the related CVE: https://github.com/Icinga/icingadb-web/security/advisories/GHSA-q2w7-mrx8-5473
+Included changes can be found on the milestone: https://github.com/Icinga/icingadb-web/milestone/12?closed=1
+And a detailed description about the most important ones on our blog: https://icinga.com/blog/releasing-icinga-web-2-v2-12-5-icinga-db-web-v1-2-2/
+
+## 1.2.1 (2025-06-30)
+
+This release [fixes an issue](https://github.com/Icinga/icingadb-web/pull/1229) with version comparison that caused
+incorrect detection of the Icinga DB version. As a result, the health check in Icinga Web will now accurately reflect
+the current Icinga DB version and no longer incorrectly indicate that an upgrade to version 1.4.0 is still required.
+
 ## 1.2.0 (2025-06-18)
 
 Included changes can be found on the milestone: https://github.com/Icinga/icingadb-web/milestone/7?closed=1
-And a detailed description about the most important ones on our blog: https://icinga.com/blog/2025/06/18/a-new-look-at-dependencies/
+And a detailed description about the most important ones on our blog: https://icinga.com/blog/icinga-dependency-views/
 
 ## 1.1.3 (2024-08-06)
 


=====================================
application/controllers/HostController.php
=====================================
@@ -13,7 +13,6 @@ use Icinga\Module\Icingadb\Common\CommandActions;
 use Icinga\Module\Icingadb\Common\HostLinks;
 use Icinga\Module\Icingadb\Common\Links;
 use Icinga\Module\Icingadb\Hook\TabHook\HookActions;
-use Icinga\Module\Icingadb\Model\DependencyEdge;
 use Icinga\Module\Icingadb\Model\DependencyNode;
 use Icinga\Module\Icingadb\Model\History;
 use Icinga\Module\Icingadb\Model\Host;
@@ -32,7 +31,6 @@ use Icinga\Module\Icingadb\Widget\ItemList\LoadMoreObjectList;
 use Icinga\Module\Icingadb\Widget\ItemList\ObjectList;
 use ipl\Orm\Query;
 use ipl\Sql\Expression;
-use ipl\Sql\Filter\Exists;
 use ipl\Stdlib\Filter;
 use ipl\Web\Control\LimitControl;
 use ipl\Web\Control\SortControl;
@@ -443,7 +441,7 @@ class HostController extends Controller
      */
     protected function fetchDependencyNodes(bool $parents = false): Query
     {
-        $query = DependencyNode::on($this->getDb())
+        $query = DependencyNode::forHost($this->host->id, $this->getDb(), $parents)
             ->with([
                 'host',
                 'host.state',
@@ -458,8 +456,6 @@ class HostController extends Controller
             ])
             ->setResultSetClass(VolatileStateResults::class);
 
-        $this->joinFix($query, $this->host->id, $parents);
-
         $this->applyRestrictions($query);
 
         return $query;
@@ -541,42 +537,4 @@ class HostController extends Controller
     {
         return [new ObjectHeader($this->host)];
     }
-
-    /**
-     * Filter the query to only include (direct) parents or children of the given object.
-     *
-     * @todo This is a workaround, remove it once https://github.com/Icinga/ipl-orm/issues/76 is fixed
-     *
-     * @param Query $query
-     * @param string $objectId
-     * @param bool $fetchParents Fetch parents if true, children otherwise
-     */
-    protected function joinFix(Query $query, string $objectId, bool $fetchParents = false): void
-    {
-        $filterTable = $fetchParents ? 'child' : 'parent';
-        $utilizeType = $fetchParents ? 'parent' : 'child';
-
-        $edge = DependencyEdge::on($this->getDb())
-            ->utilize($utilizeType)
-            ->columns([new Expression('1')])
-            ->filter(Filter::equal("$filterTable.host.id", $objectId))
-            ->filter(Filter::unlike("$filterTable.service.id", '*'));
-
-        $edge->getFilter()->metaData()->set('forceOptimization', false);
-
-        $resolver = $edge->getResolver();
-
-        $edgeAlias = $resolver->getAlias(
-            $resolver->resolveRelation($resolver->qualifyPath($utilizeType, $edge->getModel()->getTableName()))
-                ->getTarget()
-        );
-
-        $query->filter(new Exists(
-            $edge->assembleSelect()
-                ->where(
-                    "$edgeAlias.id = "
-                    . $query->getResolver()->qualifyColumn('id', $query->getModel()->getTableName())
-                )
-        ));
-    }
 }


=====================================
debian/changelog
=====================================
@@ -1,3 +1,10 @@
+icingadb-web (1.2.2-1~exp1) experimental; urgency=medium
+
+  * New upstream release.
+  * Require at least icinga-php-library 0.17.0.
+
+ -- Bas Couwenberg <sebastic at debian.org>  Wed, 16 Jul 2025 15:13:16 +0200
+
 icingadb-web (1.2.1-1~exp1) experimental; urgency=medium
 
   * New upstream release.


=====================================
debian/control
=====================================
@@ -13,7 +13,7 @@ Rules-Requires-Root: no
 Package: icingadb-web
 Architecture: all
 Depends: icingaweb2 (>= 2.9),
-         icinga-php-library (>= 0.16.1),
+         icinga-php-library (>= 0.17.0),
          icinga-php-thirdparty (>= 0.13.0),
          ${misc:Depends}
 Description: Icinga DB Web for Icinga Web 2


=====================================
doc/02-Installation.md.d/From-Source.md
=====================================
@@ -11,7 +11,7 @@ Make sure you use `icingadb` as the module name. The following requirements must
 * The following PHP modules must be installed: `cURL`, `dom`, `json`, `libxml`
 * [Icinga DB](https://github.com/Icinga/icingadb) (≥1.4)
 * [Icinga Web 2](https://github.com/Icinga/icingaweb2) (≥2.9)
-* [Icinga PHP Library (ipl)](https://github.com/Icinga/icinga-php-library) (≥0.16.1)
+* [Icinga PHP Library (ipl)](https://github.com/Icinga/icinga-php-library) (≥0.17.0)
 * [Icinga PHP Thirdparty](https://github.com/Icinga/icinga-php-thirdparty) (≥0.13)
 
 <!-- {% include "02-Installation.md" %} -->


=====================================
library/Icingadb/Common/Auth.php
=====================================
@@ -141,8 +141,8 @@ trait Auth
             }
 
             $customVarRelationName = array_search('customvar_flat', $relations, true);
-            $applyServiceRestriction = in_array('service', $relations, true);
-            $applyHostRestriction = in_array('host', $relations, true)
+            $applyServiceRestriction = $relations[0] === 'dependency_node' || in_array('service', $relations, true);
+            $applyHostRestriction = $relations[0] === 'dependency_node' || in_array('host', $relations, true)
                 // Hosts and services have a special relation as a service can't exist without its host.
                 // Hence why the hosts restriction is also applied if only services are queried.
                 || $applyServiceRestriction;


=====================================
library/Icingadb/Model/Checkcommand.php
=====================================
@@ -83,7 +83,8 @@ class Checkcommand extends Model
         $relations->belongsTo('zone', Zone::class);
 
         $relations->belongsToMany('customvar', Customvar::class)
-            ->through(CheckcommandCustomvar::class);
+            ->through(CheckcommandCustomvar::class)
+            ->setThroughAlias('t_checkcommand_customvar');
         $relations->belongsToMany('customvar_flat', CustomvarFlat::class)
             ->through(CheckcommandCustomvar::class);
         $relations->belongsToMany('vars', Vars::class)


=====================================
library/Icingadb/Model/CustomvarFlat.php
=====================================
@@ -76,36 +76,47 @@ class CustomvarFlat extends Model
 
         $relations->belongsToMany('checkcommand', Checkcommand::class)
             ->through(CheckcommandCustomvar::class)
+            ->setThroughAlias('t_checkcommand_customvar')
             ->setCandidateKey('customvar_id');
         $relations->belongsToMany('eventcommand', Eventcommand::class)
             ->through(EventcommandCustomvar::class)
+            ->setThroughAlias('t_eventcommand_customvar')
             ->setCandidateKey('customvar_id');
         $relations->belongsToMany('host', Host::class)
             ->through(HostCustomvar::class)
+            ->setThroughAlias('t_host_customvar')
             ->setCandidateKey('customvar_id');
         $relations->belongsToMany('hostgroup', Hostgroup::class)
             ->through(HostgroupCustomvar::class)
+            ->setThroughAlias('t_hostgroup_customvar')
             ->setCandidateKey('customvar_id');
         $relations->belongsToMany('notification', Notification::class)
             ->through(NotificationCustomvar::class)
+            ->setThroughAlias('t_notification_customvar')
             ->setCandidateKey('customvar_id');
         $relations->belongsToMany('notificationcommand', Notificationcommand::class)
             ->through(NotificationcommandCustomvar::class)
+            ->setThroughAlias('t_notificationcommand_customvar')
             ->setCandidateKey('customvar_id');
         $relations->belongsToMany('service', Service::class)
             ->through(ServiceCustomvar::class)
+            ->setThroughAlias('t_service_customvar')
             ->setCandidateKey('customvar_id');
         $relations->belongsToMany('servicegroup', Servicegroup::class)
             ->through(ServicegroupCustomvar::class)
+            ->setThroughAlias('t_servicegroup_customvar')
             ->setCandidateKey('customvar_id');
         $relations->belongsToMany('timeperiod', Timeperiod::class)
             ->through(TimeperiodCustomvar::class)
+            ->setThroughAlias('t_timeperiod_customvar')
             ->setCandidateKey('customvar_id');
         $relations->belongsToMany('user', User::class)
             ->through(UserCustomvar::class)
+            ->setThroughAlias('t_user_customvar')
             ->setCandidateKey('customvar_id');
         $relations->belongsToMany('usergroup', Usergroup::class)
             ->through(UsergroupCustomvar::class)
+            ->setThroughAlias('t_usergroup_customvar')
             ->setCandidateKey('customvar_id');
     }
 


=====================================
library/Icingadb/Model/DependencyNode.php
=====================================
@@ -10,7 +10,10 @@ use ipl\Orm\Behaviors;
 use ipl\Orm\Model;
 use ipl\Orm\Query;
 use ipl\Orm\Relations;
+use ipl\Sql\Connection;
 use ipl\Sql\Expression;
+use ipl\Sql\Filter\Exists;
+use ipl\Stdlib\Filter;
 
 /**
  * Dependency node model.
@@ -130,4 +133,53 @@ class DependencyNode extends Model
         $relations->hasOne('dependency_node', self::class)
             ->setForeignKey('id');
     }
+
+    /**
+     * Get the query with only (direct) parents or children of the given host id.
+     *
+     * @internal Bug: This fix is required for host based queries. Otherwise, ipl-orm makes two subqueries
+     * from the filter, which leads to incorrect results.
+     *
+     * @todo This is a workaround, remove it once https://github.com/Icinga/ipl-orm/issues/119 is fixed
+     *
+     * @param string $hostId Host id to fetch parents or children for
+     * @param Connection $db The database connection
+     * @param bool $fetchParents Fetch parents if true, children otherwise
+     *
+     * @return Query
+     */
+    public static function forHost(string $hostId, Connection $db, bool $fetchParents = false): Query
+    {
+        $filterTable = $fetchParents ? 'child' : 'parent';
+        $utilizeType = $fetchParents ? 'parent' : 'child';
+
+        $edge = DependencyEdge::on($db)
+            ->utilize($utilizeType)
+            ->columns([new Expression('1')])
+            ->filter(Filter::all(
+                Filter::equal("$filterTable.host.id", $hostId),
+                Filter::unlike("$filterTable.service.id", '*')
+            ));
+
+        $edge->getFilter()->metaData()->set('forceOptimization', false);
+
+        $resolver = $edge->getResolver();
+
+        $edgeAlias = $resolver->getAlias(
+            $resolver->resolveRelation($resolver->qualifyPath($utilizeType, $edge->getModel()->getTableName()))
+                ->getTarget()
+        );
+
+        $query = static::on($db);
+
+        $query->filter(new Exists(
+            $edge->assembleSelect()
+                ->where(
+                    "$edgeAlias.id = "
+                    . $query->getResolver()->qualifyColumn('id', $query->getModel()->getTableName())
+                )
+        ));
+
+        return $query;
+    }
 }


=====================================
library/Icingadb/Model/Eventcommand.php
=====================================
@@ -83,7 +83,8 @@ class Eventcommand extends Model
         $relations->belongsTo('zone', Zone::class);
 
         $relations->belongsToMany('customvar', Customvar::class)
-            ->through(EventcommandCustomvar::class);
+            ->through(EventcommandCustomvar::class)
+            ->setThroughAlias('t_eventcommand_customvar');
         $relations->belongsToMany('customvar_flat', CustomvarFlat::class)
             ->through(EventcommandCustomvar::class);
         $relations->belongsToMany('vars', Vars::class)


=====================================
library/Icingadb/Model/Host.php
=====================================
@@ -253,6 +253,7 @@ class Host extends Model
     {
         $relations->hasOne('state', HostState::class)->setJoinType('LEFT');
         $relations->hasOne('dependency_node', DependencyNode::class)->setJoinType('LEFT');
+        $relations->hasOne('unreachable_parent', UnreachableParent::class)->setJoinType('LEFT');
 
         $relations->belongsTo('environment', Environment::class);
         $relations->belongsTo('eventcommand', Eventcommand::class);
@@ -274,7 +275,8 @@ class Host extends Model
             ->setCandidateKey('command_endpoint_id');
 
         $relations->belongsToMany('customvar', Customvar::class)
-            ->through(HostCustomvar::class);
+            ->through(HostCustomvar::class)
+            ->setThroughAlias('t_host_customvar');
         $relations->belongsToMany('customvar_flat', CustomvarFlat::class)
             ->through(HostCustomvar::class);
         $relations->belongsToMany('vars', Vars::class)


=====================================
library/Icingadb/Model/Hostgroup.php
=====================================
@@ -91,7 +91,8 @@ class Hostgroup extends Model
         $relations->belongsTo('zone', Zone::class);
 
         $relations->belongsToMany('customvar', Customvar::class)
-            ->through(HostgroupCustomvar::class);
+            ->through(HostgroupCustomvar::class)
+            ->setThroughAlias('t_hostgroup_customvar');
         $relations->belongsToMany('customvar_flat', CustomvarFlat::class)
             ->through(HostgroupCustomvar::class);
         $relations->belongsToMany('vars', Vars::class)


=====================================
library/Icingadb/Model/Notification.php
=====================================
@@ -135,7 +135,8 @@ class Notification extends Model
         $relations->belongsTo('zone', Zone::class);
 
         $relations->belongsToMany('customvar', Customvar::class)
-            ->through(NotificationCustomvar::class);
+            ->through(NotificationCustomvar::class)
+            ->setThroughAlias('t_notification_customvar');
         $relations->belongsToMany('customvar_flat', CustomvarFlat::class)
             ->through(NotificationCustomvar::class);
         $relations->belongsToMany('vars', Vars::class)


=====================================
library/Icingadb/Model/Notificationcommand.php
=====================================
@@ -85,7 +85,8 @@ class Notificationcommand extends Model
         $relations->belongsTo('zone', Zone::class);
 
         $relations->belongsToMany('customvar', Customvar::class)
-            ->through(NotificationcommandCustomvar::class);
+            ->through(NotificationcommandCustomvar::class)
+            ->setThroughAlias('t_notificationcommand_customvar');
         $relations->belongsToMany('customvar_flat', CustomvarFlat::class)
             ->through(NotificationcommandCustomvar::class);
         $relations->belongsToMany('vars', Vars::class)


=====================================
library/Icingadb/Model/Service.php
=====================================
@@ -245,6 +245,7 @@ class Service extends Model
     {
         $relations->hasOne('state', ServiceState::class)->setJoinType('LEFT');
         $relations->hasOne('dependency_node', DependencyNode::class)->setJoinType('LEFT');
+        $relations->hasOne('unreachable_parent', UnreachableParent::class)->setJoinType('LEFT');
 
         $relations->belongsTo('environment', Environment::class);
         $relations->belongsTo('host', Host::class)->setJoinType('LEFT');
@@ -267,7 +268,8 @@ class Service extends Model
             ->setCandidateKey('command_endpoint_id');
 
         $relations->belongsToMany('customvar', Customvar::class)
-            ->through(ServiceCustomvar::class);
+            ->through(ServiceCustomvar::class)
+            ->setThroughAlias('t_service_customvar');
         $relations->belongsToMany('customvar_flat', CustomvarFlat::class)
             ->through(ServiceCustomvar::class);
         $relations->belongsToMany('vars', Vars::class)


=====================================
library/Icingadb/Model/Servicegroup.php
=====================================
@@ -92,7 +92,8 @@ class Servicegroup extends Model
         $relations->belongsTo('zone', Zone::class);
 
         $relations->belongsToMany('customvar', Customvar::class)
-            ->through(ServicegroupCustomvar::class);
+            ->through(ServicegroupCustomvar::class)
+            ->setThroughAlias('t_servicegroup_customvar');
         $relations->belongsToMany('customvar_flat', CustomvarFlat::class)
             ->through(ServicegroupCustomvar::class);
         $relations->belongsToMany('vars', Vars::class)


=====================================
library/Icingadb/Model/Timeperiod.php
=====================================
@@ -83,7 +83,8 @@ class Timeperiod extends Model
         $relations->belongsTo('zone', Zone::class);
 
         $relations->belongsToMany('customvar', Customvar::class)
-            ->through(TimeperiodCustomvar::class);
+            ->through(TimeperiodCustomvar::class)
+            ->setThroughAlias('t_timeperiod_customvar');
         $relations->belongsToMany('customvar_flat', CustomvarFlat::class)
             ->through(TimeperiodCustomvar::class);
         $relations->belongsToMany('vars', Vars::class)


=====================================
library/Icingadb/Model/User.php
=====================================
@@ -135,7 +135,8 @@ class User extends Model
         $relations->belongsTo('zone', Zone::class);
 
         $relations->belongsToMany('customvar', Customvar::class)
-            ->through(UserCustomvar::class);
+            ->through(UserCustomvar::class)
+            ->setThroughAlias('t_user_customvar');
         $relations->belongsToMany('customvar_flat', CustomvarFlat::class)
             ->through(UserCustomvar::class);
         $relations->belongsToMany('vars', Vars::class)


=====================================
library/Icingadb/Model/Usergroup.php
=====================================
@@ -92,7 +92,8 @@ class Usergroup extends Model
         $relations->belongsTo('zone', Zone::class);
 
         $relations->belongsToMany('customvar', Customvar::class)
-            ->through(UsergroupCustomvar::class);
+            ->through(UsergroupCustomvar::class)
+            ->setThroughAlias('t_usergroup_customvar');
         $relations->belongsToMany('customvar_flat', CustomvarFlat::class)
             ->through(UsergroupCustomvar::class);
         $relations->belongsToMany('vars', Vars::class)


=====================================
library/Icingadb/Widget/Detail/CommentDetail.php
=====================================
@@ -110,7 +110,7 @@ class CommentDetail extends BaseHtmlElement
         }
 
         $action = Links::commentsDelete();
-        $action->setFilter(Filter::equal('name', $this->comment->name));
+        $action->setFilter(Filter::equal('comment.name', $this->comment->name));
 
         return (new DeleteCommentForm())
             ->setObjects([$this->comment])


=====================================
library/Icingadb/Widget/Detail/DowntimeDetail.php
=====================================
@@ -55,7 +55,7 @@ class DowntimeDetail extends BaseHtmlElement
     protected function createCancelDowntimeForm()
     {
         $action = Links::downtimesDelete();
-        $action->setFilter(Filter::equal('name', $this->downtime->name));
+        $action->setFilter(Filter::equal('downtime.name', $this->downtime->name));
 
         return (new DeleteDowntimeForm())
             ->setObjects([$this->downtime])


=====================================
library/Icingadb/Widget/Detail/RedundancyGroupDetail.php
=====================================
@@ -82,7 +82,6 @@ class RedundancyGroupDetail extends BaseHtmlElement
                 'service.host',
                 'service.host.state',
             ])
-            ->setResultSetClass(VolatileStateResults::class)
             ->orderBy([
                 'host.state.severity',
                 'host.state.last_state_change',


=====================================
library/Icingadb/Widget/ItemList/ObjectList.php
=====================================
@@ -232,7 +232,7 @@ class ObjectList extends ItemList
                     ->setDetailUrl(Url::fromPath('icingadb/comment'))
                     ->setMultiselectUrl(Links::commentsDetails())
                     ->addDetailFilterAttribute($item, Filter::equal('name', $object->name))
-                    ->addMultiSelectFilterAttribute($item, Filter::equal('name', $object->name));
+                    ->addMultiSelectFilterAttribute($item, Filter::equal('comment.name', $object->name));
 
                 break;
             case $object instanceof Downtime:
@@ -240,7 +240,7 @@ class ObjectList extends ItemList
                     ->setDetailUrl(Url::fromPath('icingadb/downtime'))
                     ->setMultiselectUrl(Links::downtimesDetails())
                     ->addDetailFilterAttribute($item, Filter::equal('name', $object->name))
-                    ->addMultiSelectFilterAttribute($item, Filter::equal('name', $object->name));
+                    ->addMultiSelectFilterAttribute($item, Filter::equal('downtime.name', $object->name));
 
                 break;
             case $object instanceof NotificationHistory:


=====================================
module.info
=====================================
@@ -1,6 +1,6 @@
 Module: icingadb
-Version: 1.2.0
+Version: 1.2.2
 Requires:
-  Libraries: icinga-php-library (>=0.16.1), icinga-php-thirdparty (>=0.13.0)
+  Libraries: icinga-php-library (>=0.17.0), icinga-php-thirdparty (>=0.13.0)
 Description: Icinga DB Web
   UI for Icinga DB – Provides a graphical interface to your Icinga monitoring


=====================================
test/php/library/Icingadb/Model/Behavior/FlattenedObjectVarsTest.php
=====================================
@@ -21,11 +21,11 @@ SELECT host.id
 FROM host
 WHERE (host.id NOT IN ((SELECT sub_customvar_flat_host.id AS sub_customvar_flat_host_id
                         FROM customvar_flat sub_customvar_flat
-                                 INNER JOIN host_customvar sub_customvar_flat_host_customvar
-                                            ON sub_customvar_flat_host_customvar.customvar_id =
+                                 INNER JOIN host_customvar sub_customvar_flat_t_host_customvar
+                                            ON sub_customvar_flat_t_host_customvar.customvar_id =
                                                sub_customvar_flat.customvar_id
                                  INNER JOIN host sub_customvar_flat_host
-                                            ON sub_customvar_flat_host.id = sub_customvar_flat_host_customvar.host_id
+                                            ON sub_customvar_flat_host.id = sub_customvar_flat_t_host_customvar.host_id
                         WHERE ((sub_customvar_flat.flatname = ?) AND (sub_customvar_flat.flatvalue = ?))
                           AND (sub_customvar_flat_host.id IS NOT NULL)
                         GROUP BY sub_customvar_flat_host.id
@@ -38,11 +38,11 @@ SELECT host.id
 FROM host
 WHERE (host.id NOT IN ((SELECT sub_customvar_flat_host.id AS sub_customvar_flat_host_id
                         FROM customvar_flat sub_customvar_flat
-                                 INNER JOIN host_customvar sub_customvar_flat_host_customvar
-                                            ON sub_customvar_flat_host_customvar.customvar_id =
+                                 INNER JOIN host_customvar sub_customvar_flat_t_host_customvar
+                                            ON sub_customvar_flat_t_host_customvar.customvar_id =
                                                sub_customvar_flat.customvar_id
                                  INNER JOIN host sub_customvar_flat_host
-                                            ON sub_customvar_flat_host.id = sub_customvar_flat_host_customvar.host_id
+                                            ON sub_customvar_flat_host.id = sub_customvar_flat_t_host_customvar.host_id
                         WHERE (((sub_customvar_flat.flatname = ?) AND (sub_customvar_flat.flatvalue = ?)) OR
                                ((sub_customvar_flat.flatname = ?) AND (sub_customvar_flat.flatvalue = ?)))
                           AND (sub_customvar_flat_host.id IS NOT NULL)
@@ -56,22 +56,22 @@ SELECT host.id
 FROM host
 WHERE ((host.id NOT IN ((SELECT sub_customvar_flat_host.id AS sub_customvar_flat_host_id
                          FROM customvar_flat sub_customvar_flat
-                                  INNER JOIN host_customvar sub_customvar_flat_host_customvar
-                                             ON sub_customvar_flat_host_customvar.customvar_id =
+                                  INNER JOIN host_customvar sub_customvar_flat_t_host_customvar
+                                             ON sub_customvar_flat_t_host_customvar.customvar_id =
                                                 sub_customvar_flat.customvar_id
                                   INNER JOIN host sub_customvar_flat_host
-                                             ON sub_customvar_flat_host.id = sub_customvar_flat_host_customvar.host_id
+                                             ON sub_customvar_flat_host.id = sub_customvar_flat_t_host_customvar.host_id
                          WHERE ((sub_customvar_flat.flatname = ?) AND (sub_customvar_flat.flatvalue = ?))
                            AND (sub_customvar_flat_host.id IS NOT NULL)
                          GROUP BY sub_customvar_flat_host.id
                          HAVING COUNT(DISTINCT sub_customvar_flat.id) >= ?)) OR host.id IS NULL))
   AND (host.id IN ((SELECT sub_customvar_flat_host.id AS sub_customvar_flat_host_id
                     FROM customvar_flat sub_customvar_flat
-                             INNER JOIN host_customvar sub_customvar_flat_host_customvar
-                                        ON sub_customvar_flat_host_customvar.customvar_id =
+                             INNER JOIN host_customvar sub_customvar_flat_t_host_customvar
+                                        ON sub_customvar_flat_t_host_customvar.customvar_id =
                                            sub_customvar_flat.customvar_id
                              INNER JOIN host sub_customvar_flat_host
-                                        ON sub_customvar_flat_host.id = sub_customvar_flat_host_customvar.host_id
+                                        ON sub_customvar_flat_host.id = sub_customvar_flat_t_host_customvar.host_id
                     WHERE (sub_customvar_flat.flatname = ?)
                       AND (sub_customvar_flat.flatvalue = ?)
                     GROUP BY sub_customvar_flat_host.id
@@ -84,11 +84,11 @@ SELECT host.id
 FROM host
 WHERE host.id IN ((SELECT sub_customvar_flat_host.id AS sub_customvar_flat_host_id
                    FROM customvar_flat sub_customvar_flat
-                            INNER JOIN host_customvar sub_customvar_flat_host_customvar
-                                       ON sub_customvar_flat_host_customvar.customvar_id =
+                            INNER JOIN host_customvar sub_customvar_flat_t_host_customvar
+                                       ON sub_customvar_flat_t_host_customvar.customvar_id =
                                           sub_customvar_flat.customvar_id
                             INNER JOIN host sub_customvar_flat_host
-                                       ON sub_customvar_flat_host.id = sub_customvar_flat_host_customvar.host_id
+                                       ON sub_customvar_flat_host.id = sub_customvar_flat_t_host_customvar.host_id
                    WHERE ((sub_customvar_flat.flatname = ?) AND (sub_customvar_flat.flatvalue = ?))
                       OR ((sub_customvar_flat.flatname = ?) AND (sub_customvar_flat.flatvalue = ?))
                    GROUP BY sub_customvar_flat_host.id



View it on GitLab: https://salsa.debian.org/nagios-team/icingadb-web/-/compare/30e77ddfb5ef901ef53ae1cb2276102ce1ea8a24...1edd0105a11b3b642033609b9da30113c56232fc

-- 
View it on GitLab: https://salsa.debian.org/nagios-team/icingadb-web/-/compare/30e77ddfb5ef901ef53ae1cb2276102ce1ea8a24...1edd0105a11b3b642033609b9da30113c56232fc
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-nagios-changes/attachments/20250716/7c02c091/attachment-0001.htm>


More information about the pkg-nagios-changes mailing list