Commit Graph

777 Commits

Author SHA1 Message Date
Alexander A. Klimov 9be3b60f76 DSL: allow ()use(x)=>x and ()use(x)=>{return x} 2019-12-03 11:19:34 +01:00
Alexander A. Klimov 5c347ef7bd DSL: introduce x?y:z 2019-11-15 13:38:01 +01:00
Alexander Aleksandrovič Klimov 3804f4edcc I like to move it, move it 2019-10-28 13:46:33 +01:00
Michael Friedrich e0ef5fe9de
Merge pull request #7458 from Icinga/feature/config-parser-cleanup
Config parser: introduce optional_newlines
2019-10-22 17:29:59 +02:00
Michael Friedrich 6103f53c5b
Merge pull request #7541 from Icinga/bugfix/heredoc-eof
Config lexer: complain on EOF in heredocs, i.e. {{{abc<EOF>
2019-10-22 17:19:27 +02:00
Alexander A. Klimov 768044a754 Replace std::shared_ptr<NamespaceValue> with NamespaceValue::Ptr
refs #7361
2019-10-21 17:10:51 +02:00
Alexander A. Klimov aa4cad7482 Replace std::shared_ptr<Expression> with Expression::Ptr
refs #7361
2019-10-21 17:10:51 +02:00
Michael Friedrich 3e6fc9bfa1
Merge pull request #7457 from Icinga/feature/config-parser-malloc
Config parser: save some memory allocations
2019-10-17 17:19:30 +02:00
Alexander A. Klimov 672f497c3a Config lexer: complain on EOF in heredocs, i.e. {{{abc<EOF> 2019-09-26 13:10:19 +02:00
Alexander A. Klimov b4e3736e31 WarnOnImplicitlySetGlobalVar(): warn only on sins inside actual DSL code 2019-09-23 15:09:57 +02:00
Alexander A. Klimov 360cb50c9e Config parser: inline arraysep 2019-08-29 14:06:01 +02:00
Alexander A. Klimov fd88ac2f83 Config parser: introduce optional_newlines 2019-08-29 14:05:58 +02:00
Alexander A. Klimov 203482a675 Config parser: save some memory allocations 2019-08-29 10:54:54 +02:00
Alexander A. Klimov 429080ee1c DSL: warn on x=y if x is a global variable 2019-08-27 13:30:02 +02:00
Michael Friedrich c30edd0a34 Fix message origin for runtime created config object (create/delete events) 2019-08-13 15:05:47 +02:00
Michael Friedrich 0d25ae0e08 Quality: Prefer BOOST_{,UN}LIKELY gcc optimizer macros over our own
Our macro collides with Boost::DateTime and the gregorian classes
and I don't see any reason why we shouldn't use Boost::Config
being already there.
2019-07-09 13:20:53 +02:00
Michael Friedrich 0438c866f8
Merge pull request #7102 from Icinga/feature/boost-fs-7101
Replace self-written filesystem ops with boost.filesystem
2019-04-25 15:53:55 +02:00
Alexander A. Klimov 5a17722c1f Replace _unlink() + rename() with boost::filesystem::rename()
refs #7101
2019-04-25 09:53:02 +02:00
Alexander A. Klimov ba842403ce Fix circular #include
refs #6985
2019-04-25 08:25:28 +02:00
Michael Friedrich 37b715baf1 Replace a few more copyright strings 2019-02-25 16:30:40 +01:00
Michael Friedrich 458f997a18 Replace Copyright header with a short version, part II 2019-02-25 15:09:36 +01: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 3ad911a57c Fix indent in configcompiler.cpp 2019-02-15 12:24:49 +01:00
Michael Friedrich 3cb2c1d143 icinga.com: Update everything else 2018-10-18 09:50:53 +02:00
Michael Friedrich dea5ec614e icinga.com: Update CMakeLists.txt 2018-10-18 09:35:18 +02:00
Michael Friedrich dab53448bc icinga.com: Update *.{h,c}pp 2018-10-18 09:27:04 +02:00
Michael Friedrich 85e161ea1e Silence config compiler logging for runtime created objects
This is especially problematic with many single creation requests,
e.g. many downtimes created via Icinga Web 2 & the REST API.

In addition to the config compiler messages, apply rule matches are
also in there which are removed by this patch.
2018-10-09 16:41:17 +02:00
Michael Friedrich 1c2a59bf63
Merge pull request #6591 from Icinga/bugfix/lto-builds-static-initialize-namespaces
Fix static initializer priority for namespaces in LTO builds
2018-09-04 16:54:30 +02:00
Michael Friedrich 19993df380 Fix static initializer priority for namespaces in LTO builds
fixes #6575
2018-09-04 16:36:22 +02:00
Jean Flach 8fe490f945 Update variable names 2018-09-04 11:45:35 +02:00
Markus Frosch 13a8fa20f9 Ensure that config object types are committed in dependent load order 2018-09-04 11:45:35 +02:00
Jean Flach c721c302cd Shuffle items before config validation 2018-09-04 11:10:27 +02:00
Gunnar Beutner e678fa1aa5 Refactor Application::*Const() 2018-08-13 15:27:05 +02:00
Gunnar Beutner 8fda8d72ac Implement support for the namespace and using keywords 2018-08-13 13:44:31 +02:00
Gunnar Beutner 1a8692d972 Implement support for namespaces 2018-08-13 13:44:31 +02:00
Gunnar Beutner 9d513d8f05 Implement support for modifying frozen attributes 2018-08-13 13:44:31 +02:00
Gunnar Beutner d9c0b6f806 Refactor REGISTER_SCRIPTFUNCTION_* macros 2018-08-13 13:44:31 +02:00
Markus Frosch 9fbc40615a Improve path handling in cmake and daemon 2018-08-07 14:10:26 +02:00
Gunnar Beutner 8bfd419702 Implement references 2018-08-07 07:44:48 +02:00
Gunnar Beutner 56cf64f590 Improve error message for serializing objects with recursive references 2018-08-02 11:06:24 +02:00
Michael Friedrich e519d6bbc6
Merge pull request #6110 from gunnarbeutner/feature/for-loop-var
Implement support for optionally specifying the 'var' keyword in 'for' loops
2018-07-26 10:05:17 +02:00
Michael Friedrich fc2da5047c Fix debug build log entry for ConfigItem activation priority
This is not visible in release builds, minor fix.
2018-07-19 12:53:28 +02:00
Gunnar Beutner 2eb46f1203 Implement support for optionally specifying the 'var' keyword in 'for' loops 2018-07-03 11:03:22 +02:00
Jean Flach c54e042942 Add activation priorities for config object types
This patch ensures that specific configuration types
are pre-activated and post-activated. In general,
logging is first, then common configuration objects
like host/service, downtimes, etc.
In the end, all features are activated after to ensure
that notifications are only sent once downtimes are applied.
A similar thing happens for starting with checks too early.
The ApiListener feature runs first to allow cluster connections
at first glance.

fixes #6057
fixes #6231
2018-05-04 11:25:47 +02:00
Michael Friedrich 495b6906f7 Fix wrong type logging in ConfigItem::Commit 2018-02-09 14:04:50 +01:00
Gunnar Beutner 1047e5ff3d Improve location info for some error messages 2018-01-29 10:04:58 +01:00
Jean Flach 1da6b2c883 Fix whitespaces in CMakeLists files
Uses 2 space indentation as standard
2018-01-19 09:19:40 +01:00
Gunnar Beutner 2a9dceb367 Use CMake object libraries for our libs 2018-01-17 04:28:21 +01:00
Gunnar Beutner c2fb9fe226 Use initializer lists for arrays and dictionaries 2018-01-16 12:27:44 +01:00
Gunnar Beutner a36e847c6c Allocate ConfigItemBuilder objects on the stack 2018-01-11 10:52:26 +01:00
Gunnar Beutner d9010c7b9f Avoid mutex contention in the config parser 2018-01-08 15:59:55 +01:00
Gunnar Beutner 91c256261a Apply clang-tidy fix 'modernize-use-default-member-init' 2018-01-04 12:24:58 +01:00
Gunnar Beutner becfa85094 Apply clang-tidy fix 'modernize-use-emplace' 2018-01-04 12:24:57 +01:00
Gunnar Beutner e3ad0be769 Apply clang-tidy fix 'modernize-use-auto' 2018-01-04 12:24:57 +01:00
Gunnar Beutner 621eed3f13 Apply clang-tidy fix 'modernize-pass-by-value' 2018-01-04 12:24:57 +01:00
Gunnar Beutner 9ca682496c Apply clang-tidy fix 'modernize-use-override' 2018-01-04 12:24:57 +01:00
Gunnar Beutner ac155d1dda Apply clang-tidy fix 'modernize-redundant-void-arg' 2018-01-04 12:24:57 +01:00
Gunnar Beutner 41f0fbfd30 Add the final keyword to methods 2018-01-04 05:45:40 +00:00
Gunnar Beutner efe99a3e5e Add the final keyword to classes 2018-01-04 05:20:20 +00:00
Michael Friedrich cd33b8b508
Merge pull request #5936 from Icinga/feature/source-lists
Clean up source lists in the CMakeLists.txt files
2018-01-03 11:59:35 +01:00
Gunnar Beutner 75e2473616 Clean up source lists in the CMakeLists.txt files 2018-01-03 11:47:46 +01:00
Michael Friedrich 0e6f4b1966
Merge pull request #5939 from Icinga/fix/build-fix-wheezy
Build fix for Debian wheezy
2018-01-03 11:28:57 +01:00
Gunnar Beutner abe3f8a959 Build fix for Debian wheezy 2018-01-03 10:32:33 +01:00
Gunnar Beutner 2f953d6204 Implement shim for libmysqlclient and libpq 2018-01-02 23:29:48 +01:00
Gunnar Beutner 90496b5456 Build libraries as static libraries 2018-01-02 23:29:48 +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
Jean Flach f40f366e9e Remove unnecessary inline statements
fixes #5886
2017-12-20 13:22:38 +01:00
Jean Flach 0791a8ddde
Merge pull request #5887 from Icinga/fix/windows-build-fix
Windows build fix
2017-12-20 10:50:27 +01:00
Gunnar Beutner 02dc3a9507 Workaround for GCC bug 61321 2017-12-20 08:02:17 +01:00
Gunnar Beutner adc892bde7 Windows build fix 2017-12-20 08:01:04 +01:00
Gunnar Beutner 4866f777cc Avoid unnecessary allocations for script frames 2017-12-18 13:40:29 +01:00
Gunnar Beutner ab8386cf5c Use std::unique_ptr for Expression objects 2017-12-15 10:44:54 +01:00
Gunnar Beutner 1ad83886ac Replace a few more NULLs with nullptr 2017-12-14 15:37:20 +01:00
Gunnar Beutner 42744fde5b Remove extraneous whitespace 2017-12-14 08:50:09 +01:00
Gunnar Beutner 96e214221d Remove unused variables 2017-12-14 08:50:09 +01:00
Gunnar Beutner 325e4a2fb9 Use nullptr instead of <Type>::Ptr() 2017-11-30 17:47:09 +01:00
Gunnar Beutner 3c60fbf75d Use std::vector::emplace_back instead of std::vector::push_back 2017-11-30 17:47:09 +01:00
Gunnar Beutner 9ce950b0f1 Replace boost::ref/boost::cref with std::ref/std::cref 2017-11-30 17:47:09 +01:00
Gunnar Beutner 6d09efc907 Use std::shared_ptr instead of boost::shared_ptr 2017-11-30 17:41:00 +01:00
Gunnar Beutner 300d424459 Use std::promise instead of boost::promise 2017-11-30 17:39:22 +01:00
Gunnar Beutner c6e36723d5
Merge pull request #5819 from Icinga/feature/avoid-func-call-allocations
Avoid unnecessary allocations in the FunctionCallExpression class
2017-11-29 14:24:46 +01:00
Gunnar Beutner db6a1fcdb7 Avoid unnecessary allocations in the FunctionCallExpression class 2017-11-29 14:11:09 +01:00
Gunnar Beutner d5961bb76c Re-implement WrapFunction() using C++11 features 2017-11-29 11:53:45 +01:00
Gunnar Beutner 858873b940 Replace boost::bind/boost::function with std::bind/std::function 2017-11-27 15:15:11 +01:00
Noah Hilverling aab50f669c Add process elevation & log message if user does not have enough privileges
refs #5515
2017-09-22 10:25:17 +02:00
Gunnar Beutner f9feb41877 Implement support for handling exceptions in user scripts 2017-06-13 14:03:41 +02:00
Gunnar Beutner 7e3b664140 Add missing ->GetName() calls
fixes #5256
2017-05-15 11:11:08 +02:00
Gunnar Beutner d05b7c4178 Allow expressions for the type in object/template declarations 2017-05-11 14:21:30 +02:00
Gunnar Beutner f9f3358d09 Make sure all objects are set to 'active' before calling the Start() method
fixes #5224
2017-05-04 10:37:34 +02:00
Gunnar Beutner 4134f7fe42 Make sure modified attributes are applied before calling the objects' Start method
refs #4696
2017-05-03 12:02:19 +02:00
Gunnar Beutner b62241e0ba Remove redundant #include
refs #5168
2017-04-27 09:24:37 +02:00
Gunnar Beutner d03d09160a Clean up the IsAbsolutePath patch
refs #5168
2017-04-27 05:31:44 +02:00
Jean Flach 293625c17b Fix absolute include paths for windows
fixes #5168
2017-04-24 15:39:21 +02:00
Gunnar Beutner 5d45c74be3 Improve function metadata by adding arguments
fixes #5087
2017-03-27 14:43:19 +02:00
Gunnar Beutner 446490ceb3 Fix crash in ConfigItem::RemoveIgnoredItems
fixes #4952
2017-02-01 12:56:53 +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 17029e3161 Suppress compiler warnings for auto-generated code
fixes #12635
2016-09-05 06:51:31 +02:00
Gunnar Beutner 7879c09789 Avoid unnecessary dictionary lookups
refs #12555
2016-09-01 07:41:41 +02:00
Gunnar Beutner 06cb3cf875 Another build fix for Windows
refs #9182
2016-08-31 13:43:50 +02:00