Commit Graph

1336 Commits

Author SHA1 Message Date
Gunnar Beutner 9d436605f0 Fix compatibility with CMake < 3.1 2018-01-18 15:12:46 +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
Michael Friedrich 211a07f49a Add 'ttl' support for check result freshness via REST API
The `process-check-result` action can now optionally set the
`ttl` parameter. This overrules the configured freshness
check (check_interval).

The main idea behind this is to allow the external sender
to specify when the next check result is coming in.

For example, a backup script which should be run every
24h can specify the exact expected next check result.

The addition to the CheckResult class is necessary to
forward the check result throughout the cluster and
calculate the `next_check` value on each node. This
allows us to send in a check result on a satellite,
and the master determines the freshness and possible
notifications/state changes for Icinga Web 2.
2018-01-15 13:54:11 +01:00
Michael Friedrich 9de233630a Move CompatUtility::GetCheckableInNotificationPeriod() logic into Livestatus feature 2018-01-15 13:39:34 +01:00
Michael Friedrich 7a012c062a Move CompatUtility::GetHostStateString() logic into DB IDO and CompatLogger features 2018-01-15 13:39:34 +01:00
Michael Friedrich 915d0417c9 Move CompatUtility::GetHostCurrentState() logic into DB IDO and StatusData features 2018-01-15 13:39:34 +01:00
Michael Friedrich 48516560bc Move the IDO specific compat notification filter logic into the feature 2018-01-15 13:39:34 +01:00
Michael Friedrich d373b03907 Drop CompatUtility::GetCheckable*Interval() and hardcode their minute representation in compat features 2018-01-15 13:39:34 +01:00
Michael Friedrich fb76287d39 Clean header includes in CompatUtility class 2018-01-15 13:39:34 +01:00
Michael Friedrich 1473957bc2 Add inventory as comments where the left-over functions are actually used. 2018-01-15 13:39:34 +01:00
Michael Friedrich e3a899a9ac Drop CompatUtility::GetCheckableCheckPeriod() 2018-01-15 13:39:34 +01:00
Michael Friedrich ce8bfdfa5a Move CompatUtility::GetCheckableInCheckPeriod() into Livestatus feature 2018-01-15 13:39:34 +01:00
Michael Friedrich 15e3524e42 Move notification options wrapper into StatusDataWriter
That's the only location which requires the old mapping.
2018-01-15 13:39:34 +01:00
Michael Friedrich 87b99c17b5 Drop CompatUtility::GetCheckResultPerfdata() 2018-01-15 13:39:34 +01:00
Michael Friedrich 906c1accaa Move more compatibility mappings into DB IDO 2018-01-15 13:39:34 +01:00
Michael Friedrich 2478c4d053 Move ConvertTimestamp functionality into DB IDO
This is the only place where the timestamp is split into
sec and usec.
2018-01-15 13:39:34 +01:00
Michael Friedrich f2fe165ccb Drop useless CompatUtility::GetCustomAttributeConfig() wrapper 2018-01-15 13:39:34 +01:00
Michael Friedrich b5f5d167dc Drop dead CompatUtility::GetCustomAttributeConfig 2018-01-15 13:39:34 +01:00
Michael Friedrich cbea0c13f5 Drop Freshness wrappers from CompatUtility class 2018-01-15 13:39:34 +01:00
Michael Friedrich db6ed405e4 Remove more redundant wrappers from CompatUtility class 2018-01-15 13:39:34 +01:00
Michael Friedrich 5466197d29 Drop CompatUtility::*Command helpers 2018-01-15 13:39:34 +01:00
Michael Friedrich b4af0971af Drop dead code in Livestatus feature 2018-01-15 13:39:34 +01:00
Michael Friedrich 2d1f772a6e Replace CompatUtility's enabled wrappers with native implementation getters
Many conversions were not necessary, or could be dealt inside the actual
feature. libcompat and liblivestatus can take care about such specifics
on their own, lib_db_ido doesn't need boolean conversion in fields, that
is done inside the db driver.
2018-01-15 13:39:34 +01:00
Michael Friedrich 334f633b0a Drop CompatUtility::GetCheckableHasBeenChecked() and use Checkable::HasBeenChecked() 2018-01-15 13:39:34 +01:00
Michael Friedrich 3847e37df1 Drop CompatUtility::GetCheckableAcknowledgementType()
This already returns an integer.
2018-01-15 13:39:34 +01:00
Michael Friedrich 7bf2e07032 Move CompatUtility::GetCheckableProblemHasBeenAcknowledged() into feature specific dumps 2018-01-15 13:39:34 +01:00
Michael Friedrich 92c565d744 Move CompatUtility::GetCheckableCheckType() into IDO/Livestatus features
It is just boolean mapping to numbers, each modules does that in a sort of different way.

DB IDO automatically transforms boolean to numbers.
Livestatus would return JSON which keeps true booleans, but requires a number (just a guess,
there is no spec for this message format).
2018-01-15 13:39:34 +01:00
Michael Friedrich 70af1a3545 Move CompatUtility::GetHostAlias into DB IDO host object method
This is the only place where this mapping is used.
2018-01-15 13:39:34 +01:00
Michael Friedrich 36a10cb65d
Merge pull request #5970 from Icinga/feature/stack-allocate-configitembuilder
Allocate ConfigItemBuilder objects on the stack
2018-01-11 13:50:23 +01:00
Gunnar Beutner a36e847c6c Allocate ConfigItemBuilder objects on the stack 2018-01-11 10:52:26 +01:00
Gunnar Beutner 21254fb610 Avoid accessing attributes for validators where not necessary 2018-01-11 08:20:16 +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 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
Michael Friedrich 8bdd16bb42 Do not replace colons in plugin output
This affects all interfaces which are using the CompatUtility class
format helpers for short and long output.

fixes #4785
2017-12-21 09:49:34 +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 b63caaa756 Workaround for GCC bug 51494 2017-12-20 08:02:17 +01:00
Gunnar Beutner 02dc3a9507 Workaround for GCC bug 61321 2017-12-20 08:02:17 +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 75def4b074
Merge pull request #5753 from Icinga/fix/ringbuffer-does-not-get-updated-if-nothing-is-written-5750
Fix that RingBuffer does not get updated and add metrics about communication between endpoints
2017-12-12 11:32:18 +01:00
Michael Friedrich da056b052b
Merge pull request #5827 from Icinga/feature/replace-statsfunction-with-function
Replace StatsFunction with Function
2017-11-30 21:28:32 +01:00
Michael Friedrich a238613fdc
Merge pull request #5825 from Icinga/feature/boost-assign
Replace boost::assign::list_of with initializer lists
2017-11-30 21:20:46 +01:00
Gunnar Beutner a344f11e6c Replace StatsFunction with Function 2017-11-30 19:02:25 +01:00
Gunnar Beutner 83f17b5bfa Replace boost::assign::list_of with initializer lists 2017-11-30 18:09:38 +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 59fca5d5ac Use std::vector instead of std::set where appropriate 2017-11-30 17:47:09 +01:00
Gunnar Beutner 2e87c280ed Use initializer lists instead of std::vector::push_back 2017-11-30 17:47:09 +01:00
Gunnar Beutner 63fd6e3905 Get rid of INITIALIZE_ONCE for the ExternalCommandProcessor 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 df8266631d Replace boost::tuple with std::tuple 2017-11-30 17:41:02 +01:00
Gunnar Beutner 160ab21e59 Replace CheckResult::StaticInitialize with a lambda function 2017-11-30 17:41:02 +01:00
Gunnar Beutner 6739023678 Dynamically create and destroy the timer thread 2017-11-30 17:41:02 +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
Jean Flach 27aaa10ee9
Merge pull request #5718 from Icinga/fix/verify-error-codes-and-returned-log-messages-in-api-actions-5550
API: Fix http status codes
2017-11-27 14:41:29 +01:00
Noah Hilverling e31b236cba API: Fix http status codes
fixes #5550
2017-11-27 14:06:38 +01:00
Michael Friedrich 35f0df3fe5 Disable Flapping detection on Windows 2017-11-17 12:59:07 +01:00
Noah Hilverling 2acaccd028 Fix that RingBuffer does not get updated if nothing is written
refs #5750
2017-11-13 16:17:59 +01:00
Michael Friedrich 41d54029c8 Fix log messages for flapping 2017-11-08 12:12:27 +01:00
Jean Flach 872d4895f0 Fix flapping endianness and events
fixes #5720
2017-11-07 11:13:17 +01:00
Jean Flach a21ffd6fe4 Fix flapping
Re-implement flapping following the 'old way' of just observing the last
20 stage changes.

refs #4982
2017-10-24 15:54:05 +02:00
Michael Friedrich 68cae91378 Remove bottom-up cluster messages
refs #4799
2017-09-22 14:04:53 +02:00
Gunnar Beutner 043106242d Remove API stubs for now
refs #5450
2017-09-12 12:52:49 +02:00
Gunnar Beutner c02742925e Refactor PkiUtility class
refs #5450
2017-09-12 12:52:49 +02:00
Federico Cuello a6b4bd48e2 Fix parameter order for Acknowledge{,Svc,Host}Problem in API actions/external commands
It was preventing email notifications with default settings, as `persistent` defaults to false and therefore `notify` was not set.

Signed-off-by: Michael Friedrich <michael.friedrich@icinga.com>
2017-09-05 08:50:22 +02:00
Michael Friedrich 261bd93c0b Implement get_services(host {name,object}) and add host object support for get_service()
This includes some debug console examples too which involve advanced
map() and filter examples for better readability.

refs #4912
2017-08-28 19:54:26 +02:00
Michael ac0fdd7144 Change more loglines for checkables so checkable is quoted
refs #5528
2017-08-24 13:35:55 +02:00
Thomas Widhalm de9a097a97 Change loglines for checkables so checkable is quoted 2017-08-23 19:11:46 +02:00
Michael Friedrich e88b97079c API: Add execution_{start,end} attribute to 'process-check-result' action
fixes #5002
2017-08-21 17:20:56 +02:00
Gunnar Beutner 7ca485f63c Improve validation for attributes which must not be 'null' 2017-05-30 14:47:28 +02:00
mcktr 9e1016dd4f Fix missing apostrophe in notification log
refs #5294
2017-05-26 17:58:04 +02:00
Michael Friedrich 79dcb789c2 Move PerfdataValue() class into base library
This is required for libremote and ApiListener stats in #5133
2017-05-15 16:32:29 +02:00
Michael Friedrich f282126bb4 Don't allow acknowledgement expire timestamps in the past
fixes #5250
2017-05-15 10:23:21 +02:00
Michael Friedrich 0f1aa23575 Add target object in cluster error messages to debug log
fixes #4288
2017-05-11 16:10:40 +02:00
Michael Friedrich 8d56f8e951 Fix that host downtimes might be triggered even if their state is Up
If the checkresult's state is 1, this is internally mapped to Up.
The added downtime will check for triggers and might cause a wrong
downtime start event.

refs #5202
2017-05-11 15:05:50 +02:00
Gunnar Beutner d05b7c4178 Allow expressions for the type in object/template declarations 2017-05-11 14:21:30 +02:00
Rune Darrud 273ca6a2cc Fix persistent comments for Acknowledgements
fixes #4818

Signed-off-by: Michael Friedrich <michael.friedrich@icinga.com>
2017-05-10 17:10:22 +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
Michael Friedrich dc7980586b Implement severity attribute for host/service objects
refs #5117
2017-04-13 16:09:31 +02:00
Gunnar Beutner c32badaff5 Add missing base class call for ScheduledDowntime::ValidateRanges()
fixes #5146
2017-04-06 11:25:40 +02:00
Gunnar Beutner 50310fb5bc Add missing arguments
refs #5087
2017-03-28 13:24:21 +02:00
Gunnar Beutner 5d45c74be3 Improve function metadata by adding arguments
fixes #5087
2017-03-27 14:43:19 +02:00
Gunnar Beutner 95093bae3e Move log message
refs #5094
2017-03-27 11:01:14 +02:00
Gunnar Beutner a73c1580ca Don't try to remove comments that were statically configured
fixes #5094
2017-03-27 10:46:35 +02:00
Michael Friedrich 60f334df52 Fix notify/sticky parameter handling in 'acknowledge-problem' API action
refs #13939
2017-02-23 12:30:28 +01:00
Gunnar Beutner 06c2a4088d Ensure that only child processes for checks are reniced
fixes #4989
2017-02-21 11:31:07 +01:00
Michael Friedrich d4277b4d70 Require that max_check_attempts is greater than 0
fixes #4832
2017-02-07 13:27:27 +01:00
Michael Friedrich b51a2c1c25 MacroProcessor: Add the argument name for set_if error messages
fixes #13345
2017-01-11 12:26:09 +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 56e9a23a65 Don't try to delete Downtime objects that were statically configured
fixes #13275
2016-11-22 15:13:43 +01:00
Michael Friedrich a13e6b3e87 Fix that custom notifications do not reset force_next_notification
This attribute is stored in the state file forever as well.
Will cause forced notifications ignoring state/type filters.

fixes #12670
2016-11-17 11:53:35 +01:00
Gunnar Beutner 23e30ccb67 Revert "Implement the 'evaluate-macros' API action"
This reverts commit 851135d3a1.

fixes #13091
2016-11-17 10:39:27 +01:00
Michael Friedrich 35ce166bd2 Fix that recovery notifications are sent if notified for !Problem type before
fixes #13205
2016-11-17 10:35:16 +01:00
Michael Friedrich 1bfb91f065 Ensure that DowntimeStart notifications are not immediately sent
fixes #12549
2016-11-11 19:36:19 +01:00
Michael Friedrich e7a6124924 Fix crash in CheckResult cluster handlers
fixes #13151
2016-11-11 16:29:51 +01:00
Michael Friedrich 7e0c48643b Fix Flapping{Start,End} notifications in SOFT states or downtimes
fixes #12560
fixes #12892
2016-11-10 14:16:02 +01:00
Gunnar Beutner 06e4b4e9da Fix crash in Checkable::OnAllConfigLoaded
fixes #13103
2016-11-10 13:42:50 +01:00
Gunnar Beutner 851135d3a1 Implement the 'evaluate-macros' API action
fixes #13091
2016-11-09 09:13:42 +01:00
Michael Friedrich 09658f6d0e Add child_options for API action 'schedule-downtime'
fixes #10896
fixes #10897
2016-11-02 09:54:48 +01:00
Michael Friedrich ea1f8727da Implement GetAllChildren() for dependency resolution
refs #10896
refs #10897
2016-11-02 08:55:11 +01:00
Michael Friedrich 86f162af85 Add SCHEDULE_AND_PROPAGATE{,_TRIGGERED}_HOST_DOWNTIME external commands
refs #10896
refs #10897
2016-11-02 08:54:32 +01:00
Gunnar Beutner 5fdc874377 Don't generate 'UNKNOWN' results when the endpoint's log is still being resynced
fixes #12844
2016-10-24 08:38:58 +02:00
Michael Friedrich 3571965fef Fix SOFT/HARD state counting logic for check attempts <= 2
fixes #12592
2016-09-27 11:30:57 +02:00
Gunnar Beutner 8fd454fbb1 Fix crash in ClusterEvents::SendNotificationsAPIHandler
fixes #12718
2016-09-13 22:14:11 +02:00
Gunnar Beutner efbdce803f Fix incorrect attribute name on the validator for the Notification class
fixes #12633
2016-09-04 17:50:44 +02:00
Michael Friedrich ae75575874 Remove unused last_in_downtime field
fixes #12602
2016-08-31 15:21:26 +02:00
Gunnar Beutner 903db81fe0 Make sure that libmethods is automatically loaded even when not using the ITL
fixes #12578
2016-08-28 17:03:08 +02:00
Gunnar Beutner 78cd56e277 Implement support for default templates
fixes #12575
2016-08-28 10:27:43 +02:00
Gunnar Beutner e8b0797ec4 Use 'auto' keyword for iterator declarations (part 2)
refs #12561
2016-08-27 19:56:12 +02:00
Gunnar Beutner 8f2477db46 Fix incorrect variable type in the FilterArrayToInt function
refs #12509
2016-08-27 12:23:09 +02:00
Gunnar Beutner 6e384f81a0 Remove unused #includes
refs #12481
2016-08-27 10:59:52 +02:00
Gunnar Beutner b5b09216c6 Use lambda functions for INITIALIZE_ONCE
fixes #12562
2016-08-27 09:48:36 +02:00
Gunnar Beutner 5058c5d75b Use 'auto' for iterator declarations
fixes #12561
2016-08-27 08:37:19 +02:00
Gunnar Beutner 30762e5330 Set versions for all internal libraries
fixes #12552
2016-08-25 17:56:18 +02:00
Gunnar Beutner 288413f046 Replace BOOST_FOREACH with range-based for loops
fixes #12538
2016-08-25 06:46:17 +02:00
Gunnar Beutner 429d11daa8 Fix compiler warnings
fixes #12534
2016-08-24 20:33:34 +02:00
Gunnar Beutner ae1ab5f865 Implement unit tests for state changes
fixes #12530
2016-08-24 19:45:52 +02:00
Gunnar Beutner deb938d412 Fix incorrect notifications for soft recoveries
fixes #12529
2016-08-24 12:22:08 +02:00
Gunnar Beutner 82b6ef4301 Don't update TimePeriod ranges for inactive objects
fixes #12511
2016-08-23 15:01:40 +02:00
Gunnar Beutner 218e780a44 Avoid unnecessary string copies
fixes #12509
2016-08-23 15:01:40 +02:00
Gunnar Beutner 43a4acd5a2 Remove deprecated functions
fixes #12507
2016-08-23 15:01:40 +02:00
Michael Friedrich cd1b2cdddd Fix that recovery notifications are sent in SOFT NOT-OK states
fixes #12517
2016-08-23 14:58:24 +02:00
Michael Friedrich b8d3bcad6a Cluster: Fix notified users for NotificationSentToAllUsers event
refs #12449
refs #12444
2016-08-22 10:47:09 +02:00
Michael Friedrich e5566a6bd8 API: Fix missing attributes for DowntimeTriggered event
fixes #12464
2016-08-17 16:57:22 +02:00
Michael Friedrich 520be9513b API: Fix that schedule-downtime action requires duration for fixed=true
fixes #12454
2016-08-16 17:09:25 +02:00
Gunnar Beutner b7a1b58069 Improve performance for type lookups
fixes #12448
2016-08-16 11:02:33 +02:00
Michael Friedrich a34e01d0bb Fix NotificationSentToAllUsers cluster event
refs #12444
2016-08-16 09:30:10 +02:00
Michael Friedrich d909c0945c Add an explicit flag for disabling reminder notifications
refs #12402
2016-08-15 18:32:51 +02:00
Michael Friedrich 17544d7b54 Fix: ClusterEvents::NotificationSentAllUsersAPIHandler() does not set notified_users
fixes #12444
2016-08-15 17:26:01 +02:00
Michael Friedrich d341783a51 API: Implement 'generate-ticket' action and update distributed monitoring docs
fixes #12433
2016-08-15 15:19:28 +02:00
Gunnar Beutner ebaf239d3b Replace GetType()->GetName() calls with GetReflectionType()->GetName()
fixes #12438
2016-08-15 14:42:03 +02:00
Gunnar Beutner 8ced75b7d2 Fix the load order for Host/Service vs. Endpoint/Zone
refs #12432
2016-08-14 23:04:55 +02:00
Gunnar Beutner 39ded04e1a Improve validation for the command_endpoint attribute
fixes #12432
2016-08-14 22:11:29 +02:00
Gunnar Beutner fda032c0c4 Fix incorrect return values for some of the CompatUtility methods
fixes #12425
2016-08-14 17:06:50 +02:00
Gunnar Beutner 9f8cb8dd36 Clean up the code a bit
refs #11423
2016-08-13 21:43:59 +02:00
Michael Friedrich 8f03adf76f Remove Downtime objects w/o reference to ScheduledDowntime objects
fixes #11423
2016-08-13 15:18:50 +02:00