Commit Graph

400 Commits

Author SHA1 Message Date
Gunnar Beutner 4c54cddec8 Fix problem with duplicate INSERTs for the same key columns
fixes #12461
fixes #12458
2016-08-17 13:35:10 +02:00
Gunnar Beutner bb7fe3334a Fix incorrect customvariablestatus query
fixes #12459
2016-08-17 09:20:05 +02:00
Gunnar Beutner 2d551db9d8 Remove the ConfigTypeIterator class
refs #12448
2016-08-16 13:26:24 +02:00
Gunnar Beutner b7a1b58069 Improve performance for type lookups
fixes #12448
2016-08-16 11:02:33 +02:00
Gunnar Beutner 2e8d3d3934 Implement support for incremental IDO updates
fixes #12435
2016-08-15 14:43:11 +02:00
Gunnar Beutner ebaf239d3b Replace GetType()->GetName() calls with GetReflectionType()->GetName()
fixes #12438
2016-08-15 14:42:03 +02:00
Gunnar Beutner 980ba42825 Remove unused code in the IDO classes
fixes #12434
2016-08-14 22:22:18 +02:00
Gunnar Beutner 005e0f532f Improve HA support for the IDO check task
fixes #12430
2016-08-14 20:17:14 +02:00
Gunnar Beutner c6e5f3dcb8 Fix $ido_name$ macro when using the IDO check type with command_endpoint
fixes #12428
2016-08-14 19:30:20 +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 ed53366490 Avoid duplicate IDO config updates at startup
fixes #12417
2016-08-13 23:31:22 +02:00
Gunnar Beutner 31f816562f Add namespace qualifier for some assert() calls
refs #12408
2016-08-12 13:44:51 +02:00
Gunnar Beutner 24431b3dab Register deprecated methods in the 'Deprecated' namespace
refs #12408
2016-08-12 13:42:22 +02:00
Michael Friedrich d84872f075 DB IDO: Really do not clear downtimes on checkable upsert
refs #12258
refs #12288
2016-08-11 17:43:39 +02:00
Michael Friedrich 41094489b6 DB IDO: Fixed downtime start does not update actual_start_time
fixes #12401
2016-08-11 12:10:27 +02:00
Gunnar Beutner e09fb88cae Make sure functions are registered with the correct prefix
refs #12393
2016-08-10 16:33:17 +02:00
Gunnar Beutner dc06209e4a Move internal script functions into the 'Internal' namespace
fixes #12338
2016-08-10 06:55:44 +02:00
Michael Friedrich 00f05a8e7e DB IDO: Do not try to delete downtimes when using the session_token
Missed it after modifying the comments.

refs #12258
refs #12288
2016-08-03 16:15:22 +02:00
Michael Friedrich cd5c9366cf DB IDO: Use upsert and session token for comment/downtime updates
refs #12258
fixes #12288
2016-08-02 14:37:16 +02:00
Gunnar Beutner 0d02b01c02 Use application start-up time for the IDO session token
fixes #12250
2016-07-29 08:40:10 +02:00
Michael Friedrich dcfda534b1 Deprecation warning should include object type and name
fixes #12240
2016-07-28 17:43:50 +02:00
Michael Friedrich ce3d7ab973 DB IDO: Do not clear {host,service,contact}group_members tables on restart
fixes #12210
2016-07-25 17:10:27 +02:00
Michael Friedrich 743a726752 state_filters_real shouldn't be visible in the API
fixes #12171
2016-07-19 20:09:39 +02:00
Gunnar Beutner 959e2501aa Avoid duplicate entries in the icinga_objects table for commands
refs #12147
2016-07-15 09:40:39 +02:00
Gunnar Beutner ea57f0045e Fix deadlock in DbObject::SendVars{Config,Status}Update
fixes #12127
fixes #12085
2016-07-12 11:44:36 +02:00
Michael Friedrich 72facb1be0 DB IDO: Log a deprecation warning for categories
refs #12024
2016-07-07 15:44:31 +02:00
Michael Friedrich 124c80beab Require DB IDO v1.14.1 for 2.5.0
fixes #11967
2016-07-07 12:27:56 +02:00
Michael Friedrich f87f20e9ec DB IDO: Do not populate logentries table by default
Not required by Icinga Web 2 and therefore obsolete as default.

fixes #12106
2016-07-06 11:52:20 +02:00
Michael Friedrich 091274e417 Change DB IDO 'categories' attribute to Array notation
Example:
    categories = [ "DbCatProgramStatus", "DbCatState" ]

The old method with constants and OR is still supported but deprecated.

refs #11445
fixes #12024
2016-06-23 14:55:01 +02:00
Michael Friedrich 14fdb794e2 Allow strings in state and type filters (config, API)
fixes #11445
2016-06-23 14:52:45 +02:00
Michael Friedrich 409a385590 DB IDO: Ensure that delete queries for comments/downtimes are matching the index
fixes #11993
2016-06-20 17:38:01 +02:00
Michael Friedrich f4241ba185 DB IDO: Enhance ido check with schema info
fixes #11968
2016-06-17 12:43:05 +02:00
Michael Friedrich 6a46706668 DB IDO: Update schema version to 1.14.1
The least supported version is still 1.14.0
with the current changes.

refs #10069
refs #11967
2016-06-17 11:23:30 +02:00
Michael Friedrich 0ce41399e0 DB IDO: Ensure to delete outdated comments/downtimes for host/service objects
fixes #11688
2016-06-03 14:40:37 +02:00
Michael Friedrich 90f102abf3 Ensure that program status updates are immediately updated in DB IDO
fixes #11767
2016-05-11 14:03:40 +02:00
Michael Friedrich ba82d2eb20 Move CalculateExecutionTime and CalculateLatency into the CheckResult class
fixes #11751
2016-05-10 12:16:49 +02:00
Michael Friedrich 23ab6cf78b Fix: Expired downtimes are not removed
fixes #11711
2016-05-02 15:32:46 +02:00
Michael Friedrich 83e0bcddce IDO: Ensure that the notification insert id is passed to contactnotification inserts
We cannot add the notification insert id directly
to the following contactnotifications queries. Instead
we need to pass a DbValue reference which gets set after
the notification insert id is calculated.
The contactnotifications insert queries are fired as query
group calling CanExecuteQuery() and FieldToEscapedString().
If the notification id does not exist yet, the queries are
moved to the end of the queue.
Once the contactnotifications queries are fired the DbValue
reference is destroyed.

This patch also removes the old notification insert id cache
which was broken in many ways.

fixes #11387
2016-03-29 15:12:24 +02:00
Michael Friedrich 98e1d70dab DB IDO: Fix that downtime is not in effect after restart
fixes #10843
2016-03-23 13:42:00 +01:00
Michael Friedrich 67b7df3189 DB IDO: Fix user notification type filters
fixes #10766
2016-03-15 14:50:43 +01:00
Michael Friedrich 5b30c9ed2c DB IDO: PArtially revert change for *group_members
Otherwise the index breaks.

refs #11103
2016-02-22 20:23:18 +01:00
Michael Friedrich 99dbb249de DB IDO: Fix problem with hostgroup_members cleanup
fixes #11103
2016-02-08 11:05:27 +01:00
Michael Friedrich 4049cc0b9a Fix: Deleting an object via API does not disable it in DB IDO
fixes #11065
2016-02-05 12:37:00 +01:00
Gunnar Beutner f234bdd321 Fix crash in IdoCheckTask::ScriptFunc
refs #11014
2016-02-02 12:03:12 +01:00
Michael Friedrich c2cf614d62 Remove debug output, part 2
refs #11014
2016-01-29 14:09:50 +01:00
Michael Friedrich b960850ce3 DB IDO: Only update 'next_check' column when manually scheduling a check
Otherwise the changes from #7287 already take care of setting
the proper next check time from inside ProcessCheckResult().

There is no need to use the generic OnNextCheckChanged signal
but instead we're using a new one, locally just for DB IDO.

fixes #11019
2016-01-22 18:42:15 +01:00
Gunnar Beutner 599929b0f6 Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
Gunnar Beutner 1bf27011df Fix incorrect is_active queries
fixes #10891
2016-01-11 14:23:16 +01:00
Michael Friedrich 9c8fdf06cf Fix crash in DbEvents::RemoveCommentInternal()
Missing multiple queries as implemented with RemoveDowntimeInternal().

fixes #10883
2015-12-18 10:52:04 +01:00
Gunnar Beutner a393c8213e Don't log IDO statistics when we're not connected
refs #10860
2015-12-17 12:09:42 +01:00
Michael Friedrich 6387bec049 Fix duplicate key violation for downtimes
refs #10829
2015-12-16 13:57:29 +01:00
Gunnar Beutner ef8ba6e275 Implement additional query statistics for DB IDO
fixes #10860
2015-12-16 10:46:27 +01:00
Michael Friedrich 5b48559d75 Implement support for re-ordering groups of IDO queries
fixes #10855
2015-12-15 15:29:48 +01:00
Michael Friedrich 96fa29793c Avoid duplicate config and status updates on startup
fixes #10765
2015-12-15 14:25:08 +01:00
Michael Friedrich da3d21091c Fix priority ordering for IDO queries
fixes #10829
refs #8714
2015-12-15 11:58:50 +01:00
Gunnar Beutner 372cf07bc4 Clean up the FinishAsyncQueries code a bit
refs #8714
2015-12-14 10:34:12 +01:00
Gunnar Beutner 15ca9987fa Implement support for priorities in the WorkQueue class
fixes #8714
2015-12-10 17:06:00 +01:00
Michael Friedrich 0813e69a41 Fix DB IDO events for next_check, etc. updates
refs #10817
2015-12-10 15:24:28 +01:00
Michael Friedrich 0285bcefb5 DB IDO: Fix group membership updates for runtime created objects
fixes #10604
2015-11-11 12:31:52 +01:00
Gunnar Beutner e3c75faabc Implement support for recursive object locks
fixes #10596
2015-11-11 10:21:30 +01:00
Michael Friedrich 64c936d387 API Actions: Remove -by-id from actions and require names for comments and downtimes
The documentation is updated as well. Furthermore actions provide
detailed error information in case of an exception.
Includes DB IDO schema updates.

fixes #10512
2015-11-06 17:06:12 +01:00
Michael Friedrich 1b9f0a8c77 Add the unique_id for comments/downtimes next to legacy_id to DB IDO
fixes #10431
2015-10-30 11:25:07 +01:00
Michael Friedrich 9485938d32 Fix: Unique constraint violation with multiple comment inserts in DB IDO
fixes #10491
2015-10-29 16:12:53 +01:00
Michael Friedrich cf5735e3df DB IDO: Remove deleted custom variables
We cannot clear the custom variable tables on startup and then re-insert
all known custom vars. Instead we "fixed" it by leaving them
in the database only updating their value if changed. We certainly
forgot about deleted custom vars at that point.

Since the older fix must stay in place, we'll use a session
token stored in the backend to check whether the custom
variable has been updated/inserted in the current session, or not.
If the session token does not match, the custom vars are deleted
at the end of the config dump. Ugly but fairly the only performant
solution as CVs don't have an object_id.

fixes #10436
2015-10-29 16:00:06 +01:00
Gunnar Beutner 050c520b2a Convert Comment/Downtime to config objects
fixes #9777
2015-10-28 17:56:29 +01:00
Michael Friedrich de8aae90e4 DB IDO: Add object_id where clause for icinga_downtimehistory
fixes #10110
2015-10-28 17:12:23 +01:00
Gunnar Beutner 13375d74fc Fix: Changing a group's attributes causes duplicate rows in the icinga_*group_members table
fixes #10422
2015-10-26 09:36:13 +01:00
Michael Friedrich d618762dad Export original attributes in DB IDO and Livestatus
fixes #10392
2015-10-22 15:49:42 +02:00
Gunnar Beutner 4aa0165701 Add getter for endpoint 'connected' attribute
fixes #10394
2015-10-22 10:52:38 +02:00
Gunnar Beutner d01f09f3ef Hide internal attributes in the API
fixes #10393
2015-10-20 08:25:10 +02:00
Michael Friedrich 498ff3c1ee Add a debug log message for updating the program status table in DB IDO
fixes #10379
2015-10-15 18:43:30 +02:00
Gunnar Beutner 5f98fd3e9a Update schema version in dbconnection.hpp
refs #9286
2015-10-01 17:13:33 +02:00
Michael Friedrich 1813c0932c Remove dead code from old modified attributes
refs #9851
2015-09-29 14:24:39 +02:00
Gunnar Beutner d24af1e639 Fix incorrect value for IdoMysqlConnection::m_AffectedRows
refs #10190
2015-09-28 13:19:42 +02:00
Michael Friedrich 8c997255a9 DB IDO: Fix modified custom attribute update query problems
fixes #10190
2015-09-24 11:45:44 +02:00
Michael Friedrich a6d8cea5c2 Update DB IDO on changed object version (create, update, delete)
refs #9927
2015-09-17 14:20:44 +02:00
Gunnar Beutner 6fa58a520c Implement config object sync
Adds object version.

refs #9927
2015-09-17 14:20:43 +02: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 d8cab2f0e8 Add 'override' keyword to methods
refs #9929
2015-08-18 12:45:30 +02:00
Gunnar Beutner d118b71a2a Fix compiler warnings
fixes #9929
2015-08-18 07:46:04 +02:00
Michael Friedrich 020533842b Add missing category for IDO query
fixes #9928
2015-08-17 11:04:14 +02:00
Gunnar Beutner 071d2f18fb Rename DynamicObject/DynamicType to ConfigObject/ConfigType
fixes #9914
2015-08-15 20:40:41 +02:00
Michael Friedrich d7970f5bb1 Implement modified attributes v2
refs #9081
refs #9093
2015-08-15 20:07:10 +02:00
Michael Friedrich 69e6fc4811 DB IDO: Do not update endpointstatus table on config updates
fixes #9634
2015-07-16 13:25:11 +02:00
Michael Friedrich a788de679c DB IDO: Add zones, zonestatus tables
refs #9286
2015-07-14 18:09:24 +02:00
Michael Friedrich 3fe6b56628 DB IDO: Don't clear endpoint* tables on start/reload
fixes #9586
2015-07-08 13:58:12 +02:00
Michael Friedrich 45a0f09532 Fix unused variable in dbevents
refs #9055
2015-06-24 14:12:18 +02:00
Michael Friedrich 21b11f9c9a Fix incorrect type and state filter mapping for User objects in DB IDO
fixes #9143
2015-05-15 16:40:32 +02:00
Michael Friedrich b921439f38 Fix DbEvents::AddCheckableCheckHistory argument
refs #9055
2015-04-27 15:06:14 +02:00
Michael Friedrich 7af41e93c0 Fix that downtimes are always "fixed" even if scheduled as "flexible"
fixes #9142
2015-04-25 15:06:29 +02:00
Michael Friedrich 2254ac442f DB IDO: Fix wrong check result timestamp for historical tables
refs #9055
2015-04-24 18:14:57 +02:00
Gunnar Beutner 4cb1936c68 Fix another potential deadlock in DB IDO
refs #9121
2015-04-22 21:35:43 +02:00
Gunnar Beutner aa452a780c Fix deadlock in the IDO
fixes #9121
2015-04-20 15:39:45 +02:00
Gunnar Beutner e4f4c6bc2d Remove deadlock in db_ido
refs #9017
2015-04-14 15:09:50 +02:00
Michael Friedrich 3fc890a2da DB IDO: Fix status table scheduled_downtime_depth column not updated on downtime removal/end
fixes #9017
2015-04-11 11:40:14 +02:00
Michael Friedrich 3d4be0ea58 Don't update scheduleddowntime table w/ trigger_time column when only adding a downtime
fixes #9014
2015-04-08 17:06:53 +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 16ef84fd35 Use TypeInstance field instead of looking up types by name
fixes #8817
2015-03-20 08:15:07 +01:00
Gunnar Beutner dae206e899 Move the base command templates into libmethods
fixes #8775
2015-03-17 08:19:31 +01:00
Gunnar Beutner 100eb0cf8a Don't update custom vars for each status update
fixes #8736
2015-03-13 13:46:00 +01:00
Gunnar Beutner cd20044e4f Implement the pending_queries metric for the IDO check task
refs #8688
2015-03-13 12:00:30 +01:00
Gunnar Beutner c996fbb5c4 Build fix
refs #8688
2015-03-12 13:44:17 +01:00
Gunnar Beutner 52b33f560f Improve output for the ido check task
refs #8688
2015-03-12 11:51:02 +01:00
Gunnar Beutner a4d37132bf Implement a check for IDO database connections
fixes #8688
2015-03-12 10:19:12 +01:00
Gunnar Beutner 94fde1a6b2 Add support for using the 1.12.0 IDO database schema
fixes #8689
2015-03-12 10:19:12 +01:00
Gunnar Beutner 3046ad5d5e Fix incorrect value for the process_performance_data column in the icinga_hosts table
fixes #8544
2015-03-09 08:12:05 +01:00
Michael Friedrich c61134d55a Fix deadlock in DB IDO and external command events
refs #8511
2015-03-02 16:20:22 +01:00
Michael Friedrich 4a64d4991b DB IDO: Fix {host,service}checks command_line value is "Object of type 'icinga::Array'"
fixes #8438
2015-02-15 00:24:05 +01:00
Michael Friedrich 48fa1a1418 DB IDO: Fix duplicate entries in scheduleddowntime table
fixes #8425
2015-02-12 13:19:27 +01:00
Michael Friedrich 19c374040e Fix missing persistent_comment, notify_contact columns for acknowledgement table
fixes #7871
refs #8298
2015-02-07 23:24:16 +01:00
Michael Friedrich bb2338631f Fix last_hard_state missing in StatusDataWriter
fixes #8383
2015-02-07 19:37:35 +01:00
Gunnar Beutner 1a23ae94f9 Implement support for updating the program_end_time column
fixes #6923
2015-02-04 15:25:10 +01:00
Gunnar Beutner e7938c9374 Fix crash in DbConnection::ProgramStatusHandler
fixes #8288
2015-01-27 09:53:07 +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 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 1cb0231c05 Refactor how variable scopes work
refs #8074
2014-12-14 11:33:45 +01:00
Michael Friedrich d11286e9a5 DB IDO: Update child object reachability if parentchanges to !{OK,UP}
fixes #7683
2014-12-12 16:12:05 +01:00
Michael Friedrich 868d403a8a DB IDO: Missing last_hard_state column update in {host,service}status tables
fixes #8058
2014-12-12 13:25:10 +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 7321e45abc Implement support for executing remote commands
fixes #7559
2014-11-13 14:54:55 +01:00
Gunnar Beutner e52b2b6509 Fix incorrect IDO queries
fixes #7634
2014-11-11 16:36:20 +01:00
Gunnar Beutner 11710ef683 Fix static initializers
refs #7634
2014-11-11 13:24:44 +01:00
Jean Flach 0ba2efe97f Fix some Ido initialization bugs
refs #7625
2014-11-11 10:04:37 +01:00
Gunnar Beutner 4df3fd4451 Add missing category type for some IDO queries
fixes #7625
2014-11-10 13:21:33 +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 684ad2641a Fix GetInstance() methods for the DbType and config validator registry classes 2014-11-09 13:06:25 +01:00
Gunnar Beutner 9e2aa4c5ed Fix problem with unresolved symbols
refs #7561
2014-11-07 18:37:28 +01:00
Michael Friedrich 58d5c42d9c DB IDO: Dump custom attributes as json encoded arrays/dictionaries; add 'is_json' column
refs #7560
2014-11-04 13:47:45 +01:00
Gunnar Beutner 170c5a59e4 Implement typeof() function 2014-11-03 00:45:14 +01:00
Gunnar Beutner 4677014b6d Implement support for arrays in custom variables
fixes #6544
2014-11-02 07:27:50 +01:00
Gunnar Beutner 9368ff0e03 Update some more log messages 2014-10-20 10:09:57 +02: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 92896311f3 Implement support for C/C++ comments in the TI compiler
fixes #5018
2014-10-17 19:44:31 +02:00
Michael Friedrich 3fd20d56aa DB IDO: Add program_version column to programstatus table
Bump schema version to 1.11.8

fixes #7391
2014-10-16 12:11:10 +02:00
Gunnar Beutner 6f2ea6bc08 Fix build problems with Oracle Solaris Studio
refs #6896
2014-09-02 13:09:17 +02:00
Gunnar Beutner eb091a87b0 Implement support for unity builds
fixes #7034
fixes #7035
2014-08-30 20:02:12 +02:00
Gunnar Beutner 65bec9e904 Clean up some parts of the code 2014-08-17 17:57:41 +02:00
Michael Friedrich e52848b923 DB IDO: Fix failover_timeout config validator
refs #6827
2014-08-15 17:50:38 +02:00
Michael Friedrich 1c98a3a9f7 DB IDO: Add failover_timeout attribute
refs #6827
2014-08-15 17:21:12 +02:00
Michael Friedrich f6c24f8964 DB IDO: Delay connection in HA RunOnce mode
refs #6827
refs #6203
2014-08-15 17:21:12 +02:00
Michael Friedrich d326678e76 DB IDO: Add 'enable_ha' configuration flag
This feature is true by default. If disabled all cluster nodes in a high
availability zone will write to their own local database.

TODO: documentation, tests.

refs #6827
refs #6203
2014-08-15 17:21:12 +02:00
Gunnar Beutner a098fe804b Fix duplicate rows in icinga_objects
fixes #6414
2014-07-16 10:20:01 +02:00
Michael Friedrich 4bfa068e46 Change log message identifier for libdb_ido.
Refs #6346
2014-05-28 14:42:01 +02:00
Gunnar Beutner 632026cd9f Rename C++ header files.
Fixes #6291
2014-05-25 16:27:14 +02:00
Gunnar Beutner 215f500b0e Fix compiler warnings.
Refs #5823
2014-05-23 11:05:25 +02:00