Commit Graph

573 Commits

Author SHA1 Message Date
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 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
Thomas Gelf cf4dccc817 Notification: add fields support
fixes #12642
2016-10-13 14:34:25 +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 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 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
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 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 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 e9a570e96d Sync: fix sync & purge for datalistEntry objects 2016-10-05 17:45:25 +00:00
Marc DeTrano 348cb1aa63 IcingaCommandArgument: allow expressions in set_if
fixes #12153
2016-09-23 15:18:58 +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 407a387dab DirectorDatalistEntry: add shouldBeRemoved...
...fixes sync for DatalistEntries

fixes #12715
2016-09-12 21:41:15 +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 2c7c54a15d IcingaConfig: improve override constant usage 2016-09-08 20:24:54 +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 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 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 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 a4813e8046 PropertyModifierHook: allow modifiers to deal...
...with arrays

refs #12236
2016-08-30 07:53:10 +00:00
Thomas Gelf 58441b88ad IcingaService: use string helper for assignments 2016-08-27 08:46:46 +00:00
Thomas Gelf b6d59b9aca IcingaCommand: fix skip_key handling
refs #11554
refs #11918
2016-08-26 07:00:45 +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 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
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 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
Markus Frosch 73b1863e1a SyncRule: Allow disabling purge 2016-07-26 14:03:52 +02:00
Thomas Gelf 439757d464 IcingaHost: introduce API keys 2016-07-26 09:52:55 +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 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 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 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 354392d216 ImportRun: allow to fetch specific keys 2016-07-13 21:37:31 +02:00
Thomas Gelf 70c4d06a42 Sync: move key-related logic to SyncRule 2016-07-13 19:59:04 +02:00
Thomas Gelf d4a680a6b9 ImportRun: take over specific logic from Db 2016-07-13 10:19:03 +02:00
Thomas Gelf 1f5f34cea5 IcingaObjectGroups,Imports: add some manual GC...
...to work around PHP issues
2016-06-30 09:34:27 +02:00
Thomas Gelf 9210441178 DirectorActivityLog: fix loadLatest() 2016-06-28 12:11:13 +02:00
Thomas Gelf 820d6ce197 ImportSource: fix hasChanges variable 2016-06-28 10:10:15 +02:00
Thomas Gelf 38fec2c3d5 ImportSource: set last_attempt on every attempt 2016-06-26 16:00:43 +02:00
Thomas Gelf afaaf5760d SyncRule: proxy expected modifications 2016-06-25 23:02:36 +02:00
Thomas Gelf 9387b92da1 SyncRule: introduce purge strategies 2016-06-24 17:07:00 +02:00
Thomas Gelf 39cf0a5fb8 ImportSource: there is no end_time in ImportRun 2016-06-24 17:01:47 +02:00
Thomas Gelf 20197e1c9c ImportRun: fix prepared query 2016-06-24 17:00:44 +02:00
Thomas Gelf 57c760bca9 ImportSource: add helper methods able to fetch...
...the latest run or the latest run before a specific timestamp as an object
2016-06-24 11:48:54 +02:00
Thomas Gelf 9ae70a4377 ImportRun: provide historic run as a standalone...
...object
2016-06-24 11:47:45 +02:00
Thomas Gelf a9b7861473 SyncRule: provide current runId 2016-06-24 08:36:12 +02:00
Thomas Gelf 516c519af9 SyncRule: add various helper methods 2016-06-23 23:14:12 +02:00
Thomas Gelf 676b5b5efe SyncRule: fix misleading error when running...
...as a Job
2016-06-23 22:36:38 +02:00
Thomas Gelf c9ef9fe91a IcingaCommand: fix EventCommand header
fixes #12010
2016-06-22 23:58:09 +02:00
Thomas Gelf 8ac5d954e9 DirectorJob: fix timeperiod handling 2016-06-17 14:23:03 +02:00
Thomas Gelf 6665d6d80f ConfigJob: fix dealing with currently active config 2016-06-17 13:20:15 +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 d042f8d599 IcingaObjectImports: fix adding objects 2016-06-16 21:20:11 +02:00
Thomas Gelf 53872a4e76 DirectorJob: really run jobs 2016-06-16 14:25:35 +02:00
Thomas Gelf 3ad56d3a98 DirectorDeploymentLog: allow to fetch config...
...checksum for a specific stage name. Implemented getConfigChecksumForStageName
for this.
2016-06-16 14:19:45 +02:00
Thomas Gelf 2eeafbb5d1 IcingaNotification: it's "interval"...
...db field is notification_interval as we avoid reserved wowrds in our schema

fixes #11938
2016-06-15 08:53:04 +02:00
Thomas Gelf 1370ec7312 IcingaNotification: use ConfigurationError 2016-06-13 17:42:02 +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 e3c08c242b IcingaTemplateResolver: initial import
Should help to accomplish various template resolving tasks
2016-06-12 11:19:06 +02:00
Thomas Gelf bbdf981b99 IcingaNotification: render "to" after object name
fixes #11924
2016-06-10 12:43:58 +02:00
Thomas Gelf 3b8b41c3f6 IcingaCommand: allow lowercase drives (e.g. c:)
fixes #11906
2016-06-11 00:41:35 +02:00
Thomas Gelf 0b92ca922f IcingaObject: render disabled objects as comments
fixes #11922
2016-06-11 00:30:28 +02:00
Thomas Gelf cc9f5037f4 IcingaNotificationForm: enforce & render apply to
fixes #11895
2016-06-09 23:49:02 +02:00
Thomas Gelf 7dfadf1951 IcingaHost: fix parent zone for agent zone in a...
...satellite zone
2016-05-26 01:36:20 +02:00
Thomas Gelf cb825b5b94 IcingaObject: fix resolveProperty in combination...
...with lazy-set properties
2016-05-26 01:35:12 +02:00
Thomas Gelf 984f28bfdc DirectorActivityLog: allow to loadLatest() 2016-05-25 15:23:57 +02:00
Thomas Gelf e79e123e19 DirectorDeploymentLog: add helper methods...
...dealing with related configs
2016-05-25 15:04:00 +02:00
Thomas Gelf fa978902c7 DirectorJob: add run helper, support timeperiods 2016-05-25 12:28:07 +02:00
Thomas Gelf 44e2c73f79 IcingaNotification: add apply_to column 2016-05-24 17:42:17 +02:00
Thomas Gelf 4291f6425e IcingaService: fake isApplyRule for host templates 2016-05-20 15:21:29 +02:00
Thomas Gelf b3a1d54870 IcingaObject: fix c&p error, variable name 2016-05-20 09:23:48 +02:00
Thomas Gelf 9eb9d65bef IcingaHost: pass Config to zone lookup 2016-05-20 08:51:57 +02:00
Thomas Gelf 1c79807500 IcingaObjectGroups: keep id when cloning groups
Before this fix we lost autoincrement ids on clone, resulting in
ill-constructed queries on deletion

fixes #11508
2016-05-20 08:47:07 +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 9b731641c4 IcingaCommand: correctly render notification cmds 2016-05-19 17:04:28 +02:00
Markus Frosch 839527a2e1 IcingaObjectImports: set modified on clear
Imports could not have been set empty because of this
2016-05-19 16:34:07 +02:00
Thomas Gelf 480e80709a IcingaService: simplify command endpoint rendering
host.name doesn't work as of #11786. host_name should be fine for
templates, objects and apply rules. I therefore also dropped the
exception for service objects with use_agent and host_id.
2016-05-19 16:06:06 +02:00
Thomas Gelf 2007dee6c0 IcingaCommandArgument: add replaceWith method 2016-05-19 15:09:08 +02:00
Thomas Gelf 2ae326ab8c IcingaTimePeriod: add and test isActive() method 2016-05-18 21:21:53 +02:00
Thomas Gelf 4222261434 IcingaCommand: fix windows absolute path detection
Also add a couple of new related tests

fixes #11550
2016-05-13 16:01:47 +02:00
Thomas Gelf bea8988df1 IcingaService: fix and simplify command_endpoint 2016-05-10 21:13:07 +02:00
Thomas Gelf 576d62da26 IcingaObject: use resolved zone for apply/tpl 2016-05-10 20:23:45 +02:00
Thomas Gelf d84369ce77 IcingaArgument: enforce command object id on set 2016-05-02 11:10:47 +02:00
Thomas Gelf 2209607016 ImportSource: set a default state, according to db 2016-05-02 10:44:12 +02:00
Thomas Gelf f7bd50838d Objects: delegate rendering zone for groups, users 2016-05-02 10:26:41 +02:00
Thomas Gelf 1158409eeb IcingaObject: fix rendering target and tests 2016-05-02 10:23:32 +02:00
Thomas Gelf bd937e57c5 IcingaZone: delegate rendering responsibility 2016-05-02 10:22:22 +02:00
Thomas Gelf b6b15ce7e3 IcingaCommand: prefer to be rendered to global 2016-04-23 14:08:25 +02:00
Thomas Gelf a8904758f3 ImportSource: refresh, provide helpers 2016-04-22 15:31:02 +02:00
Thomas Gelf cf1e5d88a8 DirectorJob: fix settings, add state helpers 2016-04-22 14:30:52 +02:00
Thomas Gelf e88d490021 SyncRule: add helper allowing to apply changes 2016-04-22 13:40:05 +02:00
Thomas Gelf 7265a5796b SyncRule: add checkForChanges helper 2016-04-22 12:10:48 +02:00
Thomas Gelf c92d1caeb4 SyncRule: adjust to fit latest schema changes 2016-04-22 11:12:29 +02:00
Thomas Gelf ee041b5aac DirectorJob: add job object 2016-04-22 11:12:29 +02:00
Thomas Gelf 8c02b1e6c5 IcingaObject: fix multi-relation rendering order 2016-04-22 11:12:29 +02:00
Thomas Gelf eb25898a63 IcingaHost: make render target checks green 2016-04-20 10:27:32 +02:00
Thomas Gelf d3b5504e47 IcingaArguments: remove forgotten var_dump 2016-04-20 10:21:16 +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 3e52585538 IcingaObjectAssignment: render numbers as numbers 2016-04-06 12:11:55 +02:00
Thomas Gelf f7f73402d4 IcingaObjectAssignments: persist 'ignore' rules 2016-04-06 11:39:12 +02:00
Thomas Gelf 36c4e51aa0 IcingaObject: fix argument retrieval 2016-04-03 21:27:49 +02:00
Thomas Gelf 5854e56419 IcingaArguments: avoid false-positives when...
...detecting modification
2016-04-02 20:21:06 +02:00
Thomas Gelf 9d4ee40575 IcingaObjects: add missing relations 2016-04-01 17:23:23 +02:00
Thomas Gelf 65b048d78b IcingaCommand: allow underscore in constant names 2016-04-01 14:08:27 +02:00
Thomas Gelf 03d739170c IcingaCommand: zone is a relation 2016-04-01 14:08:11 +02:00