Commit Graph

446 Commits

Author SHA1 Message Date
Gunnar Beutner dac0ff9343 Improve config validation for arrays of object names
fixes #12556
2016-08-26 10:36:53 +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 f4dce0fe72 Fix crash in JsonRpcConnection::MessageHandlerWrapper
fixes #12506
2016-08-22 17:42:59 +02:00
Gunnar Beutner b42bfc822b Fix crash in HttpServerConnection::ProcessMessageAsync
fixes #12493
2016-08-19 20:36:27 +02:00
Gunnar Beutner 8e5961f217 Fix missing permissions and update the documentation
fixes #12483
2016-08-18 19:00:14 +02:00
Gunnar Beutner 730364b600 Fix incorrect certificate validation error message
fixes #12475
2016-08-18 10:23:13 +02:00
Gunnar Beutner b26b3a4f65 Add missing lock
refs #12450
2016-08-17 09:20:05 +02:00
Michael Friedrich 87bc291a55 Fix that HA enabled objects are started before config validation has finished
fixes #12460
2016-08-17 09:19:58 +02:00
Gunnar Beutner 81974adf65 Improve performance for Endpoint config validation
fixes #12450
2016-08-16 13:55:37 +02:00
Gunnar Beutner b7a1b58069 Improve performance for type lookups
fixes #12448
2016-08-16 11:02:33 +02:00
Gunnar Beutner ebaf239d3b Replace GetType()->GetName() calls with GetReflectionType()->GetName()
fixes #12438
2016-08-15 14:42:03 +02:00
Gunnar Beutner 39ded04e1a Improve validation for the command_endpoint attribute
fixes #12432
2016-08-14 22:11:29 +02:00
Gunnar Beutner afc1b9bdc5 Move type variables into the 'Types' namespace
refs #12408
2016-08-12 17:05:19 +02:00
Gunnar Beutner b74014fa5e Fix auto-completion suggestions for "icinga2 console"
refs #12408
2016-08-12 15:36:47 +02:00
Gunnar Beutner 2a40a71ffa Change scoping mechanism for the __using keyword
refs #12408
2016-08-12 13:14:10 +02:00
Gunnar Beutner c5a170a972 Implement support for namespaces
fixes #12408
2016-08-12 11:32:16 +02:00
Gunnar Beutner 43c2ec31ef Windows build fix
fixes #12339
2016-08-09 15:41:27 +02:00
Gunnar Beutner 26d048d6c3 Add version info in /v1
fixes #12327
2016-08-09 08:48:18 +02:00
Gunnar Beutner 231fd8d38b Build fix for CentOS 5
refs #11292
2016-08-08 15:27:16 +02:00
Gunnar Beutner 905380b436 Fix duplicate notifications on HA failover
fixes #12267
2016-08-04 10:12:55 +02:00
Gunnar Beutner bd3660fe5a Build fix for Windows
refs #11292
2016-08-04 06:34:47 +02:00
Uwe Ebel b2ac05ad7d Make the minimum TLS protocol version configurable
The ApiListener accepts all TLS versions that the underlying
OpenSSL library supports. This patch give the ability to restrict
the connection to a minimum TLS version.

fixes #11292

Signed-off-by: Gunnar Beutner <gunnar.beutner@netways.de>
2016-08-03 07:46:50 +02:00
Michael Friedrich b7da28b176 Enhance TLS handshake error messages with connection information
fixes #12287
2016-08-02 12:14:03 +02:00
Gunnar Beutner 92c28548d1 Remove obsolete debug log message
fixes #12254
2016-07-29 07:09:01 +02:00
Michael Friedrich d7903ba800 Enhance client disconnect message for "No data received on new API connection."
fixes #12116

Signed-off-by: Michael Friedrich <michael.friedrich@netways.de>
2016-07-28 17:40:40 +02:00
Gunnar Beutner 55a3dc22bf Log a warning if there are more than 2 zone endpoint members
fixes #12222
2016-07-26 08:10:47 +02:00
Gunnar Beutner 22bb1f406a Fix URL encoding for '&'
fixes #12199
2016-07-25 10:54:17 +02:00
Gunnar Beutner cdda3bad8c Include client IP address and port in HTTP requests
fixes #11706
2016-07-25 09:43:13 +02:00
Gunnar Beutner 45dd027101 Include IP address and port in the "New connection" log message
fixes #12215
2016-07-25 09:31:38 +02:00
Stephan Tesch 431c110056 Improve error reporting for the client certificate check
Until now, client certificates that have failed verification were reported as not being signed by the CA. That is not true for all cases. This patch adds an explanation in the debug log why verification failed.

fixes #12201
2016-07-25 09:22:35 +02:00
Michael Friedrich 2d53cdb845 Improve log message for connecting nodes without configured Endpoint object
fixes #12194
2016-07-21 13:48:00 +02:00
Gunnar Beutner e9605168a1 Increase reconnection timer interval for cluster connections
fixes #12193
2016-07-21 12:27:18 +02:00
Uwe Ebel 1ca8b293cb Make the cipher list configurable for TLS streams
fixes #11063

Signed-off-by: Gunnar Beutner <gunnar.beutner@netways.de>
2016-07-18 13:40:00 +02:00
Gunnar Beutner e3f1c1ec6f Make sure timestamps are formatted as integers in macro strings
refs #11483
2016-06-21 11:29:12 +02:00
Gunnar Beutner c99fb68c2d Implement support for getting a list of global variables from the API
fixes #11955
2016-06-16 08:38:15 +02:00
Gunnar Beutner 28dee2b79b Improve filter support for /v1/templates
refs #11941
2016-06-16 08:38:15 +02:00
Michael Friedrich 2b474823f8 API: Fix that /v1 returns html if json is requested
fixes #10570
2016-06-15 17:46:09 +02:00
Gunnar Beutner 45919b4844 Fix crash in ApiListener::PersistMessage
fixes #11946
2016-06-15 11:26:35 +02:00
Gunnar Beutner ace6882b59 Implement support for retrieving a list of templates from the API
fixes #11941
2016-06-15 07:41:51 +02:00
Gunnar Beutner ff57b0ccd6 Add name attribute for the WorkQueue class
fixes #10816
2016-06-14 09:08:04 +02:00
Gunnar Beutner 9e29a3f8a0 Fix default behavior when none of the specified objects pass the user's permission filter
fixes #11926
2016-06-13 10:14:10 +02:00
Simon Murray 2e8c8809ea Add service metadata to InfluxDB Writer
Adds a new configuration variable in keeping with the graphite writer
which defaults to false to save network bandwidth.  All metrics currently
supported by graphite are now available to InfluxDB.  I added in some
formatting functions, to handle integers and booleans as we know and
control their types, and the supporting regexes in the sanity checker.

Updating to InfluxDB 0.13.X started giving 400 errors due to the missing
Host header in HTTP/1.1 requests.  HttpRequest has been updated to auto-
magically add the host and port to these requests if not explicitly
stated by the client code.

The exception code has been cleaned up to break out of the function
early if such a condition is raised, this avoids unnecessarily executing
code which will ultimately fail.

fixes #11912

Signed-off-by: Gunnar Beutner <gunnar.beutner@netways.de>
2016-06-08 13:23:52 +02:00
Gunnar Beutner de1b70cf44 Fix incorrect variable names for joined fields in filter expressions
fixes #11779
2016-05-12 10:24:15 +02:00
Gunnar Beutner 0bc139af93 Improve timing behavior for UpdateObjectAuthority calls
refs #11765
2016-05-11 13:04:39 +02:00
Gunnar Beutner fc1168ed3e Only activate HARunOnce objects once there's a cluster connection
fixes #11765
2016-05-11 12:50:40 +02:00
Michael Friedrich 9a88185b12 API: Fix error handling for invalid JSON request body
fixes #11757
2016-05-10 15:16:35 +02:00
Michael Friedrich 1c6f09f44e API: Fix error message handling for invalid attributes in PUT requests
refs #11396
2016-05-10 13:43:36 +02:00
Michael Friedrich 8a65c4a776 API: Fix error message with PUT requests for existing objects
fixes #11396
2016-05-09 15:08:35 +02:00
Simon Murray 79c1e883d1 Add InfluxDB Writer
Adds an Icinga2 object to directly interface with InfluxDB's native HTTP API.
This supports optional basic authorization, and TLS transport.  InfluxDB didn't
appear to like having the TLS stream kept open, so instead this object buffers
data points which are then flushed to InfluxDB as a batch write, either driven
by a configurable timeout or threshold.

As InfluxDB is a schema-less database the host and service templates are user
configurable allowing both the measurement field and tags to be set by the
end user via macro expansion.  This allows access to tag fields from arbitrary
data associated with host.vars or service.vars.  If a particular value is
unable to be resolved, the tag will be dropped and not transmitted to InfluxDB.

Also alters URL handling to omit array brackets when only a single value is
attached to a key, otherwise InfluxDB has a strop with non-standard syntax.

fixes #10480

Signed-off-by: Michael Friedrich <michael.friedrich@netways.de>
2016-05-03 14:12:51 +02:00
Gunnar Beutner 09165e5ca6 Only hide navigational attributes which are not config/state
fixes #11567
2016-04-13 12:02:08 +02:00
Michael Friedrich d2f5008557 API: Ensure that empty passwords w/ client_cn are properly checked
fixes #11482
2016-04-04 16:38:47 +02:00
Gunnar Beutner b621b00e3a Detect infinite recursion in the zone hierarchy graph
fixes #10937
2016-03-23 09:03:53 +01:00
Jean Flach 9cdea730a3 Fix delete object handler returning incorrect status codes
Now a 200 OK only gets returned if all objects could be deleted

fixes #10770
2016-03-01 16:53:52 +01:00
Michael Friedrich c8a9f45697 ApiListener: Bail out if object could not be created during config sync
refs #11006
2016-02-12 14:15:24 +01:00
Jean Flach 19134f41cf Fix client not closing connections
fixes #11122
2016-02-09 15:59:19 +01:00
Jean Flach fa1d633484 Rephrase some log messages
refs #11122
2016-02-09 15:59:19 +01:00
Gunnar Beutner 90e241ca85 Fix: Cluster WQ thread dies after fork()
fixes #11118
2016-02-09 12:46:46 +01:00
Gunnar Beutner 14d805e6fe Fix crash in ApiListener::ConfigUpdateObjectAPIHandler
fixes #11006
2016-02-09 09:13:43 +01:00
Jean Flach 393a6bf641 Remove unused variables
fixes #11111
2016-02-08 17:10:12 +01:00
Gunnar Beutner e224e74994 Make sure the "syncing" attribute is set to false
refs #11083
2016-02-08 13:15:24 +01:00
Michael Friedrich 3227186c7d Fix: API queries on non-existant objects cause exception
fixes #11088
2016-02-04 22:40:01 +01:00
Michael Friedrich 949b129c65 Ensure that config sync updates are always sent on reconnect
fixes #11083
2016-02-04 11:30:27 +01:00
Gunnar Beutner 2dc385e31b Fix memory/thread leak in the HttpServerConnection class
fixes #10655
2016-02-03 09:54:31 +01:00
Gunnar Beutner ec050dd2a7 Fix deadlock in HttpClientConnection::DataAvailableHandler
refs #11014
2016-02-01 14:50:18 +01:00
Gunnar Beutner 98e104a773 Fix incorrect method call in JsonRpcConnection::MessageHandler
refs #11014
2016-02-01 11:25:34 +01:00
Gunnar Beutner deac316a45 Fix deadlock in {HttpServerConnection,JsonRpcConnection}::DataAvailableHandler
refs #11014
2016-02-01 08:35:55 +01:00
Gunnar Beutner fa7d0448f9 Decode cluster messages in the WorkQueue threads
refs #11014
2016-01-27 16:52:01 +01:00
Gunnar Beutner 9689223081 Use multiple WorkQueues to process cluster messages
refs #11014
2016-01-27 15:45:58 +01:00
Gunnar Beutner 54df0b74b6 Improve performance for ApiListener::RelayMessageOne
refs #11014
2016-01-27 13:39:31 +01:00
Gunnar Beutner 8c05003101 Improve the performance for ApiListener::SyncRelayMessage (part 2)
refs #11014
2016-01-27 12:18:16 +01:00
Gunnar Beutner 9ae1f1abee Improve performance for ApiListener::SyncRelayMessage
refs #11014
2016-01-27 08:43:20 +01:00
Gunnar Beutner 4185c75d8a Ignore the .timestamp file when determining whether the zone config has changed (second attempt)
refs #11014
2016-01-26 15:46:03 +01:00
Gunnar Beutner c5a003c162 Ignore the .timestamp file when determining whether the zone config has changed
refs #11014
2016-01-26 11:32:54 +01:00
Gunnar Beutner f3351bc80e Make sure the updated config sync works with old versions of Icinga 2
refs #11014
2016-01-26 10:46:27 +01:00
Gunnar Beutner 1eecc72093 Use MkDirP instead of MkDir when syncing zone configs
fixes #10932
2016-01-26 10:45:03 +01:00
Gunnar Beutner 980ce96910 Make sure the .timestamp file is synced for config updates
refs #11014
2016-01-26 09:04:26 +01:00
Michael Friedrich d412a9055d Fix cluster config timestamp again
refs #11014
2016-01-25 15:49:32 +01:00
Michael Friedrich a17419e8c2 Fix cluster config sync timestamp
refs #11014
2016-01-25 14:39:21 +01:00
Gunnar Beutner 8f53835c11 Make sure we only have one connection per satellite
refs #11014
2016-01-25 10:57:06 +01:00
Gunnar Beutner 6d88d9035d Remove redundant log messages
refs #10963
2016-01-21 13:02:53 +01:00
Gunnar Beutner e48ed33000 Add missing SetSyncing() call
refs #10963
2016-01-20 14:07:07 +01:00
Gunnar Beutner 55f0c589ad Skip log replay for endpoints with log_duration = 0
refs #10963
2016-01-19 17:25:28 +01:00
Gunnar Beutner e4b7111577 Check the certificate name when reconnecting to an instance
refs #10963
2016-01-19 16:24:12 +01:00
Jean Flach 08698c3622 Fix another compiler warning
fixes #10956
2016-01-18 09:41:52 +01:00
Jean Flach cb70d97dcf Plug two memory leaks
refs #10963
2016-01-15 10:11:52 +01:00
Gunnar Beutner 7f4af89a56 Ensure that HttpServerConnections are properly closed
fixes #10655
2016-01-13 10:30:38 +01:00
Gunnar Beutner de11ef704a Fix compiler warning
fixes #10956
2016-01-13 08:33:27 +01:00
Gunnar Beutner 599929b0f6 Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
Jean Flach 957cf3169f Replace boost-base64 with an openssl implementation
Also add unit tests

fixes #10714
2016-01-11 15:35:20 +01:00
Michael Friedrich 8055f05d5e Fix cluster config sync for (non-)authoritative configs
Details: https://dev.icinga.org/issues/10819#note-39

refs #10819
2015-12-12 12:16:00 +01:00
Michael Friedrich d781c392d3 Add more debug logging for api package config sync
refs #10819
2015-12-11 17:03:07 +01:00
Michael Friedrich c5b13ff2b1 Fix that cluster config sync ignores zones.d directory from API config packages
fixes #10819
2015-12-10 22:21:29 +01:00
Gunnar Beutner 15ca9987fa Implement support for priorities in the WorkQueue class
fixes #8714
2015-12-10 17:06:00 +01:00
Gunnar Beutner fd65fed6f0 Fix incorrect return value for ApiListener::GetInstance
refs #10711
2015-11-30 15:33:01 +01:00
Michael Friedrich f91edd9564 Use a work queue for replaying the cluster log
refs #10713
2015-11-25 13:11:41 +01:00
Michael Friedrich 3adedcd0a5 Improve performance for Zone::CanAccessObject
fixes #10711
2015-11-25 12:06:20 +01:00
Gunnar Beutner 3505ca3c16 Fix race condition in the ConfigItem class
fixes #10643
2015-11-19 19:38:49 +01:00