Commit Graph

187 Commits

Author SHA1 Message Date
Corentin Ardeois ddcfb09f58 Handle expressions only for apply objects
Expressions will be handled only if the object is an ApplyRule.
Only properties and custom variables are replaced.

refs #11976
2016-10-22 00:15:09 +00:00
Corentin Ardeois bcef87f4c9 Add support for expressions
Any rendered string can contain variables encapsulated with "$$" characters.

Example:
Display Name declared with `Port $$host.vars.tcp_port$$ check` will
be processed as `"Port " + host.vars.tcp_port + " check"`

API:
```bash
 ./director-curl POST director/service?name=my_service '{"display_name": "Port $$host.vars.tcp_port$$ check" }'
 ```

 Rendered config:
 ```
  apply Service "my_service" {
      import "my_template"

      display_name = "Port " + host.vars.tcp_port + " check"
  }
 ```

refs #11976
2016-10-22 00:15:09 +00:00
Thomas Gelf cb533f5668 IcingaConfig: deploy service sets 2016-10-12 09:04:08 +00:00
Thomas Gelf 2c7c54a15d IcingaConfig: improve override constant usage 2016-09-08 20:24:54 +00:00
Thomas Gelf 646a7dc067 IcingaConfig: workaround for no host in service 2016-09-08 20:13:45 +00:00
Thomas Gelf b8fb0d4267 IcingaConfig: host-generated services should...
...respect new overrides
2016-09-08 13:07:04 +00:00
Thomas Gelf 4f4b6eb63a IcingaService: allow host vars to override vars...
...for applied services

refs #12546
2016-09-08 10:45:02 +00:00
Thomas Gelf 4cd399e059 IcingaConfigHelper: use string-based sort for...
...dictionary fields to make PHP 5.x and PHP 7.x produce the same output.

refs #12591
2016-09-07 20:44:03 +00:00
Thomas Gelf e58a70613c IcingaConfig: do not render v2-related helpers...
...for legacy config
2016-09-05 19:34:14 +00:00
Thomas Gelf 6427b22621 IcingaConfigHelper: fix numeric dictionary key...
...rendering and add related tests

fixes #12591
2016-08-30 12:15:48 +00:00
Thomas Gelf a64e36b111 Settings: remove all legacy getSettings calls 2016-08-30 07:52:48 +00:00
Thomas Gelf 9750d4f637 IcingaConfigHelper: do not quote safe keys
Why? It looks better. Sex sells, you know. And Rune asked for it.
Additionally, we now write empty dictionaries on a single line

fixes #12447
2016-08-25 20:44:43 +00:00
Thomas Gelf 601e182b15 IcingaConfigHelper: extend reserved words list 2016-08-25 11:26:14 +00:00
Thomas Gelf 4c978db3d0 IcingaConfig: allow to toggle legacy renderer
refs #12264
2016-08-01 06:59:31 +00:00
Thomas Gelf 85b14c9961 IcingaLegacyConfigHelper: add new helper class 2016-07-27 10:21:38 +00:00
Thomas Gelf 398312a0e4 IcingaConfig: accept legacy config objects/files 2016-07-22 18:15:22 +02:00
Thomas Gelf cf424aa8ba IcingaConfig: workaround for GC issues...
...affecting RHEL/CentOS 7

fixes #12063
2016-06-30 12:17:32 +02:00
Thomas Gelf 172bdd6f6b IcingaConfig: provide helper method for activity...
...related configs, use in deployment job
2016-06-30 10:57:35 +02:00
Thomas Gelf 59e88ab32a IcingaConfig: let single queries fail...
...and do not use transactions
2016-06-28 14:01:43 +02:00
Thomas Gelf f7ddbaf2d7 host/agent: provide download for Windows Agent 2016-06-28 01:55:43 +02:00
Thomas Gelf c6c3543e5a IcingaConfig: use local variable for overrides 2016-06-26 16:45:25 +02:00
Thomas Gelf 93e4cc9b5b IcingaConfig: allow to override vars for dynamic...
...host-crafted services
2016-06-17 20:06:58 +02:00
Thomas Gelf 558128e36e IcingaConfig: fix typo 2016-06-16 16:04:05 +02:00
Thomas Gelf 734c7c7b02 IcingaConfig: add static exists() helper 2016-06-16 15:48:54 +02:00
Thomas Gelf df58ea0e69 IcingaConfig: add magic apply for rule
Hint: this is highly experimental, currently hidden and has no influence
on existing configs
2016-06-15 16:55:19 +02:00
Thomas Gelf 85cda6da9b IcingaConfig: deploy notifications 2016-06-03 15:24:17 +02:00
Thomas Gelf c3889ee5d8 IcingaConfigFile: count apply objects...
...still no statistics persistence to db
2016-05-25 12:28:07 +02:00
Thomas Gelf c205d9f80d IcingaConfig: allow to loadByActivityChecksum 2016-05-25 12:28:07 +02:00
Thomas Gelf 8c54dcab81 AssignRenderer: support FilterMatchNot 2016-05-20 10:56:58 +02:00
Thomas Gelf ac640fd113 IcingaConfig: do not benchmark no objects of type 2016-05-13 14:20:31 +02:00
Thomas Gelf 4388d2659c IcingaConfig: delegate config generation to object 2016-05-13 13:58:12 +02:00
Thomas Gelf 7118545c98 IcingaConfig: make zone lookup and file public 2016-04-22 18:15:33 +02:00
Thomas Gelf fad2e83b48 AssignRenderer: allow rule type as string param 2016-03-24 05:35:45 +01:00
Thomas Gelf 5da36490c8 ExtensibleSet: do not render empty arrays 2016-03-23 02:23:21 +01:00
Thomas Gelf 00b5e7c3f1 IcingaConfig: slightly change benchmarks messages 2016-03-20 01:36:44 +01:00
Thomas Gelf cf534b6aa4 IcingaConfig: load all enabled modules on CLI 2016-03-20 01:36:09 +01:00
Thomas Gelf 3e4d2b8626 IcingaConfig: make a couple of methods public 2016-03-19 22:16:24 +01:00
Thomas Gelf 21e541dbba IcingaConfig: deploy timeperiods
fixes #11418
2016-03-19 14:57:22 +01:00
Thomas Gelf 4e70a4a003 TypeFilterSet: fix flipped flapping states 2016-03-18 19:54:08 +01:00
Thomas Gelf 93eccc52a6 AssignRenderer: make filters look better, fix not 2016-03-16 21:48:53 +01:00
Thomas Gelf fdfedbae04 IcingaConfigHelper: render dictionaries sorted
Adjusted test scenario
2016-03-08 09:24:18 +01:00
Thomas Gelf c4d69e1a88 ExtensibleSet: silently ignore null or empty strings 2016-03-05 17:25:23 +01:00
Thomas Gelf 765ef97c80 IcingaConfig: fix related activity for PostgreSQL 2016-03-02 23:53:19 +01:00
Thomas Gelf dca0ea63af IcingaConfig: check for #655 only on MySQL
PostgreSQL binary checksums are always passed as hex
2016-03-02 21:40:35 +01:00
Thomas Gelf 6f35e3cd11 IcingaConfig: protect against ZF #655 2016-03-02 17:12:09 +01:00
Thomas Gelf 2865efde3f Db: add idPgsql helper method 2016-03-02 13:42:37 +01:00
Thomas Gelf 29b1253bea IcingaObject: log former related set state 2016-02-29 22:54:46 +01:00
Thomas Gelf c9a7c9d085 IcingaObject/ExtensibleSet: support toPlainObject 2016-02-29 20:05:38 +01:00
Thomas Gelf 013cc1c67d ExtensibleSet: allow global "set" 2016-02-29 19:00:52 +01:00
Thomas Gelf 4b46330855 ExtensibleSet: do not quote values, adjust tests 2016-02-29 18:30:32 +01:00
Thomas Gelf dcd2823a73 ExtensibleSet: do not render empty arrays 2016-02-29 18:29:58 +01:00
Thomas Gelf 245e632f54 ExtensibleSet: fix tests 2016-02-29 17:37:01 +01:00
Thomas Gelf c25c7ee95b IcingaConfigHelper: allow to render key/op/value 2016-02-29 17:36:12 +01:00
Thomas Gelf 74c0fc2dc6 ExtensibleSet: finish db handling 2016-02-29 17:35:41 +01:00
Thomas Gelf 5427df52e8 State/TypeFilterSet: add new event filter sets 2016-02-29 15:40:18 +01:00
Thomas Gelf bbcac7a00d ExtensibleSet: allow to load stored data 2016-02-29 15:39:25 +01:00
Thomas Gelf cc70193a56 ExtensibleSet: add and test renderer 2016-02-29 12:38:31 +01:00
Thomas Gelf e70de0a4af ExtensibleSet: re-order public/protected methods 2016-02-29 12:25:35 +01:00
Thomas Gelf 23dd4721ec ExtensibleSet: basic implementation & tests 2016-02-29 12:23:08 +01:00
Thomas Gelf 11e5ef0362 IcingaConfigHelper: empty intervals are null 2016-02-28 16:27:06 +01:00
Thomas Gelf 4dde0eaaf6 IcingaConfigHelper: Icinga2 doesn't support 2m 30s 2016-02-28 13:55:16 +01:00
Thomas Gelf a5013cd052 IcingaConfigHelper: output should fit defined tests 2016-02-28 13:26:32 +01:00
Thomas Gelf 3ee9841bc7 IcingaConfigHelper: provide helpers for intervals 2016-02-28 12:40:11 +01:00
Thomas Gelf 8a2bc74e29 IcingaConfig: files checksum should be files-only 2016-02-27 22:14:47 +01:00
Thomas Gelf 0a63c6bde8 IcingaConfig: work with new database fields
This basically helps to detect whether someone travelled back in
time by manually reverting single checks. Hard to explain in a few
lines
2016-02-27 21:06:22 +01:00
Thomas Gelf 343c9471c6 IcingaConfig: binFromDb() - new helper 2016-02-27 18:14:21 +01:00
Thomas Gelf 86f8830bcf Db/Housekeeping: prepare centralized housekeeping 2016-02-27 13:00:07 +01:00
Thomas Gelf 4bc5afb2f8 library/Director: fix PSR2 complaints 2016-02-26 11:58:37 +01:00
Thomas Gelf 518ff61b3f AssignRenderer: initial implementation 2016-02-24 23:00:49 +01:00
Thomas Gelf 1520d6fbf6 IcingaConfig: support the same file content twice 2016-02-23 17:03:52 +01:00
Thomas Gelf 93436bffac IcingaConfig: raise memory limits 2016-02-19 11:34:31 +01:00
Thomas Gelf 35e0830658 IcingaConfig: do not render disabled objectst 2016-02-17 19:59:25 +01:00
Thomas Gelf c6cd99f9db Hooks: remove last traces of Web\Hook 2016-02-17 11:49:56 +01:00
Thomas Gelf c0ee54b81c IcingaConfig:: fix db connection reference 2016-02-10 17:39:56 +01:00
Thomas Gelf 446f378b10 IcingaConfig: get rid of hardcoded zone names 2016-02-09 20:43:13 +01:00
Thomas Gelf 5138501dc1 IcingaConfig: use Benchmark 2016-01-19 16:45:20 +01:00
Thomas Gelf 848e2d2f74 IcingaConfig: hardcode log_duration = 0...
...for auto-generated endpoints only.
2016-01-19 16:30:42 +01:00
Thomas Gelf 4d13f8a9af IcingaConfig: store file statistics 2015-12-18 17:32:17 +01:00
Thomas Gelf 129cc8220b IcingaConfig: add parent zone to auto-zones 2015-12-18 15:42:22 +01:00
Thomas Gelf e2fad6eb79 IcingaConfig: no autoendpoint for existing ones 2015-12-18 11:37:11 +01:00
Thomas Gelf 6d8dc41bab IcingaConfig: no longer generate hardcoded global 2015-12-18 11:33:27 +01:00
Thomas Gelf 6e6c2ee6e5 IcingaConfig: respect inheritance for auto-agents 2015-12-18 11:28:01 +01:00
Thomas Gelf c0206ca2c7 IcingaConfig: auto-generate agent endpoints 2015-12-18 10:53:27 +01:00
Thomas Gelf bc042fc5b1 IcingaConfig: use new deployment rules 2015-12-17 20:33:16 +01:00
Thomas Gelf b73806d69c config/file: show single files 2015-12-17 10:54:38 +01:00
Thomas Gelf 47e31f023b deployment: show more information, cleanup 2015-12-16 16:19:58 +01:00
Thomas Gelf a421e5e608 IcingaConfig: object counts 2015-12-15 17:17:32 +01:00
Thomas Gelf 30ce3d8d4f IcingaConfigFile: add object counter support 2015-12-15 17:14:36 +01:00
Thomas Gelf 942363c65d IcingaConfig: rename fromDb to load 2015-12-15 16:46:19 +01:00
Thomas Gelf bc51c2e81c IcingaConfig: remove duplicate extension 2015-12-12 23:17:03 +01:00
Thomas Gelf b03f5c55ca DbObject: first attempt to seriously use prefetch 2015-12-03 19:43:08 +01:00
Thomas Gelf 71f8b0f107 IcingaConfig: deploy endpoints to their zone 2015-12-03 16:54:52 +01:00
Thomas Gelf b0f98c2d07 IcingaConfig: deploy endpoints, remove 'master' 2015-12-02 16:46:13 +01:00
Thomas Gelf 36d9db4c74 IcingaConfig: handle external zones like ours 2015-12-02 16:10:20 +01:00
Thomas Gelf 9f36a3184f IcingaConfigHelper: add renderExpression 2015-12-02 02:47:49 +01:00
Thomas Gelf 9413c8cdbd IcingaConfig: do not re-deploy external objects 2015-12-01 14:47:10 +01:00
Thomas Gelf 029ee84d33 IcingaConfig: cleanup, hardcode director-global 2015-11-30 15:31:54 +01:00
Thomas Gelf 76b45f04d5 IcingaConfig: start to re-add disabled zone elements 2015-11-14 14:49:45 +01:00
Thomas Gelf 5f9fb8eb83 IcingaConfigHelper: add missing exception class 2015-11-13 23:52:51 +01:00
Thomas Gelf 4f64d79e15 IcingaConfig: tell whether config would change 2015-11-06 09:47:36 +01:00