Commit Graph

1565 Commits

Author SHA1 Message Date
Thomas Gelf 6a54e00402 MultiEdit: code cleanup, add custom var support
fixes #12465
fixes #12906
fixes #11614
2016-10-14 17:17:07 +00:00
Thomas Gelf 69237b8ae9 MultiEditForm: first shot, provides imports
refs #12465
2016-10-14 13:46:06 +00:00
Thomas Gelf 732ebae339 ActionController: provide a singleTab helper 2016-10-14 13:46:06 +00:00
Thomas Gelf 41c4448685 QuickTable: provide multiselect feature
refs #11614
2016-10-14 13:46:06 +00:00
Thomas Gelf 6f46e6b496 YesNo: new boolean-like form fields
fixes #12927
2016-10-14 13:39:43 +00:00
Thomas Gelf 98708e6496 Forms: better error handling
fixes #12926
2016-10-14 13:35:30 +00:00
Thomas Gelf 2df7144240 TemplateResolver: no more false alarms...
...when multiple paths lead to the same template

refs #11803
2016-10-14 11:26:41 +00:00
Thomas Gelf 558ea82203 IcingaRelatedObject: fix syntax, add comment...
...stating that this is unfinished
2016-10-14 10:40:29 +00:00
Thomas Gelf cfbf40147c IcingaObjectImports: simplify code 2016-10-14 10:33:46 +00:00
Thomas Gelf 041fd52174 FieldLoader, TemplateResolver: more cleanup
A few fixes related to modified imports for unstored objects

refs #12922
2016-10-14 09:59:08 +00:00
Thomas Gelf 98acba9fb4 IcingaTemplateResolver: more tweaking
refs #12922
2016-10-14 09:40:01 +00:00
Thomas Gelf 61f3ffff7e TemplateResolver: deal with unstored modified...
...imports property

fixes #12922
2016-10-14 09:12:05 +00:00
Thomas Gelf e04acbc55f IcingaObjectFieldLoader: do not fail on emtpy...
...parents
2016-10-14 08:33:58 +00:00
Thomas Gelf 913c2687b6 IcingaObjectFieldLoader: first implementation
Should already replace all former functionality

refs #12904
2016-10-13 21:25:03 +00:00
Thomas Gelf 0d930efb46 IcingaObject: add new resolving helper methods
This for example allows to get a single inherited var and their origin
2016-10-13 21:25:03 +00:00
Markus Frosch f527e31b14 Merge branch 'bugfix/endpoint-remove-import-12920'
fixes #12920
2016-10-13 16:54:34 +02:00
Markus Frosch cc61831258 DirectorObjectForm: Allow form to select if imports are required
refs #12920
2016-10-13 16:37:49 +02:00
Thomas Gelf cf4dccc817 Notification: add fields support
fixes #12642
2016-10-13 14:34:25 +00:00
Thomas Gelf 71b3459540 DirectorDatafieldForm: allow to wipe all related...
...custom variables when removing a field

fixes #12916
2016-10-13 14:02:51 +00:00
Thomas Gelf 0e45429196 ObjectForm: do not allow to choose type...
...when one is already given
2016-10-13 11:55:53 +00:00
Thomas Gelf c1afda4392 IcingaObject: do not fail when rendering objects...
...without imports support

fixes #12618
2016-10-13 11:11:35 +00:00
Thomas Gelf e99568fffc DirectorObjectForm: add unique error message...
...without adding an error in case we detect a loop. Also improve
resolve cache invalidation and clean up old imports-related code

refs #11803
2016-10-12 15:23:54 +00:00
Thomas Gelf 05f991c585 IcingaObject: no loop detection on unstored...
...objects

refs #11803
2016-10-12 14:26:44 +00:00
Thomas Gelf 7993724dcb IcingaTemplateResolver: detect and throw nesting..
...errors

fixes #11803
2016-10-12 14:16:19 +00:00
Thomas Gelf 0a26b94e7c IcingaObjectMultiRelations: fix service relations
...for sets
2016-10-12 09:11:05 +00:00
Thomas Gelf 34ed3da3b8 IcingaObject: remove duplicated short name logic 2016-10-12 09:09:28 +00:00
Thomas Gelf cb533f5668 IcingaConfig: deploy service sets 2016-10-12 09:04:08 +00:00
Thomas Gelf c044de89de SyncPropertyForm: allow to sync m:n relations 2016-10-12 08:59:42 +00:00
Thomas Gelf 9e1cea0119 IcingaObject: fix v1 rendering for some properties
Mostly relations, no timeout, still ugly
2016-10-12 08:31:22 +00:00
Thomas Gelf e096ec9ec5 IcingaServiceSets: allow to set imports 2016-10-12 08:30:10 +00:00
Thomas Gelf f2f04c44e8 ServiceSet: add CLI command, fix key 2016-10-12 07:31:00 +00:00
Thomas Gelf b7018627a0 IcingaServiceSet: introduce a new object type 2016-10-12 07:19:02 +00:00
Thomas Gelf 8faa572098 PropertyModifierDnsRecords: re-order form fields 2016-10-11 16:02:50 +00:00
Thomas Gelf 785746fb26 GroupMembershipCache: fix messed up properties
fixes #12887
2016-10-11 15:26:31 +00:00
Thomas Gelf c4da25ef25 IcingaCommandArgument: render set_if without format
Icinga DSL support was introduced in 348cb1aa6 and works fine, but breaks
rendering of legacy arguments with set_if_format = NULL. This should default
to 'string', as we should IMO not force NOT NULL in the DB in this case.

refs #12153
fixes #12886
2016-10-11 09:45:11 +00:00
Thomas Gelf 380fb0afe9 GroupMembershipCache: add missing property
fixes #12884
2016-10-10 19:15:34 +00:00
Markus Frosch df36071c9c IcingaService: single objects should respect...
...their host's zone where not overriden by a service template

fixes #11988
2016-10-10 10:57:24 +00:00
Thomas Gelf 82c5b10eef Db: do not let the db adapter handle binary...
...data as this causes problems with Postgres and quoteBinary
2016-10-09 13:47:37 +00:00
Thomas Gelf 38eaf4036b IcingaHost: agent-related hint for legacy config 2016-10-09 13:27:38 +00:00
Thomas Gelf e96db8b296 IcingaObject: move duplicate logic to common func 2016-10-09 13:15:05 +00:00
Thomas Gelf cf063180d2 IcingaObject: start to dry out relation-related...
...code. Still weird and hard to understand because of lazy-loading,
can only get better. All this is required to be able to render objects
having obsolete dependencies in our activity log
2016-10-09 12:48:13 +00:00
Thomas Gelf 1bc4a397a8 CustomVariableCache: optionally use digest()...
...for PostgreSQL in case pgcrypto is installed. Also add related hint to the
installation documentation
2016-10-09 12:43:04 +00:00
Thomas Gelf 6f12663756 PrefetchCache: lot's of improvements
This commit enables the prefetch cache per default when rendering configs
and adds the following features:

* prefetch all kinds of Icinga object inheritance (imports)
* prefetch group memberships
* prefetch custom variables
* render vars with the same checksum only once

Roughly measured performance boost with a large real-life config, renders three
times faster as it did before. Might be even more for those suffering from high
latencies when accessing their DB remotely and/or on a slow storage.

fixes #12876
2016-10-09 12:41:06 +00:00
Thomas Gelf 42aef0105d DbObject: exists() should respect prefetch...
...also for negative lookups

refs #12876
2016-10-08 19:34:59 +00:00
Thomas Gelf c0a8c49d4f show/activitylog: fallback rendering for hosts...
...with obsolete parents, that have been removed in the meantime
2016-10-06 16:29:50 +00:00
Thomas Gelf 081ea72497 KickstartHelper: handle renamed zones...
...when triggered multiple times
2016-10-06 16:20:25 +00:00
Thomas Gelf 2c071e215d CustomVariableNumber: tolerant float comparison 2016-10-06 16:19:08 +00:00
Thomas Gelf 749f035971 Db/IcingaObject: formatting & style 2016-10-05 18:05:59 +00:00
Thomas Gelf 70b8a9ea02 DirectorObjectForm: improve Exception error message 2016-10-05 18:03:07 +00:00
Thomas Gelf d1b7083145 IcingaObject: add helper methods for relations 2016-10-05 17:58:48 +00:00
Thomas Gelf e9a570e96d Sync: fix sync & purge for datalistEntry objects 2016-10-05 17:45:25 +00:00
Thomas Gelf c859055221 CustomVariables: unset var if set to plain null
...but still allow for Null variables
2016-10-05 17:20:25 +00:00
Thomas Gelf db0662b554 PropertyModifierDnsRecords: new property modifier 2016-10-03 15:28:41 +00:00
Marc DeTrano 348cb1aa63 IcingaCommandArgument: allow expressions in set_if
fixes #12153
2016-09-23 15:18:58 +00:00
Thomas Gelf d8f02c8974 DataTypeDirectorObject: do not force 'require' 2016-09-23 14:07:33 +00:00
Thomas Gelf 542f1faf76 DataType: new DirectorObject data type
Allows one to choose from a list of objects, filling string or array
vars

fixes #11998
2016-09-23 13:30:47 +00:00
Thomas Gelf 3383b97e69 IcingaRelatedObject: new helper class 2016-09-16 21:56:35 +00:00
Thomas Gelf 42212661f2 IcingaObject: document 'supports' vars and methods 2016-09-15 18:53:09 +00:00
Thomas Gelf a17fc32b41 PropertyModifierToInt: new property modifier 2016-09-14 19:35:51 +00:00
Thomas Gelf 407a387dab DirectorDatalistEntry: add shouldBeRemoved...
...fixes sync for DatalistEntries

fixes #12715
2016-09-12 21:41:15 +00:00
Thomas Gelf 04cae6f8f8 DirectorObjectForm: fix forgotten variable 2016-09-09 21:38:49 +00:00
Thomas Gelf f52cd5ea77 DirectorDatafield: simplify usage 2016-09-09 21:32:26 +00:00
Thomas Gelf 217fb38517 IcingaObject: implement supportsAssignRules 2016-09-09 09:06:31 +00:00
Markus Frosch a90595a004 IcingaHostGroup: Add apply statements 2016-09-09 08:32:42 +00:00
Thomas Gelf 29231ef8c8 config/deployments: collect uncollected stages...
...if any when refreshing the history

refs #11979
2016-09-09 07:21:32 +00:00
Thomas Gelf efd0b50052 CustomVariable: reset 'deleted' when re-setting...
...a value
2016-09-08 22:40:07 +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 b2b189c425 IcingaServiceForm: support use_var_overrides...
...even for single host-assigned services
2016-09-08 18:43:25 +00:00
Thomas Gelf b47c7be3d5 IcingaService: add use_var_overrides 2016-09-08 15:01:19 +00:00
Thomas Gelf defb8c50c2 CustomVariables: improve readability 2016-09-08 13:55:13 +00:00
Thomas Gelf 999019ba16 IcingaService: make sure to have a db connection
...when rendering, as we require settings
2016-09-08 13:30:37 +00:00
Thomas Gelf 31b716a7db CustomVariableDictionary: implement isset 2016-09-08 13:18:55 +00:00
Thomas Gelf b8fb0d4267 IcingaConfig: host-generated services should...
...respect new overrides
2016-09-08 13:07:04 +00:00
Thomas Gelf d44c06fce0 IcingaService: do not hardcode override template 2016-09-08 12:08:30 +00:00
Thomas Gelf 8dd7fcd13b IcingaHost, IcingaServiceForm: fix parse error...
...on PHP < 5.5
2016-09-08 11:32:41 +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 8171bb8c04 IcingaHost: add methods dealing with overridden...
...service vars
2016-09-08 09:54:23 +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 687f2aff1c Settings: delete NULL-value settings 2016-09-05 19:16:58 +00:00
Thomas Gelf 0242d8d411 Settings: allow to retrieve stored value 2016-09-05 19:15:12 +00:00
Thomas Gelf 1144b5d55f DirectorObjectForm: fix legacy range field 2016-09-05 18:52:22 +00:00
Thomas Gelf 83031c1349 Cli\ObjectCommand: allow multiple objects...
...as a parameter for clone and delete
2016-09-05 18:37:00 +00:00
Thomas Gelf 138f5d2aed Cli\Command: allow other modules to extend this...
...class
2016-09-05 15:55:26 +00:00
Thomas Gelf 029907f01f TimePeriodRange: ranges should be more generic...
...as they will not only be used in timeperiods
2016-08-31 16:23:23 +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 11f41edd13 PropertyModifierJoin: tell about array support
fixes #12236
2016-08-30 07:55:07 +00:00
Thomas Gelf a4813e8046 PropertyModifierHook: allow modifiers to deal...
...with arrays

refs #12236
2016-08-30 07:53:10 +00:00
Thomas Gelf a64e36b111 Settings: remove all legacy getSettings calls 2016-08-30 07:52:48 +00:00
Thomas Gelf 336257680c Settings: remove settings logic from DB...
...and keep helper method for easy instantiation
2016-08-27 13:20:03 +00:00
Thomas Gelf 58441b88ad IcingaService: use string helper for assignments 2016-08-27 08:46:46 +00:00
Thomas Gelf 77c915c897 DirectorObjectForm: normalize command field values...
...with special data types even when filled at services level

fixes #12400
fixes #11692
fixes #11477
2016-08-26 13:48:44 +00:00
Thomas Gelf 5355558519 DirectorObjectForm: place failed command fields...
...into the correct display group
2016-08-26 13:34:57 +00:00
Thomas Gelf b6d59b9aca IcingaCommand: fix skip_key handling
refs #11554
refs #11918
2016-08-26 07:00:45 +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 9fb547a849 IcingaCommand/TimePeriod: use internalized templates
Icinga 2.5 moved a few default templates from ITL to the core itself and
deprecated directly setting execute & similar properties. This change will
break config deployment for 2.4.x environments without 'include <itl>', but
this would rarely be the case.

This commit also changed how we work with inherited properties to render the
right object type based on 'execute' if none is set (but got inherited).

fixes #12443
fixes #12543
2016-08-25 10:16:00 +00:00
Thomas Gelf b8b047a1e4 ImportSourceCoreApi: allow to import user groups
fixes #11511
2016-08-24 14:15:40 +00:00
Thomas Gelf 84b035ec24 objects/tree: enable autorefresh...
...and some coding style fixes

fixes #12451
2016-08-23 15:11:42 +00:00
Thomas Gelf 56a7cb285d host/services: show inherited services...
...and magically applied ones
2016-08-23 14:18:54 +00:00
Thomas Gelf 73bdfb3ecd IcingaObjectImports: keep passed objects in set()
This reduces lookups and avoids failures when unstored objects are
involved
2016-08-23 14:08:51 +00:00
Thomas Gelf e639790d52 IcingaObject: improve type detection
fixes #12319
2016-08-09 14:17:57 +00:00
Thomas Gelf 50c67ceda2 Cli\ObjectCommand: fix type lookup for groups
fixes #12319
2016-08-05 14:44:57 +00:00
Thomas Gelf 89d8536a92 IconHelper: start to separate concerns in forms
One new small helper class for this purpose
2016-08-05 12:49:11 +00:00
Thomas Gelf 14b5e74bb2 DirectorObjectForm: skip timeperiod range params...
...on redirect after removal. TimeperiodRange::getOnDeleteUrl would
be a better place for this, but I do not like that solution either :p

fixes #12316
2016-08-04 18:29:18 +00:00
Corentin Ardeois 5bdd219533 Allow override of blacklisted properties
It is now a separate class attribute which can be overridden.
2016-08-04 15:07:26 +00:00
Thomas Gelf 54643fe5cd IcingaArguments: fix argment removal for forms
fixes #11536
2016-08-01 11:06:52 +00:00
Thomas Gelf 52e412002f IcingaCommandArgumentForm: store command, not args
refs #11536
2016-08-01 10:45:47 +00:00
Thomas Gelf 6258230fdb IcingaArguments: test and fix modification tracking
This fixes related behaviour when working on CLI, API or through
Sync Rules - but not web forms

refs #12266
2016-08-01 09:31:10 +00:00
Thomas Gelf 4c978db3d0 IcingaConfig: allow to toggle legacy renderer
refs #12264
2016-08-01 06:59:31 +00:00
Thomas Gelf 7655ad451a ConfigDiff: more context, fix diff with empty
fixes #12262
fixes #12263
2016-08-01 06:49:39 +00:00
Thomas Gelf ce1c6f3099 Objects: simplify default rendering zone handling
For existing installations this should only affect Timeperiods, as
they will now prefer the global zone. Also some custom zone settings
might now take effect while they have formerly been ignored.

fixes #12252
2016-07-28 15:44:42 +00:00
Thomas Gelf 0d36d56cbb JsonDecode: provide a new property modifier
fixes #12251
2016-07-28 14:56:16 +00:00
Thomas Gelf 2bf5bdddb5 IcingaObject, imports: more legacy config support 2016-07-28 06:57:27 +00:00
Thomas Gelf 85b14c9961 IcingaLegacyConfigHelper: add new helper class 2016-07-27 10:21:38 +00:00
Markus Frosch 73b1863e1a SyncRule: Allow disabling purge 2016-07-26 14:03:52 +02:00
Thomas Gelf 193e860beb Db\Migration: use query for OPTIMIZE, not exec
This is required as OPTIMIZE returns data
2016-07-26 13:43:18 +02:00
Thomas Gelf f6c1a9f0f7 CoreApi: shorten startup log
Everything more than 60k is absolutely insane

fixes #12231
2016-07-26 13:14:14 +02:00
Thomas Gelf 439757d464 IcingaHost: introduce API keys 2016-07-26 09:52:55 +02:00
Thomas Gelf 398312a0e4 IcingaConfig: accept legacy config objects/files 2016-07-22 18:15:22 +02:00
Thomas Gelf 4e083d7d40 CustomVariables: use array notation for keys...
...with special characters
2016-07-22 18:09:02 +02:00
Thomas Gelf fffa6a5f3b CLI: add clone functionality
fixes #12203
2016-07-22 02:14:11 +02:00
Thomas Gelf 9c9516834c PropertyModifierSplit: allow null when empty
fixes #12060
2016-07-21 23:39:33 +02:00
Thomas Gelf 1555d049f2 DirectorDeploymentLog: use predefined aliases...
...to avoid problems with too much intelligence in deeper db
abstraction layers
2016-07-21 13:12:45 +02:00
Thomas Gelf c2f3609cc6 DirectorObjectForm: provide event command for...
...hosts and services

fixes #12117
fixes #12126
2016-07-20 17:53:19 +02:00
Thomas Gelf 9a6320c2f4 ImportSource: use target_property for transforms 2016-07-20 15:21:07 +02:00
Thomas Gelf f12e4b2033 ImportSource: provide applyModifiers helper method 2016-07-20 14:25:18 +02:00
Thomas Gelf 29564ab742 ImportSource: take over duplicated transform logic 2016-07-20 14:19:20 +02:00
Thomas Gelf eca707bb9d SyncUtils: use missing exception class 2016-07-20 13:44:01 +02:00
Thomas Gelf d90bb05ca2 ImportRowModifier: provide target_property...
...also adjust the related form

refs #11949
2016-07-20 13:41:16 +02:00
Thomas Gelf 38bf19eb92 ImportSource: take over modifier loading logic 2016-07-20 13:40:43 +02:00
Thomas Gelf 225e9beec6 ImportRowModifier: reduce instantiated objects 2016-07-20 12:59:02 +02:00
Thomas Gelf 2ff722e4d2 PropertyModifierMakeBoolean: new property modifier
fixes #12184
2016-07-20 12:28:40 +02:00
Thomas Gelf e58c31ab63 ImportRunBasedPurgeStrategy: do not fetch no rows 2016-07-19 06:18:52 +02:00
Thomas Gelf 15acbb5290 IcingaObject::replaceWith: implement preserve...
...and add related tests, as this is a tricky one
2016-07-14 17:06:48 +02:00
Thomas Gelf 56257c1c0f Sync: implement purge with nested keys 2016-07-14 12:18:57 +02:00
Thomas Gelf 354392d216 ImportRun: allow to fetch specific keys 2016-07-13 21:37:31 +02:00
Thomas Gelf 34e57d5160 ImportRunBasedPurgeStrategy: use source key pattern
fixes #12059
2016-07-13 21:10:37 +02:00
Thomas Gelf 70c4d06a42 Sync: move key-related logic to SyncRule 2016-07-13 19:59:04 +02:00
Thomas Gelf 465740c37c Sync: move helper methods to SyncUtils 2016-07-13 13:52:15 +02:00
Thomas Gelf d4a680a6b9 ImportRun: take over specific logic from Db 2016-07-13 10:19:03 +02:00
Markus Frosch f863a9b223 WIP: Add templates tab for all objects
Exceptions are global types, and those who can't import.
2016-07-07 09:05:33 +02:00
Markus Frosch c73be6b976 QuickTable: Ignore _dev parameter for the filter 2016-07-07 08:57:45 +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 6178ca8320 DbObject: allow to clear all caches 2016-06-30 12:07:33 +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 f288ddaf95 CustomVariables: allow to instantiate from cache 2016-06-30 10:42:52 +02:00
Thomas Gelf b09c4f8ef0 Db/Cache: first step to externalize lookup caches 2016-06-30 10:34:34 +02:00
Thomas Gelf 1f5f34cea5 IcingaObjectGroups,Imports: add some manual GC...
...to work around PHP issues
2016-06-30 09:34:27 +02:00