Commit Graph

13607 Commits

Author SHA1 Message Date
Edgar Fuß cfef9fdadc Introduce redundancy groups for Dependency Objects
Traditional behaviour was to regard all dependecies as cumulative (e.g., the parent considered unreachable if any one dependency is violated), commit ed58922389 made all dependencies regarded redundant (e.g., the parent considered unreachable only if all dependency are violated). This may lead to unrelated services (or even hosts vs. services) inadvertantly regarded to be redundant to each other.

Most importantly, applying the explicit "disable-host-service-checks" dependency described in the "Monitoring Basics" chapter will defeat all other dependencies.

This commit introduces a new "redundancy_group" attribute for dependencies.
Specifying a redundancy_group causes a dependency to be regarded as redundant only inside that redundancy group.
Dependencies lacking a redundancy_group attribute are regarded as essential for the parent.

This allows for both cumulative and redundant dependencies and even a combination (cumulation of redundancies, like SSH depeding on both LDAP and DNS to function, while operating redundant LDAP servers as well as redundant DNS resolvers).

This commit lacks changes to the tests.
2023-02-21 16:23:36 +01:00
Julian Brost bda8be343b
Merge pull request #9662 from Icinga/Repair#9627
Repair DSL Namespace values being constant broken in #9627
2023-02-20 16:35:36 +01:00
Alexander A. Klimov 11f7fb1928 CMakeLists.txt: don't surprise (i.e. terminate) CMake < 3.8 (on SLES 12.5)
with "set(CMAKE_CXX_STANDARD 17)" which it doesn't know.
2023-02-20 15:35:37 +01:00
Alexander A. Klimov 616ccc45fc Require C++17 2023-02-20 15:35:37 +01:00
Alexander A. Klimov 9e90b17eb4 Require GCC 7+ 2023-02-20 15:35:37 +01:00
Julian Brost d9767cff3f
Merge pull request #9675 from Icinga/third-party/nlohmann_json
Update third-party/nlohmann_json to v3.9.1
2023-02-20 15:31:32 +01:00
Julian Brost a84a0a3cee
Merge pull request #8302 from Icinga/bugfix/windows-systemroot-aliases-6259
Macros: support $env.ENV_VAR_NAME$
2023-02-20 13:09:15 +01:00
Alexander A. Klimov f2974c07cf Centralise default icinga.* and env.* macros 2023-02-17 15:33:36 +01:00
Julian Brost e4c34786e1
Merge pull request #9698 from Icinga/probot/sync-changelog/master/c3d8ed7092053e69c722cf3cef93bc0e6286f402
CHANGELOG.md: add v2.13.7
2023-02-17 13:51:03 +01:00
Alexander A. Klimov 9aa24cc867 CHANGELOG.md: add v2.13.7 2023-02-16 16:12:11 +00:00
Alexander Aleksandrovič Klimov c3d8ed7092
Merge pull request #9664 from Icinga/bugfix/selinux-readd-bools
Add role icinga2adm_r to SELinux policies
2023-02-16 17:11:57 +01:00
Alexander Aleksandrovič Klimov b4381c0bd3
Merge pull request #9677 from Icinga/docs-for-fedora
Docs: Fix instructions for Fedora
2023-02-15 19:47:32 +01:00
Henrik Triem 8173cf0760
Add icinga2adm_r role def before creating SELinux user&domain 2023-02-15 17:39:28 +01:00
Eric Lippmann 2e3b569f2c docs: Fix how to set up our Fedora repository
We do not provide `icinga-rpm-release` RPMs since ages.
2023-02-15 15:33:54 +01:00
Alexander A. Klimov 6d5494ef39 Merge commit '19262c0de696533f61db14e7c167d9370a33b8b2' into HEAD 2023-02-15 11:25:31 +01:00
Alexander A. Klimov 19262c0de6 Squashed 'third-party/utf8cpp/' changes from 82344d605..79835a5fa
79835a5fa Remove -Wsign-conversion from test builds.
53398ca70 Restructure tests.
e3e57c811 Fix for issue #92: Clang 10 Compiler warnings
d736c29d3 Fix -Wconversion warnings in tests when -funsigned-char option is used.
780bd57d6 Merge pull request #96 from Finkman/provide-ns-on-installed
73b347f31 Adds the following advantages:  - utf8::cpp is available, even when installed  - cmake is aware of the library version  - compatible with previous usage: target utf8cpp available when installed
3ca904b21 Version 3.2.2
aa3b12c52 Added a couple of statis_casts to eliminate signed conversion warnings.
ee90a4a52 Added compiler options to enable warnings.
d8b92208f Merge pull request #87 from cschreib/patch-1
a92f85526 Add missing export() command
b85efd66a Test string literals
4e1149766 Merge pull request #80 from RT222/master
ec6747005 Fix the inclusion of both cpp11 and cpp17 headers on C++17 compilation
ddd38b304 Version 3.2
2af93bd67 Documentation: C++ 17 support.
b6cd18f92 test_utf32to8 tests string_view, not string
0991356b7 find_invalid(string_view) returns string_view::npos, not string::npos
4bed367c1 Update test docker image
a7d530de5 C++ 17 support: add tests, remove duplicate utf8::append()
50361edbf Merge pull request #77 from RT222/master
fe79d14ae Switching from gtest to ftest for unit-testing.
7d17aed95 Merge pull request #79 from fu7mu4/it-is-code
957e30052 Does it have syntax hilight
d40e4948f Support for C++17
e39907b38 Version 3.1.2
3c85cd48f Add prefix to NOEXCEPT and OVERRIDE macros.
944ef0561 Merge pull request #55 from Flamefire/disable_tests_for_subproject
dc2442c2e Merge pull request #61 from xenia-project/master
2b1521b48 Fix deprecated std::iterator usage (STL4015).
bee3b1349 Enable tests, docu, install only when building as root project
c3f9261eb Merge pull request #51 from AkiraMiyakoda/msvc_warning
7fb121130 Fix an MSVC warning about narrowing conversion.
170e2d11f Merge pull request #44 from tvanriper/patch-1
32ccbfb74 Removed utf8 path from #include.
2370b95a8 Compile negative test with C++ 98
89cfc3e38 Replace throw() with noexcept when using C++11 or later
687a59d88 Add override keyword when compiled with C++11 or later
f26d39e8a Move C++ version detection to core.h
b1002fd19 Introduce UTF_CPP_CPLUSPLUS macro.
088dd3ad7 Merge pull request #40 from xantares/patch-1
afc32b4c0 Always use GNU install layout except MSVC
82c674b7a Version 3.1
33516ff07 Test -fno-exceptions with unchecked api
f16bdde67 Merge pull request #37 from nemtrif/unchecked_replace_invalid
c52319302 unchecked::replace_invalid()
a3fa4ee84 Merge pull request #36 from nemtrif/gtesturl
8fd51836a Submodule url for googletest is https
ad27c7d5e Merge pull request #33 from nemtrif/optionalinstall
293f85d97 Installation is optional
a540297fd Version 3.0.3
04d29d92a Add inline declarations to non-template functions in cpp11.h
741259277 Merge pull request #30 from nemtrif/ci
335a3ee6a Update docker to 3.0.1
d5e847d0a Update project version
e6da1a36a Set up CircleCI
0b45681b6 Add Dockerfile
66804081d Introduce GTest
a0a2d9d1e Fix for the cpp11.h header guard
7db72814a Merge pull request #24 from nemtrif/release_3_0
007f8e32c advance() can work in backward direction.
92158c9ce Minor whitespace fixes
236d61942 Update documentation for replace_invalid
d8b09b301 Merge pull request #21 from glebm/fix-remove-invalid
3793703e7 Remove unused test data
080f1e6a3 Remove utf8reader sample
00d73e4a0 Remove deprecated functions
2b8596149 Support for C++11
f637e70c1 Merge pull request #22 from AkiraMiyakoda/fix-msvc2019-warning
cfc351c86 Fix MSVC 2017-2019 warning about negative unsigned value.
026aed63d replace_invalid: Replace final incomplete sequence

git-subtree-dir: third-party/utf8cpp
git-subtree-split: 79835a5fa57271f07a90ed36123e30ae9741178e
2023-02-15 11:25:31 +01:00
Eric Lippmann ad27397f06
docs: Add missing "Install Icinga 2 on Fedora" heading 2023-02-15 10:14:01 +01:00
Julian Brost 737e812b69
Merge pull request #9673 from Icinga/181
Bump Boost to v1.81
2023-02-15 10:13:22 +01:00
Julian Brost 3023009804
Merge pull request #9653 from Icinga/9631
Setup all signal handlers with SA_RESTART flag
2023-02-14 17:55:09 +01:00
Alexander A. Klimov 34d0b942b9 Update third-party/nlohmann_json to v3.9.1
the latest version w/o Apache 2.0 licensed code which conflicts with GPL 2.
2023-02-14 16:19:44 +01:00
Julian Brost c7301a06b6
Merge pull request #9667 from Icinga/v1.1.1t
Windows: bump OpenSSL to v1.1.1t
2023-02-14 16:02:32 +01:00
Alexander A. Klimov 6347d7a008 Bump Boost to v1.81 2023-02-14 14:36:16 +01:00
Alexander A. Klimov 2ec62d0dd9 Windows: bump OpenSSL to v1.1.1t 2023-02-14 11:40:44 +01:00
Julian Brost 4d46d73f41
Merge pull request #9663 from Icinga/Al2Klimov-patch-3
Fix typo
2023-02-13 17:03:38 +01:00
Alexander Aleksandrovič Klimov fd5350d588
Fix typo 2023-02-13 13:00:28 +01:00
Julian Brost e074e892ce
Merge pull request #9658 from Icinga/unfreeze
Dictionary#*(): remove bool overrideFrozen if unused
2023-02-10 19:42:00 +01:00
Julian Brost 213f3f9444
Merge pull request #8389 from Icinga/feature/forbid-dep-cycles
Forbid dependency cycles
2023-02-10 17:26:04 +01:00
Alexander A. Klimov b2b49caf61 Macros: support $env.ENV_VAR_NAME$
refs #6259
2023-02-10 17:21:29 +01:00
Alexander A. Klimov f3f2c943c7 ScriptGlobal::Set(): don't explicitly give Namespace#Set() its default values 2023-02-10 15:55:10 +01:00
Alexander A. Klimov e61b380808 Call Namespace#Set(), not #SetFieldByName()
Namespace#SetFieldByName() calls #Set() anyway.
2023-02-10 15:53:30 +01:00
Alexander A. Klimov 683095a165 Make globals.Internal values non-const by default
That namespace is internal anyway.

Previous commit, icinga2 console:
Error: Constants must not be removed.

This commit fixes it.
2023-02-10 15:47:25 +01:00
Alexander A. Klimov 02df94a46a Repair DSL Namespace values being constant broken in #9627
master before #9627 (a0286e9c6):

<1> => namespace n { x = 42; x = 42 }
                             ^^^^^^
Constant must not be modified.
<2> =>

HEAD of #9627 (24b57f0d3):

<1> => namespace n { x = 42; x = 42 }
null
<2> =>
2023-02-10 15:43:01 +01:00
Julian Brost 0dd35bb960
Merge pull request #9657 from Icinga/shared_mutex-Dictionary
Use a shared_mutex for read `Dictionary` operations
2023-02-10 15:15:52 +01:00
Alexander A. Klimov e9846f1827 ScriptGlobal::Set(): remove unused bool overrideFrozen 2023-02-10 11:33:46 +01:00
Alexander A. Klimov cd78da13d3 Dictionary#Clear(): remove unused bool overrideFrozen 2023-02-10 11:33:46 +01:00
Alexander A. Klimov 270c6392d4 Dictionary#Remove(): remove unused bool overrideFrozen 2023-02-10 11:33:46 +01:00
Alexander A. Klimov ca547d0292 Use a shared_mutex for read `Dictionary` operations
This allows multiple parallel read operations resulting
in a overall speedup on systems with many cores.
2023-02-10 11:31:51 +01:00
Alexander A. Klimov a309b4a415 ResolverSpec: add option not to resolve "$name$"
but only "$host.name$".
2023-02-06 16:39:17 +01:00
Alexander A. Klimov 5b63407d15 Forbid dependency cycles 2023-02-06 12:33:48 +01:00
Alexander A. Klimov 91901eafd8 Introduce EnvResolver
refs #6259
2023-02-06 11:25:25 +01:00
Alexander A. Klimov a9341eb4a0 Setup all signal handlers with SA_RESTART flag
so interrupted syscalls get auto-restarted and callers
don't get or have to handle the EINTR error.
2023-02-03 14:46:45 +01:00
Julian Brost 14d7ee2777
Merge pull request #9585 from Icinga/apply-doc
Doc: Troubleshooting: Optimise apply rules and group assign conditions
2023-02-03 09:46:35 +01:00
Julian Brost c51037725a
Merge pull request #9466 from Icinga/flush-temp-files
Deduplicate and stabilize fragile filesystem transactions
2023-02-02 16:29:11 +01:00
Julian Brost 3eb85797ce
Merge pull request #9622 from Icinga/9563
Main process: ignore SIGHUP
2023-02-02 11:36:13 +01:00
Julian Brost a0239e44f7
Merge pull request #9598 from Icinga/9596
CheckerComponent#CheckThreadProc(): also propagate next check update …
2023-02-01 20:09:06 +01:00
Alexander Aleksandrovič Klimov 4e021e0105
Merge pull request #9648 from Icinga/frozen-namespace-config-validation
Fix config sync after freezing namespaces
2023-02-01 17:07:57 +01:00
Julian Brost 0bd972ff0c
Merge pull request #9647 from Icinga/Al2Klimov-patch-3
Docs: Windows Dev Environment: TL;DR: disable unity build
2023-02-01 17:02:51 +01:00
Alexander A. Klimov e9b8c67975 CheckerComponent#CheckThreadProc(): also propagate next check update to Icinga DB
if caused by dependency or check period.

Now as long as any of the above causes check skips
next check and next update will be up-to-date in Icinga DB,
so the checkable won't slide into false positive overdue.
2023-02-01 16:25:56 +01:00
Julian Brost 6fc9038e4d
Merge pull request #9620 from Icinga/9526
Document Notification#times being not aware of downtimes
2023-02-01 14:31:27 +01:00
Julian Brost 2b43354080
Merge pull request #8744 from Icinga/bugfix/unnecessary-chown-8743
NodeUtility::WriteNodeConfigObjects(): avoid unneccessary Utility::SetFileOwnership()
2023-02-01 14:27:46 +01:00