Julian Brost
cf517050bc
Merge pull request #9711 from Icinga/connect-cancel
...
Connect(): don't try next DNS record if operation is canceled
2023-03-01 15:49:53 +01:00
Alexander A. Klimov
79f1e0666a
Connect(): don't try next DNS record if operation is canceled
...
Instead return immediately to meet the caller's expectations.
2023-02-28 10:57:54 +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
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
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
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
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
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
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
Julian Brost
fd1aa73d25
Fix config sync after freezing namespaces
...
This was accidentally broken by #9627 because during config sync, a config
validation happens that uses `--define System.ZonesStageVarDir=...` which fails
on the now frozen namespace.
This commit changes this to use `Internal.ZonesStageVarDir` instead. After all,
this is used for internal functionality, users should not directly interact
with this flag.
Additionally, it no longer freezes the `Internal` namespace which actually
allows using `Internal.ZonesStageVarDir` in the first place. This also fixes
`--define Internal.Debug*` which was also broken by said PR. Freezing of the
`Internal` namespace is not necessary for performance reasons as it's not
searched implicitly (for example when accessing `globals.x`) and should users
actually interact with it, they should know by that name that they are on their
own.
2023-02-01 12:29:47 +01:00
Alexander A. Klimov
fd93feaec7
Include Utility::SetFileOwnership() inside FS transactions
...
to make them even more atomic.
2023-01-27 12:03:59 +01:00
Alexander A. Klimov
d22fdf2a7a
Introduce AtomicFile#GetTempFilename()
2023-01-27 12:03:59 +01:00
Alexander A. Klimov
0367c9e099
Remove unused Utility::CreateTempFile()
2023-01-27 12:03:59 +01:00
Alexander A. Klimov
b92fe23469
Deduplicate and stabilize fragile filesystem transactions
...
by using AtomicFile so they ensure all or nothing of a file gets replaced.
2023-01-27 12:03:56 +01:00
Alexander A. Klimov
a3e205b990
Introduce AtomicFile::Write()
2023-01-27 11:36:09 +01:00
Julian Brost
2d860a0f5e
Merge pull request #8118 from Icinga/feature/speed-object-registry-8112
...
Speed up config object lookup
2023-01-26 19:03:40 +01:00
Alexander Aleksandrovič Klimov
421ac1735c
Merge pull request #9608 from Icinga/move-types-namespace
...
Move Types namespace into type.cpp and simplify Type::GetByName()
2023-01-26 18:32:41 +01:00
Julian Brost
ad8868cab7
Merge pull request #9599 from Icinga/influx-ns
...
Influx DB: don't unneccessarily truncate timestamps to whole seconds
2023-01-26 17:44:50 +01:00
Alexander A. Klimov
b2fc49569c
Make ConfigType#m_Mutex a std::shared_timed_mutex
...
refs #8112
2023-01-26 15:04:02 +01:00
Alexander A. Klimov
21759f015d
ConfigType: store config objects in a hash map
...
refs #8112
2023-01-26 15:03:54 +01:00
Julian Brost
3dab46623b
Move Types namespace into type.cpp and simplify Type::GetByName()
...
This commit moves the initialization of the globals.Types namespace to type.cpp
in order to keep a pointer to the Namespace object in Type::m_Namespace and
simplify Type::GetByName() using it.
The dynamic type check is moved into an assertion after freezing the namespace.
2023-01-26 14:26:41 +01:00
Yonas Habteab
5a67ddea76
Don't post-increment stl iterators
2023-01-26 09:10:49 +01:00
Yonas Habteab
8bb0b857d8
ApiListener: Fix memory leak & group `a || b && c` correctly
2023-01-26 09:10:49 +01:00
Yonas Habteab
95cec9cba2
Don't mark a method as `virtual` in a `final` class
2023-01-26 09:10:38 +01:00
Yonas Habteab
7b91b200f5
Use simplified if conditions where applicable
2023-01-26 09:06:20 +01:00
Yonas Habteab
38313434d2
Avoid calling `GetDeferredInitializers()` repeatedly
2023-01-26 09:05:19 +01:00
Alexander Aleksandrovič Klimov
bb99106926
Merge pull request #7863 from Icinga/bugfix/disallow-receiving-ticket-salt-via-api
...
Disallow fetching the ticket salt via REST API
2023-01-25 16:39:30 +01:00
Julian Brost
5fea15e090
Merge pull request #7958 from Icinga/bugfix/api-500-404-7956
...
/v1/actions/*: return 404 if no objects found
2023-01-24 15:08:17 +01:00