Commit Graph

902 Commits

Author SHA1 Message Date
Thomas Gelf fd400977f2 IcingaObject: do not resolve imports when...
...resolving related objects
2017-08-26 16:17:07 +02:00
Thomas Gelf bab28b1755 IcingaService: force object_type=template when...
...loading a service by name

fixes #1094
2017-08-25 16:10:59 +02:00
Thomas Gelf f8445ca1ef IcingaObject: fix ApiUser preview rendering
fixes #1117
2017-08-25 15:03:12 +02:00
Thomas Gelf 1b160c6c35 IcingaObject: opt in for recursion
fixes #1118
2017-08-25 15:00:07 +02:00
Thomas Gelf 5450a00c78 IcingaService: handle use_agent=n by explicitly...
...rendering command_endpoint = null

fixes #921
fixes #1013
2017-08-25 08:50:38 +02:00
Thomas Gelf f55a672d48 IcingaObject: accept 'disable' on merge()
fixes #1104
2017-08-24 16:35:09 +02:00
Thomas Gelf 15c26b97db IcingaObject: fix "origins" names when showing...
...inherited properties

fixes #1093
2017-08-22 17:47:27 +02:00
Thomas Gelf 69607ada3c SyncRule: switch priority order, migrate DB
fixes #1077
2017-08-22 17:10:49 +02:00
Thomas Gelf 2109d138d5 IcingaTimeperiodRangeForm: delete through the...
IcingaTimePeriod and it's Ranges

fixes #1089
2017-08-21 22:41:37 +02:00
Thomas Gelf a092c5d79e IcingaObjectImports: fix check for modifications
refs #1062
2017-08-21 21:36:21 +02:00
Thomas Gelf 6ba0e8e924 IcingaObject: give unstored import names 2017-08-21 20:33:00 +02:00
Thomas Gelf 0bd2a328ed GroupMembershipResolver: do not fill objects...
...cache when not being told so. Also, fix query order/operator to ensure an
AND is being used.
2017-08-21 08:12:04 +02:00
Thomas Gelf 9adeb65f0c GroupMembershipResolver: support calls from onStore 2017-08-21 08:10:47 +02:00
Thomas Gelf 70b3e966da ImportSource: flip fetch order to stay close to...
...former one
2017-08-20 16:02:47 +02:00
Thomas Gelf 1999de2707 ImportRowModifier: fix class instantiation 2017-08-20 15:17:22 +02:00
Thomas Gelf 3c4d4de633 ImportRowModifier: also use PriorityColumn helper 2017-08-20 15:14:37 +02:00
Thomas Gelf 4c7b940705 PriorityColumn: add new object extension, use...
...it for SyncProperty
2017-08-20 15:04:06 +02:00
Thomas Gelf b21ba5dc54 IcingaHost: add helper methods for Sets, Services 2017-08-18 16:42:56 +02:00
Thomas Gelf bbcdf22466 ImportSource: better IDE hints 2017-08-18 10:48:58 +02:00
Thomas Gelf b364165110 IcingaObject: fix plain export with chosen...
...properties, use new template resolving repository everywhere
2017-08-16 08:11:08 +02:00
Thomas Gelf a495a6ca39 IcingaObjectImports: use new repository for lookup 2017-08-13 23:18:54 +02:00
Thomas Gelf 1356733332 IcingaHost: make sure that an Endpoint has a...
...Db connection
2017-08-11 17:15:08 +02:00
Thomas Gelf 13f33a842b IcingaTemplateResolver: improve benchmark message 2017-08-11 10:07:36 +02:00
Thomas Gelf 496be4fbc8 Sync: respect 'replace' policy on vars...
...with rule policy being set to 'merge'

fixes #864
2017-08-03 10:51:13 +02:00
Thomas Gelf 59d6291fcf PrefetchCache, IcingaObject: speed up import list
...greatly improves REST API performance
2017-08-01 12:48:29 +02:00
Thomas Gelf 118dddf93a Caches: add Benchmark, some IDE hints for CVar 2017-07-31 16:12:56 +02:00
Thomas Gelf b2736e1776 ObjectForms: fix weird issues with 'add' forms 2017-07-28 18:46:11 +02:00
Thomas Gelf d92492d5a1 DirectorActivityLog: use IP when unauthenticated
This applies mostly to self service API
2017-07-21 12:06:36 +02:00
Thomas Gelf cca4092151 Deployment: move logic to dedicated classes
Extended DirectorDeploymentLog, new DeploymentInfo class
2017-07-20 08:22:31 +02:00
Thomas Gelf 29d93512e6 Objects/Icinga(Host|Service): fix typo 2017-07-18 13:36:05 +02:00
Thomas Gelf ea02d0b23c ImportRowModifier: add missing property 2017-07-14 14:56:22 +02:00
Thomas Gelf 2cdba2aa65 Import and Sync: add description fields
fixes #1018
2017-07-14 14:27:05 +02:00
Thomas Gelf 05d8e5bb00 Datalist: Allow to restrict entries by role
fixes #1012
2017-07-14 13:21:42 +02:00
Thomas Gelf 2ca7f26b49 SelfService: fix booleans, add new options
refs #486
2017-07-14 13:21:42 +02:00
Thomas Gelf 4a0e8df2f2 Host,Service: add check_timeout property
fixes #546
2017-07-14 13:21:42 +02:00
Thomas Gelf 27a51ac34c SelfService: implement powershell-parameters
fixes #486
2017-07-14 13:21:42 +02:00
Thomas Gelf 8a8540bc3e IcingaHost: generate API keys 2017-07-14 13:21:42 +02:00
Thomas Gelf 0ec5ec8197 TemplateChoice: delegate storing members to...
...the object, use a single form
2017-07-14 13:21:42 +02:00
Thomas Gelf 126dd29ecc IcingaObject: work around a resolver issue 2017-07-14 13:21:42 +02:00
Thomas Gelf 6aab867682 GroupMembershipResolver: ignore unstored objects
Currently affects tests only
2017-07-14 13:21:42 +02:00
Thomas Gelf 67d802d39a Host,Service: hide choice property 2017-07-14 13:21:42 +02:00
Thomas Gelf a9a2295c8a IcingaObject, Host/Service: add supportsChoices() 2017-07-14 13:21:42 +02:00
Thomas Gelf 2f79920a18 TemplateChoice: small fixes, forms 2017-07-14 13:21:42 +02:00
Thomas Gelf 0b89c222eb IcingaTemplateChoice: take over code generating...
...the choice form element
2017-07-14 13:21:42 +02:00
Thomas Gelf f7cbe4a3be IcingaHost: reference to choices 2017-07-14 13:21:42 +02:00
Thomas Gelf 68a22590a8 IcingaTemplateResolver: just a newline 2017-07-14 13:21:42 +02:00
Thomas Gelf cef947e6fc IcingaTemplateChoice: new base object, host/service 2017-07-14 13:21:42 +02:00
Thomas Gelf 4f3f4e7f52 IcingaTemplateResolver: implement a reverse index 2017-07-14 13:21:42 +02:00
Thomas Gelf ac815b14b6 GroupMembershipResolver: fix SQL table alias 2017-07-14 13:21:42 +02:00
Thomas Gelf 18c0ce3c4f IcingaObject: allow to prefetch related object...
...types
2017-07-14 13:21:42 +02:00
Thomas Gelf 875627ead7 ObjectApplyMatches: refactor host-only code
refs #897
2017-07-14 13:21:42 +02:00
Thomas Gelf 526492580c GroupMembershipResolver: refactor from HostGroup
This is now a more generic implementation and can serve multiple object types

refs #897
2017-07-14 13:21:42 +02:00
Thomas Gelf aa3a8987ba HostGroupMembershipResolver: handle single groups
Formerly this worked only with apply rules, now this also respects single host/
group assignments.

fixes #832
2017-07-14 13:21:42 +02:00
Thomas Gelf 5ae7997f9d Sync: tune membership resolver
Also fixes error on host creation

refs #832
2017-07-14 13:21:42 +02:00
Thomas Gelf 45c93b3445 HostGroupMembershipResolver: first implementation
refs #832
2017-07-14 13:21:42 +02:00
Thomas Gelf 47bfb2d31d IcingaObjectImports: add meaningful error...
...would have saved me some troubleshooting time
2017-07-14 13:21:42 +02:00
Thomas Gelf 2237272b6b SyncRule: do not allow to sync unless some...
...properties have been defined.

fixes #383
2017-05-03 11:24:22 +02:00
Thomas Gelf f91dd5fa0e PropertyModifierCombine: implementation, tests...
...and related changes with some documentation

fixes #922
2017-05-03 10:39:49 +02:00
Thomas Gelf 6234648a1f IcingaEndpoint: work on Zone, not on the id
fixes #878
2017-03-29 12:52:54 +02:00
Thomas Gelf 58ba7f9f86 IcingaEndpoint: deploy to where it's Zone is...
...to be found

refs #463
2017-03-29 11:41:13 +02:00
Thomas Gelf 3714d2567b IcingaEndpoint: fix indentation 2017-03-28 20:56:10 +02:00
Thomas Gelf 9f2070dced IcingaEndpoint: provide getRestApiClient() helper
fixes #877
2017-03-28 18:08:27 +02:00
Thomas Gelf afce89dc98 DirectorActivityLog: log username and ip
Logged values are now JSON-encoded

fixes #849
2017-03-15 12:02:08 +01:00
Thomas Gelf cb9fff90ef IcingaObject: add new static helper, expose...
...existing one

refs #842
2017-03-13 22:03:02 +01:00
Thomas Gelf bff76dad8e HostApplyMatches: fix matching for "contains"
fixes  #803
2017-03-03 09:41:25 +01:00
Thomas Gelf bfde75a0a2 IcingaServiceSet: import DirectorOverrideTemplate
...when rendering services belonging to a set for a single host

fixes #776
2017-02-08 10:04:47 +01:00
Thomas Gelf d4b769b8d7 IcingaHost: do not render Endpoint and Zone...
...for disabled hosts

fixes #741
2017-01-24 09:45:32 +01:00
Thomas Gelf c75b4fc6b0 DirectorDatafield: phpcs -> SpacingBeforeClose 2017-01-19 13:58:07 +01:00
Thomas Gelf b08be6ecc0 DirectorDatafield: do not fail on missing command
refs #712
refs #731
2017-01-19 13:55:59 +01:00
Thomas Gelf 164b5bd93d Fields: fix inheriting fields from commands
refs #712
refs #731
2017-01-19 13:50:50 +01:00
Thomas Gelf b7a10d296c phpcs: mostly new PSR-2 SpacingAfter/Before checks 2017-01-13 20:54:52 +01:00
Thomas Gelf 9e771f2d5a Fix phpcs complaints 2017-01-13 19:47:54 +01:00
Thomas Gelf 792e58abae DirectorDatafield: just newlines 2017-01-13 16:39:35 +01:00
Thomas Gelf f874a79bb4 IcingaObjectFieldLoader: no mandatory field on cmd
fixes #12644
2017-01-13 16:05:34 +01:00
Thomas Gelf 40ff51e487 IcingaTemplateResolver: separate concerns...
...and make helper accessible
2017-01-13 15:20:04 +01:00
Thomas Gelf 0a9ed6ff39 HostApplyMatches: allow usage for single hosts
refs #13849
2017-01-02 10:15:55 +01:00
Thomas Gelf a9874879dd TemplateResolver: add new methods for stricter...
...path resolution. Also ships related tests

refs #13839
2016-12-30 10:15:25 +01:00
Thomas Gelf efe6fd35ab IcingaObject: remove code loading fields...
...we now have a dedicated class for this
2016-12-28 12:44:51 +01:00
Thomas Gelf d4736f4a41 IcingaObject: better way to get resolved props? 2016-12-16 13:21:48 +01:00
Thomas Gelf 241404d9ba HostApplyMatches: do not skip defaults
May avoid errors when working with properties defined only on some of your
hosts
2016-12-16 13:19:02 +01:00
Thomas Gelf 949d6c9b54 IcingaCommandField: one more implementation 2016-12-14 16:36:33 +01:00
Thomas Gelf 5847913987 Fields: add a possibility to show fields based...
...on filter rules
2016-12-14 16:36:33 +01:00
Thomas Gelf 4c1ab4dae6 php: just some comments and cleanup 2016-12-13 18:25:14 +01:00
Thomas Gelf 04f9b360da DirectorDataField: preserve settings in fromDbRow
refs #13259
2016-12-13 17:14:58 +01:00
Thomas Gelf 58a64cee78 SyncRule: initialize hasServiceSet 2016-12-13 13:51:41 +01:00
Thomas Gelf f1a61e2557 ServiceGroup: allow to assign them to services...
...via assignment rules

fixes #13415
2016-12-13 09:51:52 +01:00
Thomas Gelf 1acf332f6b DirectorDataField: whether a field is required...
...is a setting
2016-12-07 09:43:16 +01:00
Thomas Gelf 2ea573e338 IcingaVar: use new CustomVar helpers 2016-12-07 08:29:20 +01:00
Thomas Gelf 7dd2ac6b83 IcingaService: enum service vars, not host vars
fixes #13359
2016-11-30 09:33:29 +01:00
Thomas Gelf 1e9e15278a Merge branch 'bugfix/service-set-contraints-13309' 2016-11-30 08:16:47 +01:00
Markus Frosch 4a838ca277 IcingaHostGroup(Legacy): Load zones prefetched
refs #13049
2016-11-30 08:12:27 +01:00
Markus Frosch c2734fd4d4 IcingaHostGroup(Legacy): Render assigned groups to all zones
So we still can support hosts with direct groups.

refs #13049
2016-11-30 08:12:27 +01:00
Markus Frosch aaeca533fc IcingaConfig/IcingaObject(Legacy): Render dummy notification settings
So we avoid warnings about nothing configured.

refs #13049
2016-11-30 08:12:27 +01:00
Markus Frosch 3a8cad2486 IcingaServiceSet: Check if object_name is unique for templates
refs #13309
2016-11-28 15:32:41 +01:00
Thomas Gelf d5131f7fac Arguments: always render += instead of =
This allows to extend existing arguments

fixes #12941
2016-11-15 17:57:02 +01:00
Markus Frosch 4e5dfb097e IcingaService(Legacy): Fix duplicated rendering of apply
refs #13049
2016-11-15 10:52:03 +01:00
Markus Frosch b40cfd5f05 IcingaHostGroup(Legacy): Fix member rendering with correct attribute
refs #13049
2016-11-14 15:36:55 +01:00
Markus Frosch 5ee911ef7c IcingaObject(Legacy): Fix event_handler rendering
refs #13049
2016-11-14 15:32:14 +01:00
Markus Frosch d4c3be0bf5 IcingaHostGroup|IcingaService(Set): Fix legacy config file extension
refs #13049
2016-11-14 15:28:52 +01:00
Thomas Gelf 913d934762 IcingaObject: introduce getSingleResolvedProperty()
Motivation: getResolvedProperty() has the effect that objects will fully
resolve all inherited properties, vars and fields. This is overkill in
situations where only a few resolves properties are needed and has quite
an influence on overall rendering performance.

Over time we might completely fade out that part of our resolving logic
as it predates current cache implementations. Meanwhile, we keep two
methods for two (internal) purposes.
2016-11-14 13:25:26 +01:00
Markus Frosch 116016bbfc HostApplyMatches: Raise memory_limit for bigger caches
refs #13049
2016-11-11 11:49:37 +01:00
Markus Frosch a8a9278806 IcingaHostGroup(legacy): Render assign to a hostgroup_member list
Supporting active-passive and masterless, by writing multiple versions of the object.

refs #13049
2016-11-11 11:49:37 +01:00
Markus Frosch 31520a7d21 IcingaService: Don't even try to render service_set related services
refs #12891
2016-11-11 11:49:37 +01:00
Markus Frosch 1a51e55563 Merge branch 'feature/better-import-table' 2016-11-11 11:30:56 +01:00
Markus Frosch 8b5689545c Sync(Rule): Allow to sync services of a ServiceSet
This extends the destination key pattern for Sync.

refs #12891
2016-11-11 11:06:01 +01:00
Markus Frosch ddd59ab274 IcingaServiceSet: A simple key identifies a ServiceSet (template)
refs #12891
2016-11-11 11:06:01 +01:00
Markus Frosch 39538a3f33 SyncRule: Support hasCombinedKey for serviceSet
refs #12891
2016-11-11 10:44:22 +01:00
Thomas Gelf eb1f1a2c33 doc/testing: fix syntax 2016-11-10 20:03:29 +01:00
Markus Frosch b4cb6f8ccb ImportRun: Add access to ImportSource 2016-11-09 14:20:35 +01:00
Thomas Gelf 5bae792901 IcingaTemplateResolver: ignore multicolumn key...
...objects on refresh (for now)

fixes #13081
2016-11-08 16:27:44 +01:00
Thomas Gelf 1a311bc9a9 IcingaServiceSet: ignore empty sets when rendering
fixes #13079
2016-11-08 16:23:16 +01:00
Markus Frosch e116e36051 IcingaService(legacy): Test for not null
refs #13049
2016-11-07 14:12:30 +01:00
Markus Frosch 314b0675ee HostApplyMatches: Prefetch Hostgroups for resolving
refs #13049
2016-11-07 14:12:06 +01:00
Thomas Gelf 068d38fddc IcingaService(v1): render single service apply...
...fully resolved to all matching hosts respecting their rendering zone
2016-11-07 13:34:20 +01:00
Thomas Gelf 7e749da982 IcingaServiceSet: implement target zone for...
...resolved v1 apply rules
2016-11-07 12:42:27 +01:00
Thomas Gelf 2c1f745c4e IcingaService: render service_description for v1 2016-11-07 11:38:02 +01:00
Thomas Gelf 482f48ee1e IcingaServiceSet: cleanup, shift responsability...
...for service_set_id property cleanup

refs #13049
2016-11-04 20:31:01 +01:00
Thomas Gelf ba7d350a8c HostApplyMatches: resolve services and -sets...
...for Icinga v1.x

refs #13049
2016-11-04 19:56:56 +01:00
Thomas Gelf 87fe623d11 DbObject: help IDE, render newline after a...
...disabled v1 object
2016-11-04 19:52:21 +01:00
Markus Frosch 7fc0da6e21 LegacyDeploymentApi: Add deployment Api for Icinga 1.x
refs #13049
2016-11-04 16:12:33 +01:00
Markus Frosch 003a100b9c IcingaConfig(Legacy): Add deployment mode for Icinga 1 config
refs #13049
2016-11-04 10:28:11 +01:00
Thomas Gelf a656ca4067 IcingaService: correctly prefix host properties
fixes #13040
2016-11-03 20:02:51 +01:00
Thomas Gelf ef9ef52124 IcingaService: provide assignment properties
fixes #12731
fixes #13038
fixes #12073
2016-11-03 16:35:27 +01:00
Markus Frosch 199a46abcb IcingaObject(Legacy): Render check_command when inherited, but ARGn is set
refs #12919
2016-11-03 14:16:07 +01:00
Markus Frosch 1d7cfa343e IcingaHost(Legacy): Render alias with renderLegacyCustomExtensions
refs #12919
2016-11-03 13:46:16 +01:00
Markus Frosch 6b9d23cdd5 IcingaObject(legacy): Render check_command with ARGn from customvars
refs #12919
2016-11-03 13:41:44 +01:00
Markus Frosch b9e4162635 IcingaObject(legacy): Fix alignLegacyProperties for long attributes
refs #12919
2016-11-03 13:41:44 +01:00
Markus Frosch 3f53285566 IcingaObjectMultiRelations(Legacy): add toLegacyConfigString
refs #12919
2016-11-03 13:41:44 +01:00
Markus Frosch a804874a54 IcingaConfigRenderer(Legacy): Update classes for interface change
refs #12919
2016-11-03 13:41:44 +01:00
Markus Frosch 1502dd9c90 IcingaObject(Legacy): Render display_name as alias
With the execption of Host and Service.

refs #12919
2016-11-03 13:41:44 +01:00
Markus Frosch f2ff967b07 IcingaTimeperiodRanges(Legacy): Implement toLegacyConfigString
refs #12919
2016-11-03 13:41:44 +01:00
Markus Frosch ab7d0fb085 IcingaObject(Legacy): Render legacy customvars
refs #12919
2016-11-03 13:41:44 +01:00
Markus Frosch 1e70cface0 IcingaObject(Legacy): Render directly added groups
refs #12919
2016-11-03 13:41:44 +01:00
Markus Frosch a8179507dc IcingaObject(Legacy): Make getLegacyObjectType public
refs #12919
2016-11-03 13:41:44 +01:00
Markus Frosch ffa5da86c9 IcingaCommand(Legacy): Fix type and render command_line
refs #12919
2016-11-03 13:41:44 +01:00
Markus Frosch 1cedc64c5a IcingaObject(Legacy): Properly comment a disabled object
refs #12919
2016-11-03 13:41:44 +01:00
Markus Frosch a2151fd9d1 IcingaObject(Legacy): Add getLegacyObjectType function
So the type rendered to the object header can get overwritten.

refs #12919
2016-11-03 13:41:44 +01:00
Markus Frosch 802b923df6 IcingaConfig: Add v1-masterless config format
Do not render a passive checkable to the master zone then.

refs #12919
2016-11-03 13:41:44 +01:00
Markus Frosch 31a321e13e IcingaObject(legacy): Add flag to render only supported objects
refs #12919
2016-11-03 13:41:44 +01:00
Markus Frosch 2e2f4739c7 IcingaObject(legacy): Only render passive objects for checkables
Also simplify renderToLegacyConfig.

refs #12919
2016-11-03 13:41:44 +01:00
Thomas Gelf 468a2719a7 DirectorActivityLog: optionally log to file/syslog
fixes #12976
2016-11-02 18:40:43 +01:00
Thomas Gelf ee0def7d2b Lots of files: make IDE users happy 2016-11-01 18:28:36 +01:00
Markus Frosch 2b227a356b IcingaObjectGroups: Respect PrefetchCache 2016-10-31 17:21:21 +01:00
Markus Frosch 672a45b26e IcingaObject: loadAllByType should respect PrefetchCache 2016-10-31 17:21:21 +01:00
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 22802114ac IcingaService: do not disable services twice
fixes #13017
2016-10-31 12:36:45 +00:00
Thomas Gelf 78903553e9 IcingaService: disable services belonging to a...
...single disabled host

fixes #12049
2016-10-29 22:06:52 +00:00
Thomas Gelf a4ef711ef0 SyncProperty: simplify code and form
fixes #12700
2016-10-29 21:25:42 +00:00
Thomas Gelf d2f359e3e3 UserGroup: do not provide assign_filter property
fixes #13007
2016-10-28 23:29:33 +00:00
Thomas Gelf 5fc9aabd3e ImportSource: fix syntax error 2016-10-27 19:47:02 +00:00
Thomas Gelf c10ad0e3a2 ImportSource: allow to transfer nested keys 2016-10-27 19:01:49 +00:00
Thomas Gelf 66e5158ccc Dashboard: replace it with a modular one
fixes #12997
2016-10-27 17:58:31 +00: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 f09560a89e IcingaServiceSet: simplify code 2016-10-25 23:12:23 +00:00
Thomas Gelf 7f34e4bdf3 IcingaServiceSet: improve work with imports 2016-10-25 23:12:23 +00:00
Thomas Gelf 354d12946a IcingaServiceSet: render custom vars 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 6a45d9507d IcingaServiceSet: remove legacy resolving methods
They have been used once we had no imports
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 ad7c5bc997 IcingaHost: fix tests 2016-10-25 00:30:12 +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 6e83a4fd5b IcingaObjectGroup: provide groups for assign rules 2016-10-24 21:55:02 +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 88a741a8d0 IcingaService: introduce assign_filter property 2016-10-22 07:02:09 +00:00
Thomas Gelf 6ed24f93da IcingaObject: render assign_filter property 2016-10-22 07:02:09 +00:00
Thomas Gelf 9349ba0f2a FormDataFilter: new implementation for assignments
First prototype
2016-10-22 07:02:09 +00:00
Thomas Gelf 9ba6116091 IcingaService: support and test speciall object...
...name variants with apply for
2016-10-22 06:54:53 +00:00
Thomas Gelf 1f660b514a IcingaServiceForm: allow empty name for apply rule 2016-10-22 06:09:10 +00:00
Thomas Gelf 5b4e7509f4 Just a couple of phpcs complaints fixed 2016-10-22 06:08:52 +00:00
Corentin Ardeois 3e30d34098 Use `config` variable in apply for rules
* use `config` instead of `value` in apply for rules
* update documentation

refs #11976
2016-10-22 06:07:57 +00:00
Corentin Ardeois e7bd4343b5 Add support for Apply for rules in services
Apply for rules are defined through `apply_for` property
Only Array custom variables will be eligible in apply_for dropdown.

API Example:
```bash
 ./director-curl POST director/service?name=my_service '{"apply_for": "for (checked_tcp_port in host.vars.checked_tcp_ports)" }'
 ```

 Will render as:
 ```
  apply Service "my_service" for (checked_tcp_port in host.vars.checked_tcp_ports) {
      ...
  }
  ```
Feature: https://dev.icinga.org/issues/11976

Depends-On: https://github.com/Icinga/icingaweb2-module-director/pull/20
refs #11976
2016-10-22 06:00:54 +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 a9b3b2f47a IcingaObjectImports: fix compatibility issue
fixes #12951
2016-10-20 19:17:52 +00:00
Thomas Gelf fc2890d865 IcingaObject: new helper method for single...
...resolved custom vars
2016-10-20 01:37:23 +00:00
Thomas Gelf 76936c7efb IcingaTemplateResolver: fix resolver for unstored...
...objects

refs #12938
2016-10-20 01:32:52 +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 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