Julian Brost
693d094ebc
DependencyGroup: don't change the keys of m_Members after construction
...
This prevents the use of DependencyGroup for storing the dependencies during
the early registration (m_DependencyGroupsPushedToRegistry = false),
m_PendingDependencies is introduced as a replacement to store the dependencies
at that time.
2025-03-19 16:28:00 +01:00
Yonas Habteab
a9bb11b16d
(Un)register dependencies from parent prior to child Checkable
2025-03-19 16:28:00 +01:00
Yonas Habteab
806fff950c
Checkable: Emit boost signals when changing dependency groups at runtime
2025-03-19 16:28:00 +01:00
Julian Brost
26f46fe021
Simplify dependency group registration
...
Co-Authored-By: Yonas Habteab <yonas.habteab@icinga.com>
2025-03-19 16:28:00 +01:00
Yonas Habteab
ff0dabe287
Checkable: Store dependencies grouped by their redundancy group
2025-03-12 16:31:59 +01:00
Julian Brost
8e7e687b96
Unify depependency cycle check code.
...
This commit removes a distinction in how dependency objects are checked for
cycles in the resulting graph depending on whether they are part of the
initially loaded configuration during process startup or as part of a runtime
update.
The DependencyCycleChecker helper class is extended with a mechanism that
allows additional dependencies to be considered during the cycle search. This
allows using it to check for cycles before actually registering the
dependencies with the checkables.
The aforementioned case-distinction for initial/runtime-update config is
removed by making use of the newly added BeforeOnAllConfigLoaded signal to
perform the cycle check at once for each batch of dependencies inside
ConfigItem::CommitNewItems() for both cases now. During the initial config
loading, there can be multiple batches of dependencies as objects from apply
rules are created separately, so parts of the dependency graph might be visited
multiple times now, however that is limited to a minimum as only parts of the
graph that are reachable from the newly added dependencies are searched.
2025-03-12 11:53:30 +01:00
Julian Brost
c1b270f39f
Rework dependency cycle check
...
This commit groups a bunch of structs and static functions inside
dependency.cpp into a new DependencyCycleChecker helper class. In the process,
the implementation was changed a bit, the behavior should be unchanged except
for a more user-friendly error message in the exception.
2025-03-12 11:53:30 +01:00
Alexander A. Klimov
5b63407d15
Forbid dependency cycles
2023-02-06 12:33:48 +01:00
Michael Friedrich
3a4fb840d4
Tests: Add multi parent dependency test case
2020-02-11 15:13:25 +01:00
Alexander A. Klimov
7668314b4a
Dependency#OnAllConfigLoaded(): don't link *this with the child if *this is going to be dropped
...
refs #7536
2019-09-25 11:30:50 +02:00
Michael Friedrich
d14a88235d
Replace Copyright header with a short version, part I
...
CLion -> replace in path
2019-02-25 14:48:22 +01:00
Michael Friedrich
dab53448bc
icinga.com: Update *.{h,c}pp
2018-10-18 09:27:04 +02:00
Gunnar Beutner
94e6be1a65
Remove unused includes
2018-01-22 09:52:29 +01:00
Gunnar Beutner
9d436605f0
Fix compatibility with CMake < 3.1
2018-01-18 15:12:46 +01:00
Gunnar Beutner
21254fb610
Avoid accessing attributes for validators where not necessary
2018-01-11 08:20:16 +01:00
Gunnar Beutner
ac155d1dda
Apply clang-tidy fix 'modernize-redundant-void-arg'
2018-01-04 12:24:57 +01:00
Michael Insel
158ae2188e
Change copyright header for 2018
2018-01-02 12:08:55 +01:00
Jean Flach
2636e6a77a
Whitespace fix
...
What does this change?
* Remove use of spaces for formatting
These could be found by using `grep -r -l -P '^\t+ +[^*]'
* Removal of training whitespaces
* A few lines longer than 120 chars
2017-12-20 14:53:52 +01:00
Gunnar Beutner
42744fde5b
Remove extraneous whitespace
2017-12-14 08:50:09 +01:00
Gunnar Beutner
83f17b5bfa
Replace boost::assign::list_of with initializer lists
2017-11-30 18:09:38 +01:00
Michael Friedrich
b7caf0820d
Ensure that *.icinga.com is used everywhere
...
fixes #13897
fixes #13277
2017-01-10 17:19:12 +01:00
Gunnar Beutner
288413f046
Replace BOOST_FOREACH with range-based for loops
...
fixes #12538
2016-08-25 06:46:17 +02:00
Gunnar Beutner
218e780a44
Avoid unnecessary string copies
...
fixes #12509
2016-08-23 15:01:40 +02:00
Michael Friedrich
14fdb794e2
Allow strings in state and type filters (config, API)
...
fixes #11445
2016-06-23 14:52:45 +02:00
Gunnar Beutner
599929b0f6
Update copyright headers for 2016
2016-01-12 08:29:59 +01:00
Gunnar Beutner
050c520b2a
Convert Comment/Downtime to config objects
...
fixes #9777
2015-10-28 17:56:29 +01:00
Michael Friedrich
50cd694142
Fix wrong calculation for host compat state UNREACHABLE
...
fixes #10058
2015-09-04 13:24:41 +02:00
Gunnar Beutner
f45f6ccd82
Implement support for tracking dependencies between config objects
...
refs #9096
2015-08-25 13:54:05 +02:00
Gunnar Beutner
071d2f18fb
Rename DynamicObject/DynamicType to ConfigObject/ConfigType
...
fixes #9914
2015-08-15 20:40:41 +02:00
Gunnar Beutner
e2290d5012
Implement support for unregistering objects
...
refs #9101
2015-08-15 20:07:11 +02:00
Gunnar Beutner
72a7b08480
Move implementation code from thpp files into separate files
...
fixes #8890
2015-03-28 11:08:12 +01:00
Gunnar Beutner
ec7224e3ed
Generate C++ code for type validators
...
fixes #7709
fixes #8867
2015-03-27 07:59:27 +01:00
Gunnar Beutner
e50d3e6e5a
Fix validator for dependencies
...
fixes #8596
2015-03-09 08:04:18 +01:00
Michael Friedrich
aac53c1dd1
Add 'ignore_soft_states' attribute to Dependency objects
...
fixes #7326
2015-02-23 10:13:20 +01:00
Michael Friedrich
78bfd0204c
Update copyright year
2015-01-22 12:00:23 +01:00
Gunnar Beutner
363f23b1d8
Rename ScriptFunction to Function
...
fixes #8258
2015-01-21 08:48:38 +01:00
Gunnar Beutner
06052c0539
Fix validation for service names in Notification, Dependency and ScheduledDowntime objects
...
fixes #8122
2014-12-19 11:44:31 +01:00
Gunnar Beutner
9f18211ada
Remove obsolete code
...
refs #7709
2014-12-18 15:57:30 +01:00
Gunnar Beutner
873e294158
Refactor the WorkQueue class to make error reporting easier
...
refs #7709
2014-12-18 15:11:57 +01:00
Gunnar Beutner
2d53e000c8
Refactor the config validator so that it doesn't require serialized objects
...
refs #7701
2014-11-20 13:28:21 +01:00
Gunnar Beutner
b3aa2eb0c8
Fix validator for dependency filters
...
fixes #7650
2014-11-12 09:40:45 +01:00
Gunnar Beutner
478f03b49a
Replace boost::shared_ptr with boost::intrusive_ptr
...
refs #7622
2014-11-09 16:54:41 +01:00
Gunnar Beutner
e1c95d4fa0
Improve config compiler's memory usage
2014-11-08 13:21:51 +01:00
Gunnar Beutner
2d5e9514a5
Refactor logging code
2014-10-19 17:52:17 +02:00
Gunnar Beutner
b18f57a745
Remove logger_fwd.hpp
2014-10-19 14:50:39 +02:00
Gunnar Beutner
eaea65a366
Make props argument for NameComposer::MakeName constant
2014-08-29 16:46:46 +02:00
Gunnar Beutner
8d3632caf8
Cache parent and child object for dependencies
...
fixes #6565
2014-06-24 11:46:53 +02:00
Michael Friedrich
3ecec31af3
Change log message identifier for libicinga.
...
Refs #6346
2014-05-28 14:42:00 +02:00
Gunnar Beutner
632026cd9f
Rename C++ header files.
...
Fixes #6291
2014-05-25 16:27:14 +02:00
Michael Friedrich
1df7518b35
Move more log messages to 'notice' severity.
...
Refs #6070
2014-05-22 23:47:03 +02:00