Commit Graph

1692 Commits

Author SHA1 Message Date
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
Thomas Gelf 5168f5e887 CustomVariables: beatify v1.x unsupported vars 2016-11-04 19:51:02 +01:00
Markus Frosch f6a5c8cbc5 LegacyDeploymentApi: Expire old stages that haven't got activated
For about an hour.

refs #13049
2016-11-04 16:56:52 +01:00
Markus Frosch a3d69c4f4c LegacyDeploymentApi: Call activation tool to deploy a new stage
refs #13049
2016-11-04 16:40:22 +01:00
Markus Frosch 660f41f94d LegacyDeploymentApi: Call activation tool to deploy a new stage
refs #13049
2016-11-04 16:38:08 +01:00
Markus Frosch 37f3d1a3e8 SettingsForm(Legacy): Add activation script setting
refs #13049
2016-11-04 16:36:54 +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 1786d08321 CoreApi: Use DeploymentApiInterface
refs #13049
2016-11-04 14:13:07 +01:00
Markus Frosch 79541be050 SettingsForm(Legacy): Add configuration for a deployment path
refs #13049
2016-11-04 14:10:50 +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 76ff4ebfd2 Sets: enable them 2016-11-04 09:37:12 +01:00
Thomas Gelf f27f7de842 ApiUser/Command: correct links and fix perms
fixes #13041
2016-11-03 20:07:32 +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
Thomas Gelf b2c834e7a4 permissions: provide new ones and enforce them
fixes #13039
2016-11-03 16:06:35 +01:00
Thomas Gelf f286b5ad08 Revert "ServiceSet: re-enable them"
This reverts commit c073278ee3.
2016-11-03 15:04:42 +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 df299fe314 CustomVariables(Legacy): Ignore ARGn vars in toLegacyConfigString
refs #12919
2016-11-03 13:41:44 +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 7ba3c425a5 IcingaLegacyConfigHelper: Don't escape quotes in strings
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 e368b32ec6 ActionController: Add load helper for IcingaConfig 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 1592894fd7 CustomVariable*(Legacy): Add toLegacyConfigString
refs #12919
2016-11-03 13:41:44 +01:00
Markus Frosch ffab574355 IcingaConfigRenderer: Add toLegacyConfigString to support legacy config
refs #12919
2016-11-03 13:41:44 +01:00
Markus Frosch 7916e0c0c6 CustomVariable: Fix getType to output a useable value 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 4a82bd5b90 IcingaConfig: count apply rules and show them 2016-11-03 13:35:44 +01:00
Thomas Gelf c073278ee3 ServiceSet: re-enable them 2016-11-03 12:54:15 +01:00
Thomas Gelf a540fd08aa cli/objects: provide new commands
fixes #12965
2016-11-03 12:32:51 +01:00
Thomas Gelf 8a57ca9437 ObjectsCommand: initial import 2016-11-03 12:25:48 +01:00
Thomas Gelf d006449564 inspect: enforce permissions
fixes #11763
fixes #11764
2016-11-03 11:49:04 +01:00
Markus Frosch 9305f55e92 BaseTestCase: Support more resource settings via ENV 2016-11-03 10:19:44 +01:00
Markus Frosch 10ee7901c8 Add composer support for testing 2016-11-03 10:19:25 +01:00
Thomas Gelf b996a684be tests: refactor bootstrapping, initial Gitlab-CI..
...support. Currently expects three test-runners offering Debian Jessie,
Ubuntu 16.04 LTS (Xenial) and CentOS 7. Removed all dependencies on the
Icinga Web 2 test module, installing phpunit should suffice to run tests
in a normal environment.

This is a first attempt to make things easier, more to come.
2016-11-03 02:50:39 +01:00
Thomas Gelf 6c23a02252 Test: add test suite prototype and command
refs #12905
2016-11-02 19:30:11 +01:00
Thomas Gelf 468a2719a7 DirectorActivityLog: optionally log to file/syslog
fixes #12976
2016-11-02 18:40:43 +01:00
Thomas Gelf e410beb935 CoreApi: skip incomplete stages
fixes #13028
2016-11-02 11:06:15 +01:00
Thomas Gelf ee0def7d2b Lots of files: make IDE users happy 2016-11-01 18:28:36 +01:00
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