Markus Frosch
1a02543321
Sync: Use PrefetchCache
2016-10-31 17:21:21 +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
Markus Frosch
b04e5f401f
Sync: Allow importing / syncing templates
...
Purging a used template will obviously fail.
refs #11778
2016-10-31 10:55:21 +01:00
Thomas Gelf
cbf1a30a26
Kickstart: import notification commands
...
fixes #12028
2016-10-30 12:35:12 +00:00
Thomas Gelf
f41d453448
DeployConfigForm: provide link-like form for...
...
...deployments
fixes #11854
2016-10-30 10:52:14 +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
78b01091eb
DirectorObjectForm: deal with subform values
2016-10-27 19:39:40 +00:00
Thomas Gelf
5921f4773f
DbObject: one more protection when looking up...
...
...prefetched objects by name
2016-10-27 19:34:11 +00:00
Thomas Gelf
c10ad0e3a2
ImportSource: allow to transfer nested keys
2016-10-27 19:01:49 +00:00
Thomas Gelf
27634fe722
QuickBaseForm: allow for multiple module-related...
...
...prefix paths
2016-10-27 18:17:21 +00:00
Thomas Gelf
66e5158ccc
Dashboard: replace it with a modular one
...
fixes #12997
2016-10-27 17:58:31 +00:00
Thomas Gelf
2b094067a5
QuickBaseForm: add missing use statement
2016-10-27 17:33:35 +00:00
Thomas Gelf
e59e2d0c2c
Merge remote-tracking branch 'origin/master'
2016-10-27 16:35:19 +00:00
Thomas Gelf
c91084f0db
ObjectsController: hide sets for now...
...
...didn't want to push that early :p
2016-10-27 16:33:47 +00:00
Thomas Gelf
bab23c8f9b
Form: split constructor to make tests easier
2016-10-27 16:31:04 +00:00
Markus Frosch
a6ad95848b
PlainObjectRenderer: Render assoc arrays as Hashes
...
Previous handling completely ignored any keys.
2016-10-27 15:54:13 +02:00
Markus Frosch
5199dc7826
Sync: Tell the user which object caused an Exception
2016-10-27 15:47:02 +02: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
1724a78da5
DirectorObjectForm: do not set null values
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
c41009992e
IcingaObjectFieldLoader: allow to combine objects
2016-10-25 23:12:23 +00:00
Thomas Gelf
f87e80989d
DirectorObjectForm: persist the field loader
2016-10-25 23:12:23 +00:00
Thomas Gelf
0db659cc4e
IcingaObjectFieldLoader: check for fields support
2016-10-25 23:12:23 +00:00
Thomas Gelf
00f21f838b
DirectorObjectForm: simplify inhertance code
2016-10-25 23:12:23 +00:00
Thomas Gelf
6bb74966d5
CustomVariables: add _set table to delete/countAll
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
24478ede12
DataFilter: json_en/decode when passing to form
2016-10-23 03:14:52 +00:00
Thomas Gelf
88a741a8d0
IcingaService: introduce assign_filter property
2016-10-22 07:02:09 +00:00
Thomas Gelf
8f2b9fea07
DataFilter: automagic fix for not(multiple)
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
0a6514928a
AssignRenderer: add renderEquals method...
...
...with (hopefully temporarily) hardcoded groups support
2016-10-22 07:02:09 +00:00
Thomas Gelf
a819e7c92c
DataFilter: attribs are no longer needed
2016-10-22 07:02:09 +00:00
Thomas Gelf
8ade496fdc
DataFilter: refactor the whole class(es)
2016-10-22 07:02:09 +00:00
Thomas Gelf
037c588d26
FormDataFilter: change icon for expression
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
7c31b37f27
IcingaServiceForm: remove duplicate code
...
Elements in this list are optional and may be used in various forms,
so keeping this in the base class is preferrable here
2016-10-22 06:09:00 +00:00
Thomas Gelf
5b4e7509f4
Just a couple of phpcs complaints fixed
2016-10-22 06:08:52 +00:00
Thomas Gelf
0791b900f3
QuickBaseForm: allow translation tools find 'None'
2016-10-22 06:08:44 +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
37c91050c7
Expressions syntax is now $var$
...
Instead of $$var$$.
We make sure $$var$$ is left untouched.
refs #11976
2016-10-22 00:15: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
Corentin Ardeois
bcef87f4c9
Add support for expressions
...
Any rendered string can contain variables encapsulated with "$$" characters.
Example:
Display Name declared with `Port $$host.vars.tcp_port$$ check` will
be processed as `"Port " + host.vars.tcp_port + " check"`
API:
```bash
./director-curl POST director/service?name=my_service '{"display_name": "Port $$host.vars.tcp_port$$ check" }'
```
Rendered config:
```
apply Service "my_service" {
import "my_template"
display_name = "Port " + host.vars.tcp_port + " check"
}
```
refs #11976
2016-10-22 00:15:09 +00:00
Thomas Gelf
a9b3b2f47a
IcingaObjectImports: fix compatibility issue
...
fixes #12951
2016-10-20 19:17:52 +00:00
Thomas Gelf
b62b602f7d
DirectorObjectForm: move imports below name
2016-10-20 02:22:34 +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
d5234f723d
HostController: no loop check for 'fake' services
...
Inherited services do not exist in the db. As many services would
carry their template's name, the fallback to a name-based loop check
would trigger an erraneous error. So we trigger no preliminary loop
check for those now.
fixes #12938
2016-10-20 01:09:34 +00:00
Thomas Gelf
8c2d5ec7f9
Data: flip field/list order, as fields are...
...
...more important
2016-10-17 17:24:27 +00:00
Thomas Gelf
edbda2c592
IcingaObjectFieldLoader: silently ignore setValues
...
...when called for an object without custom var support
2016-10-17 16:57:25 +00:00
Thomas Gelf
46a5b3cb2f
CubeLinks: hook into the cube module
2016-10-14 21:14:04 +00:00
Thomas Gelf
b40f4a7ab7
QuickTable: fix 'return value in write contex'...
...
...for older PHP versions
2016-10-14 19:35:52 +00:00
Thomas Gelf
23ef9a707c
MultiEdit: make it independent of an object type
2016-10-14 18:32:34 +00:00
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