Commit Graph

287 Commits

Author SHA1 Message Date
Markus Frosch 86d2f317ee IcingaObject: Do not invalidate templateResolver on every setImports()
Do not clear templateResolver, but refresh current object with its "new" parents.

refs #11803
2016-10-31 17:21:21 +01:00
Thomas Gelf e59e2d0c2c Merge remote-tracking branch 'origin/master' 2016-10-27 16:35:19 +00:00
Markus Frosch f9f61be7aa IcingaObject: Allow replaceWith on non-apply Objects
This broke with assign_filter changes, we should not throw an error when
the filter is actually null.

replaceWith() re-sets all vars.

refs #12033
2016-10-27 15:46:52 +02:00
Thomas Gelf d59604bd93 ServiceSet: rework sets, allow for vars and...
...all other service properties when adding services to a set
2016-10-25 23:12:23 +00:00
Thomas Gelf 696e63b4ec Servicesset: add controller, form and table 2016-10-25 23:12:23 +00:00
Thomas Gelf fa2c360f4c IcingaObject: fix arguments rendering for external
...objects
2016-10-25 02:28:19 +00:00
Thomas Gelf 39be7b2cb0 IcingaObjectLegacyAssignments: rendering for old...
...assignments still to be found in our activity log
2016-10-25 00:00:16 +00:00
Thomas Gelf 0d86c24cd8 Huge change, getting rid of legacy assignment...
...code. All objects should work with the new code base right now
2016-10-24 03:41:37 +00:00
Thomas Gelf aeafec37d7 FormDataFilter: simplify HTML, Code and style 2016-10-23 04:23:38 +00:00
Thomas Gelf 6ed24f93da IcingaObject: render assign_filter property 2016-10-22 07:02:09 +00:00
Thomas Gelf b7eaab715b Make explicit calls to renderStringWithVariables 2016-10-22 05:48:09 +00:00
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
Thomas Gelf fc2890d865 IcingaObject: new helper method for single...
...resolved custom vars
2016-10-20 01:37:23 +00:00
Thomas Gelf 98acba9fb4 IcingaTemplateResolver: more tweaking
refs #12922
2016-10-14 09:40:01 +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
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 34ed3da3b8 IcingaObject: remove duplicated short name logic 2016-10-12 09:09:28 +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 b7018627a0 IcingaServiceSet: introduce a new object type 2016-10-12 07:19:02 +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 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 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 749f035971 Db/IcingaObject: formatting & style 2016-10-05 18:05:59 +00:00
Thomas Gelf d1b7083145 IcingaObject: add helper methods for relations 2016-10-05 17:58:48 +00:00
Thomas Gelf 42212661f2 IcingaObject: document 'supports' vars and methods 2016-09-15 18:53:09 +00:00
Thomas Gelf 217fb38517 IcingaObject: implement supportsAssignRules 2016-09-09 09:06:31 +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 56a7cb285d host/services: show inherited services...
...and magically applied ones
2016-08-23 14:18:54 +00:00
Thomas Gelf e639790d52 IcingaObject: improve type detection
fixes #12319
2016-08-09 14:17:57 +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 4c978db3d0 IcingaConfig: allow to toggle legacy renderer
refs #12264
2016-08-01 06:59:31 +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 2bf5bdddb5 IcingaObject, imports: more legacy config support 2016-07-28 06:57:27 +00: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 a761bb108b IcingaService: render dedicated host before imports
This fixes issues with object and apply types showing different
behaviour in Icinga 2 when inheriting the very same template.
2016-06-17 11:55:48 +02:00
Thomas Gelf dc3a2ca999 IcingaObject: split object property rendering
Improves readability
2016-06-17 11:44:38 +02:00
Thomas Gelf 5c0ea2c3b0 IcingaObject: be strict on relations 2016-06-16 22:16:55 +02:00
Thomas Gelf 57656f8dd9 IcingaObject: externalize imported object loading 2016-06-16 21:40:22 +02:00
Thomas Gelf b83bfed186 IcingaObject: fix comments for disabled object...
...and switch to multiline comments, they look better in our diffs

fixes #11937
2016-06-13 17:20:44 +02:00
Thomas Gelf 0b92ca922f IcingaObject: render disabled objects as comments
fixes #11922
2016-06-11 00:30:28 +02:00
Thomas Gelf cb825b5b94 IcingaObject: fix resolveProperty in combination...
...with lazy-set properties
2016-05-26 01:35:12 +02:00
Thomas Gelf b3a1d54870 IcingaObject: fix c&p error, variable name 2016-05-20 09:23:48 +02:00
Thomas Gelf 018713a13f IcingaObject: smaller methods for import resolvers 2016-05-20 08:36:07 +02:00
Thomas Gelf 64fbdcfeee IcingaObjectImports: fix null handling 2016-05-20 08:12:46 +02:00
Thomas Gelf 576d62da26 IcingaObject: use resolved zone for apply/tpl 2016-05-10 20:23:45 +02:00
Thomas Gelf 1158409eeb IcingaObject: fix rendering target and tests 2016-05-02 10:23:32 +02:00
Thomas Gelf 8c02b1e6c5 IcingaObject: fix multi-relation rendering order 2016-04-22 11:12:29 +02:00
Thomas Gelf f8ef034358 IcingaObject: add render target helpers 2016-04-19 21:29:03 +02:00
Thomas Gelf e040e84e5b IcingaObject: add isDisabled helper method 2016-04-18 13:17:47 +02:00
Thomas Gelf 46e230c5ad IcingaObject: fix occasional error when showing...
...resolved properties for applied objects
2016-04-11 11:06:54 +02:00
Thomas Gelf 36c4e51aa0 IcingaObject: fix argument retrieval 2016-04-03 21:27:49 +02:00
Thomas Gelf 9cf3569884 IcingaObject: unresolved properties 2016-03-24 13:37:32 +01:00
Thomas Gelf a8ec07237d IcingaObject: provide former assignments for...
...the activity log
2016-03-24 11:40:32 +01:00
Thomas Gelf f8d6af7b3f IcingaObject: make assignments public 2016-03-24 06:49:19 +01:00
Thomas Gelf 33ff0c77e8 IcingaObjectAssignments: complete re-write 2016-03-24 06:46:13 +01:00
Thomas Gelf a49f163ca2 IcingaObject: fix argument setter 2016-03-21 10:35:11 +01:00
Thomas Gelf d7142b307a IcingaObject: clean up legacy methods 2016-03-20 14:51:18 +01:00
Thomas Gelf 3e016311d6 DirectorActivityLog: improve removal logging 2016-03-20 12:02:45 +01:00
Thomas Gelf dda16fd0d0 IcingaObject: introduce isObject helper method 2016-03-20 12:00:03 +01:00
Thomas Gelf 5e3fe5e2df IcingaCommandArguments: refactor large parts 2016-03-18 13:46:06 +01:00
Thomas Gelf 1dbf2e8410 IcingaObject: failsafe helper for related object 2016-03-18 11:43:40 +01:00
Thomas Gelf 8680f04532 IcingaObject: a bunch of timeperiod-related fixes 2016-03-17 23:08:57 +01:00
Thomas Gelf 7546a9db66 IcingaObject: fix unmodified multi rel properties
Former object in activity log used to be buggy in case you removed
all relations of a multi-relation properties
2016-03-17 08:27:11 +01:00
Thomas Gelf b188b9c18d IcingaObject: a couple of small fixes 2016-03-16 21:46:00 +01:00
Thomas Gelf 03a5708a00 IcingaObject: return booleans in plain objects 2016-03-16 21:34:46 +01:00
Thomas Gelf 2b46eff08f IcingaObject: add createByType method 2016-03-16 20:27:26 +01:00
Thomas Gelf 61674546d9 IcingaObject: return a list for multi-related 2016-03-16 19:26:28 +01:00
Thomas Gelf d605bd7b06 IcingaObject: fix full plain for empty multi rel 2016-03-16 15:17:58 +01:00
Thomas Gelf c7bf68a70a IcingaObjectMultiRelations: fix store and render 2016-03-16 13:53:34 +01:00
Thomas Gelf 5861788420 IcingaObjectMultiRelations: new abstraction layer 2016-03-16 13:01:55 +01:00
Thomas Gelf 8b903486d3 IcingaObject: support merge for objects with no CV 2016-03-11 13:56:34 +01:00
Thomas Gelf 507dd176cc IcingaObject: fix lookup loop on lazy loading 2016-03-11 02:41:22 +01:00
Thomas Gelf 7cd2eb415f FormExtensibleSet: fix nested options (e.g. users) 2016-03-09 09:14:13 +01:00
Thomas Gelf 23333f1b77 IcingaObject: unmodified object should be an object 2016-03-08 21:30:12 +01:00
Thomas Gelf 670b932526 IcingaObject: fix lezy-loading issues 2016-03-08 09:21:59 +01:00
Thomas Gelf f2d9e1a544 IcingaObject: fix key handling for unresolved props 2016-03-07 18:10:09 +01:00
Thomas Gelf b3a44bd7dd IcingaObject: fix 'empty' check for relation property 2016-03-07 18:07:36 +01:00
Thomas Gelf aee62754ce IcingaObject: fix resolution of lazy-loaded rels 2016-03-07 17:11:23 +01:00
Thomas Gelf 5350584bec IcingaObject: lazy-load related objects...
...if string name is given

fixes #11301
2016-03-07 02:06:04 +01:00
Thomas Gelf fb43331379 IcingaObject: add getUrlParams helper 2016-03-06 14:20:05 +01:00
Thomas Gelf cafd136232 DirectorObjectForm: get ids when resolving object
This formerly broke some forms
2016-03-06 10:27:37 +01:00
Thomas Gelf b5c09caff6 IcingaObject: support sets in hasBeenModified 2016-03-05 16:13:24 +01:00
Thomas Gelf 3460912fea IcingaObjectImports: fix behaviour, simplify usage 2016-03-05 10:49:37 +01:00
Thomas Gelf 092bb8c3f6 IcingaObjectGroups: simplify setting groups 2016-03-05 10:46:12 +01:00
Thomas Gelf 4e677dbc56 Forms: used templates should not be deleted 2016-03-02 19:29:35 +01:00
Thomas Gelf 8b3d72a04a library: code style 2016-03-01 04:23:31 +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 f97e117994 IcingaObject: load and store related sets 2016-02-29 18:57:19 +01:00
Thomas Gelf 47f20c93a3 IcingaObject: render related sets 2016-02-29 18:19:01 +01:00
Thomas Gelf f9f1298bfd IcingaObject: allow default for getResolvedProperty 2016-02-28 14:37:13 +01:00
Thomas Gelf 7d9fefd61f IcingaObject: blacklist "disabled" when inheriting 2016-02-28 14:28:27 +01:00
Thomas Gelf 8bcbf0f45a IcingaObject/Host/Service: provide interval helpers 2016-02-28 14:21:00 +01:00
Thomas Gelf 3ee9841bc7 IcingaConfigHelper: provide helpers for intervals 2016-02-28 12:40:11 +01:00
Thomas Gelf 4bc5afb2f8 library/Director: fix PSR2 complaints 2016-02-26 11:58:37 +01:00
Thomas Gelf a3a17df437 IcingaObject: fix host merge test 2016-02-25 19:38:52 +01:00
Thomas Gelf 1261bd93e1 IcingaObject: add merge method, use in Sync 2016-02-25 00:23:27 +01:00
Thomas Gelf b9ee674d3f IcingaObject: render assignments (experimental) 2016-02-24 23:59:50 +01:00
Thomas Gelf fb6518a887 IcingaObject: add awareness for apply object type 2016-02-24 21:37:48 +01:00
Thomas Gelf 4292f31f4f IcingaObject: generic loadAll support...
...also for multi-key objects
2016-02-24 15:18:30 +01:00
Thomas Gelf 6c72eaf176 IcingaObject.php: getPlainUnmodifiedObject for log 2016-02-23 00:33:05 +01:00
Thomas Gelf 1f71def70c IcingaObject: skipDefaults instead of skipNull 2016-02-23 00:29:51 +01:00
Thomas Gelf 23090c502a IcingaObject: introduce differsFromDefaultValue 2016-02-23 00:26:39 +01:00
Thomas Gelf 070d05d4a8 IcingaObject: ignore deleted vars for getVars
This is used when resolving plain objects
2016-02-22 15:43:59 +01:00
Thomas Gelf 1f869fa001 IcingaObject: fix variable names on setting vars.x 2016-02-22 15:19:26 +01:00
Thomas Gelf 72ffe336be IcingaObject: allow to directly set dict var key 2016-02-21 10:10:24 +01:00
Thomas Gelf e8aadbb30b IcingaObject: fix issue with disabled property 2016-02-17 20:00:48 +01:00
Thomas Gelf 7b6747ab67 IcingaObject: add helper for related objects 2016-02-17 16:03:07 +01:00
Thomas Gelf 5b3b5cbfb8 IcingaObjects: add new "disabled" property 2016-02-16 12:17:50 +01:00
Thomas Gelf b22f12cf55 IcingaObject: dedicated boolean munging method 2016-02-16 11:46:01 +01:00
Thomas Gelf 88ffc6baf2 Icinga/DbObject: explizit destruction 2016-02-04 16:58:32 +01:00
Thomas Gelf c62b008df8 IcingaObject: allow mor control over JSON structure 2016-02-03 00:58:13 +01:00
Thomas Gelf ce44252f8e IcingaObject: return null for missing relations 2015-12-18 14:25:15 +01:00
Thomas Gelf 1cb47b6d32 IcingaObject: allow for null booleans 2015-12-18 14:23:49 +01:00
Thomas Gelf 313ac50f81 IcingaObject: allow to access relations by key 2015-12-17 20:32:15 +01:00
Thomas Gelf 91250cf0b9 ApiUser: add all tabs, tables, links 2015-12-17 14:58:43 +01:00
Thomas Gelf 922a6d25c0 IcingaObject: add resolve-cache 2015-12-16 14:32:53 +01:00
Thomas Gelf 7f558d1523 IcingaObject: more choices for toPlainObject 2015-12-10 18:41:09 +01:00
Thomas Gelf 75bbf9c7da IcingaObject: a few more hardcoded class names 2015-12-10 18:40:08 +01:00
Thomas Gelf d0359683cd IcingaObject: fix inheritance blacklist application 2015-12-10 17:56:02 +01:00
Thomas Gelf 39532d7173 IcingaObject: use missing ConfigurationError 2015-12-10 13:18:35 +01:00
Thomas Gelf fa65e9850b IcingaObject: new methods for plain and json handling 2015-12-10 13:04:34 +01:00
Thomas Gelf a0f0870566 IcingaObject: improve renderPropertyAsSeconds() 2015-12-10 12:58:47 +01:00
Thomas Gelf 91b486cc66 IcingaObject: add TODO for unhandled situation 2015-12-10 12:53:24 +01:00
Thomas Gelf 79748f0c4c IcingaObject: provide combined keys for imports 2015-12-10 12:11:54 +01:00
Thomas Gelf 5091db2268 IcingaObject: clean up zone rendering 2015-12-10 11:34:46 +01:00
Thomas Gelf 1116bc4331 IcingaZone: render endpoints 2015-12-10 11:27:28 +01:00
Thomas Gelf bac3969cdd IcingaObject: override key in renderRelationProperty 2015-12-09 15:05:31 +01:00
Johannes Meyer e8c90ebb6b IcingaObject: Fix that object IcingaHostGroup cannot be found in classByType() 2015-12-07 13:50:48 +01:00
Thomas Gelf 2164c1e2b9 Sync: allow to remove objects 2015-12-04 10:24:54 +01:00
Thomas Gelf f49f14376b IcingaObject: recognize argument modifications 2015-12-03 19:41:58 +01:00
Thomas Gelf 3373b67d44 IcingaObject: render 0 seconds as 0, not 0m 2015-12-03 18:05:10 +01:00
Thomas Gelf d8d12d38b4 IcingaObject: add new helper methods for seconds 2015-12-03 18:01:44 +01:00
Thomas Gelf 3656e8ed98 IcingaObject: generic relation render helper 2015-12-03 17:12:38 +01:00
Thomas Gelf 389fcf2fa6 IcingaObject: allow to unset relations 2015-12-03 15:09:49 +01:00
Thomas Gelf 039542c473 IcingaObject: provide plain object 2015-12-03 14:20:29 +01:00
Thomas Gelf bc449feeef IcingaObject: set related properties by name 2015-12-03 14:18:19 +01:00
Thomas Gelf dabc6de1da IcingaObject: add userspace filters 2015-12-02 04:04:19 +01:00
Thomas Gelf d5c20e6e53 IcingaObject: first simple toJson support 2015-12-02 03:08:57 +01:00
Thomas Gelf ed3624239b IcingaObject: allow to access arguments 2015-12-02 02:42:14 +01:00
Thomas Gelf 9413c8cdbd IcingaConfig: do not re-deploy external objects 2015-12-01 14:47:10 +01:00
Thomas Gelf 5287e58fea IcingaObject: fetch format information for fields 2015-11-14 00:21:42 +01:00
Thomas Gelf 280cd2b7b3 IcingaObject: add helper for booleans 2015-11-13 23:59:26 +01:00
Thomas Gelf d23149bf3e IcingaObject: prepare command object access 2015-11-06 09:49:05 +01:00
Thomas Gelf e833d7be76 IcingaObject: just a newline 2015-10-16 18:41:07 +02:00