Commit Graph

729 Commits

Author SHA1 Message Date
Robert Muir 36f5bbd232 Merge pull request elastic/elasticsearch#646 from rmuir/integ_testing
Add integration test phase to watcher build.

Original commit: elastic/x-pack-elasticsearch@44eefe5047
2015-07-09 08:29:55 -04:00
Robert Muir 147aff97ba Merge branch 'master' into integ_testing
Original commit: elastic/x-pack-elasticsearch@dfe5ba5ff8
2015-07-09 08:27:06 -04:00
Martijn van Groningen 125a5256c9 test: if minimum performed actions count validation fails, then print out the last checked search response
Original commit: elastic/x-pack-elasticsearch@5723adc774
2015-07-09 12:50:16 +02:00
Robert Muir 7afd454663 adapt to bin/plugin changes for es plugins
Original commit: elastic/x-pack-elasticsearch@1a43ef87e0
2015-07-09 01:18:31 -04:00
Robert Muir f0e02fd020 Add integration test phase to watcher build.
Integration tests unzip elasticsearch.zip, install the license and watcher plugins with bin/plugin,
starts up es with bin/elasticsearch, runs rest tests, then shuts down es.

They are run during `mvn verify` phase.

Original commit: elastic/x-pack-elasticsearch@f75a036fe5
2015-07-09 00:40:11 -04:00
Brian Murphy 7b386daf38 [TEST] Fix store tests to use new ShardRouting APIs
This change bring watcher back in line with ES master and the ShardRouting changes.

Original commit: elastic/x-pack-elasticsearch@211196eb04
2015-07-08 11:00:10 -04:00
Martijn van Groningen 6d80d1b0ad test: enabled the slf4j logging for subethamail smtp server to see what is failing here
Original commit: elastic/x-pack-elasticsearch@6c4b1096f9
2015-07-08 11:04:29 +02:00
Martijn van Groningen 74d178cfbe wait for put index template call to return when executed during startup, otherwise don't wait.
Original commit: elastic/x-pack-elasticsearch@689d071b4a
2015-07-08 00:20:03 +02:00
Martijn van Groningen 7f13e2ff06 test: improve index template check
Original commit: elastic/x-pack-elasticsearch@7dbf41b8b5
2015-07-07 23:21:22 +02:00
Martijn van Groningen 28e384d104 When Watcher starts verify that all index templates have been added, otherwise add the index templates
There maybe a small window of time just after Watcher has started that the index templates don't exist.

Original commit: elastic/x-pack-elasticsearch@9af3018be4
2015-07-07 14:09:03 +02:00
Martijn van Groningen 01fd8496c6 test: store triggered watch events belonging to multipel watches, so that during startup the triggered watch executions can be paralyzed.
Also increased the maximum time to wait

Original commit: elastic/x-pack-elasticsearch@142ed0a810
2015-07-07 12:54:13 +02:00
Brian Murphy 12de46e2d4 [TEST] Add logging to determine if ticker thread is being stopped correctly.
Added some trace logging and set the WatcherStatsTest to trace watcher to try and figure out why the ticker isn't stopping.

Original commit: elastic/x-pack-elasticsearch@75dc936165
2015-07-03 23:26:47 +02:00
Brian Murphy 3051cca896 Change manual stop semantics.
This change sets the manually stopped flag even if manual stop is requested but the watcher is not started.
Also clears the manually stopped flag if a manual start is initiated.

Original commit: elastic/x-pack-elasticsearch@6d5fd897ba
2015-07-03 23:21:15 +02:00
uboness 287a612179 Cleanup exceptions
Remove all watcher specific/custom exceptions. We're now reusing the standard exceptions used in core.

Original commit: elastic/x-pack-elasticsearch@26090ff6ef
2015-07-03 21:12:33 +02:00
Martijn van Groningen f620907939 Fix compile errors due to the ParseFieldMatcher change in core (PR elastic/elasticsearch#11859)
Original commit: elastic/x-pack-elasticsearch@cccc6dcee2
2015-07-03 00:07:08 +02:00
Martijn van Groningen f58af85631 Fix WatcherF to work due to the recent upstream changes.
Original commit: elastic/x-pack-elasticsearch@cb91fd9e9f
2015-07-03 00:07:08 +02:00
Martijn van Groningen 122be138d7 build: remove Groovy dependency because it is already provided in the parent pom
Original commit: elastic/x-pack-elasticsearch@80e9ffb9fa
2015-07-03 00:07:08 +02:00
Brian Murphy a3c5292b24 [TEST] Clean up watch created by stats test.
This may have resulted in a watch being run during shutdown.

Original commit: elastic/x-pack-elasticsearch@2631690f1a
2015-07-01 13:51:09 -04:00
Robert Muir 0325aeeb5f Don't depend on ant tasks in tests
Original commit: elastic/x-pack-elasticsearch@f5dd00f327
2015-06-30 00:55:33 -04:00
Robert Muir 7e519222ef Merge pull request elastic/elasticsearch#636 from rmuir/securemock
Use elasticsearch securemock library

Original commit: elastic/x-pack-elasticsearch@8a6b2246b8
2015-06-29 11:09:20 -04:00
Robert Muir b368916005 Use elasticsearch securemock library
Original commit: elastic/x-pack-elasticsearch@0eccff1d6b
2015-06-29 10:46:54 -04:00
uboness 7cec0c97df Added time zone support to DynamicIndexName
Today `DynamicIndexName` generates the names based on UTC. This doesn't work for environments where the indices rollover is based on a local/different timezone.

The timezone can be configured:
 * globally with the `watcher.dynamic_indices.time_zone` setting
 * collectively to all `search` input, `search` transform and `index` action with `watcher.input.search.dynamic_indices.time_zone`, `watcher.transform.search.dynamic_indices.time_zone` and `watcher.actions.index.dynamic_indices.time_zone` respectively
 * locally on the watch as part of the `search` input, `search` transform and/or `index` action definition.

This commit revealed a set of bugs in the `search` input, `search` transform and/or `index` action when it comes to xcontent serialization. In short, when the user didn't define a timeout, a default timeout was set on them, which meant their serialized xcontent did not match the original one (from which they're deserialized). This bug also meant that the global default client timeouts (defined in the `ClientProxy` never took effect.

  This issue revealed the bugs above as the `WatchTests` were enhanced to execute more settings permutations

Closes elastic/elasticsearch#632

Original commit: elastic/x-pack-elasticsearch@35a2191828
2015-06-29 15:36:34 +03:00
Martijn van Groningen 0a07d6dee5 index templates: Change the TemplateUtils to be a TemplateRegistry that is responsible for maintaining the Watcher index templates.
The TemplateRegistry adds templates based on if these index templates exist in the cluster state. Components that rely on index templates register their template config with the TemplateRegistry. The TemplateRegistry adds these templates in the background when a cluster state update occurs and add component index settings to the index template. Also when component index settings change, the index template will be updated by the TemplateRegistry.

If a registered index template gets deleted, it will be added back by the TemplateRegistry in background if in a cluster state the index template is missing.

Original commit: elastic/x-pack-elasticsearch@97f4f42160
2015-06-29 12:30:39 +02:00
Martijn van Groningen 521b6e8cf3 lifecycle: Only fork a thread if we start and stop from cluster state update if the watcher state is expected
Also improved some log statements.

Original commit: elastic/x-pack-elasticsearch@7c72550c63
2015-06-26 18:43:17 +02:00
uboness fcad80b973 fixed typo in NOTICE.txt
Original commit: elastic/x-pack-elasticsearch@90bded37ea
2015-06-26 17:02:15 +03:00
uboness a459c753ad Added NOTICE.txt
- added both the `NOTICE.txt` and `LICENSE.txt` to the distribution

Original commit: elastic/x-pack-elasticsearch@5acfd50874
2015-06-26 16:49:28 +03:00
uboness 266dfbb3c5 Added version 1.0.0 to WatcherVersion
Original commit: elastic/x-pack-elasticsearch@f7a0996ddf
2015-06-25 16:54:20 +02:00
uboness 39f9f53a0a Renamed the status field in the stored watch
was renamed to `_status` so it'll distinct from the other "formal" fields of the watch and also be aligned with the `_status` field that is returned by the Get API.

Also updated the installation docs

Original commit: elastic/x-pack-elasticsearch@1081b75d13
2015-06-25 15:39:19 +02:00
Martijn van Groningen 9cb7232075 test: Use utc time to create index name in test, since that is what internally is used too.
Original commit: elastic/x-pack-elasticsearch@48f300f657
2015-06-25 00:36:47 +02:00
Martijn van Groningen 193d8092db Added timeout option to the `search` transform, `search` input and `index` action.
Added default timeout setting:
* `watcher.action.index.default_timeout` sets the timeout for `index` action, if no timeout is defined in the `index` action itself.
* `watcher.input.search.default_timeout` sets the timeout for `search` input, if no timeout is defined in the `search` input itself.
* `watcher.transform.search.default_timeout`  sets the timeout for `search` transform, if no timeout is defined in the `search` transform itself.

Added general Watcher wide default timeout settings to the operations exposed in the client proxy:
* `watcher.internal.ops.search.default_timeout` for search related operations.
* `watcher.internal.ops.index.default_timeout` for index operations.
* `watcher.internal.ops.bulk.default_timeout` for bulk operations.

Original commit: elastic/x-pack-elasticsearch@5a3ef35a9d
2015-06-25 00:10:24 +02:00
Martijn van Groningen 591ea500f2 test: Fetch the status from the get response itself instead of the watch source
Original commit: elastic/x-pack-elasticsearch@ab0f4b8fe9
2015-06-24 22:29:17 +02:00
Martijn van Groningen ba17333523 get watch api: Return the watch status separate from the watch source.
The status isn't maintained by the user but rather by Watcher itself. The idea here is that the get watch api should return the watch as was provided to Watcher via the put watch api. The status will be reported under the top level `_status` field.

Original commit: elastic/x-pack-elasticsearch@54e2452493
2015-06-24 21:31:52 +02:00
Martijn van Groningen 67fdad6357 If starting watcher fails, watcher should set itself back to the stopped state.
At the moment if the starting fails watcher will hang in the `starting` phase. This is bad because any subsequent start will be ignored, because the the watcher state isn't `stopped`.

Original commit: elastic/x-pack-elasticsearch@5cbc1d2a13
2015-06-24 21:06:57 +02:00
uboness b8e80773d9 Fixed the stats API
- now reflects the right stats around the execution threadpool

Original commit: elastic/x-pack-elasticsearch@ecf557c6be
2015-06-24 15:53:06 +02:00
Martijn van Groningen be33ee6323 fixed compile error due to a recent upstream change in core
Original commit: elastic/x-pack-elasticsearch@f09b84c928
2015-06-24 15:11:49 +02:00
Martijn van Groningen d1bc1e1f68 fixed compile error
Original commit: elastic/x-pack-elasticsearch@9675f254c3
2015-06-24 14:04:22 +02:00
uboness bbabf8ba85 fixed build failure
failed due changes in core master

Original commit: elastic/x-pack-elasticsearch@43f6badffe
2015-06-24 12:20:56 +02:00
Martijn van Groningen 26a72e4d21 lifecycle: upon node shutdown make clear it is a manual stop, so that potential cluster states that come in after the LifyCycle#beforeStop can't start watcher.
Original commit: elastic/x-pack-elasticsearch@e2522a21fc
2015-06-24 06:56:01 +02:00
uboness c4dbb8d794 [cleanup] index names parser
Was bound in guice without a reason.

Original commit: elastic/x-pack-elasticsearch@75a9b66946
2015-06-23 17:58:45 +02:00
Martijn van Groningen d46dad18d0 Added logging in case state is unexpected when starting or stopping.
Also increased test logging in BootStrapTests.

Original commit: elastic/x-pack-elasticsearch@6b8141dbc0
2015-06-23 16:15:50 +02:00
uboness 71aa3a8059 Added Dynamic Index Names Support
The search input/transform rely on users configuring the search requests. Sometimes (often), these search requests are executed on time-based indices. The problem the

Until now, there's no way to define dynamic index names that are bound to time, which forces the request to search all the indices (for example, the Marvel watches se

This commit adds dynamic index name resolution. It works in the following way:

- and index name can be a simple string (indicating the static/absolute index name you're searching, incl. wildcards)
- an index name can also be a template. The template is enclosed within `<` and `>` (these are officially illegal characters for index names, so these are safe to use)
- the template can have both static parts to it and place holder parts. The place holders are enclosed within `{` and `}`. The place holder holds `date math` expression
 * `"<.marvel-{now}>"` will resolve to `".marvel-2022.03.03"` (the default date format is `YYYY.MM.dd`)
 * `"<.marvel-{now/M}>"` will resolve to `".marvel-2022.03.01"`
 * `"<.marvel-{now{YYYY.MM}}>"` will resolve to `".marvel-2022.03"` (this one has a custom date format - `YYYY.MM`)
 * `"<.marvel-{now/M-1M{YYYY.MM}}>"` will resolve to `".marvel-2022.02"`

The following is an example of a search input that searches marvel indices for the last 3 days (relies on the default Marvel indices format - `.marvel-YYYY.MM.dd`):

```
{
    ...
    "input" : {
            "search" : {
                    "request" : {
                            "indices" : [
                                    "<.marvel-{now/d-2d}>",
                                    "<.marvel-{now/d-1d}>",
                                    "<.marvel-{now/d}>"
                            ],
                            ...
                    }
            }
    }
    ...
}
```

- `index` action was also updated to work with a dynamic index name (e.g. it's possible to index into daily indices by setting the index name to `<idx-{now}>`)

Original commit: elastic/x-pack-elasticsearch@9c15a96029
2015-06-23 15:54:45 +02:00
Martijn van Groningen d2d1c44d07 test: increased test logging
Original commit: elastic/x-pack-elasticsearch@455892c628
2015-06-23 15:31:06 +02:00
Martijn van Groningen 075e6caba0 logging: if starting watcher fails this should be more visible
Original commit: elastic/x-pack-elasticsearch@26da9d7661
2015-06-23 08:42:56 +02:00
Simon Willnauer 58bd0cc509 [TEST] Remove awaits-fix, the issue is resovled in es-core master
Original commit: elastic/x-pack-elasticsearch@eb813e83dd
2015-06-22 12:54:03 +02:00
uboness 3cf6b32f6a [cleanup] XContentSource now requires XContentType
We need this as the `XContentSource` supports all xcontent constructs as the root construct, while xcontent in core only supports objects. For this reason, we can't rely on xcontent auto-detection of the xcontent type. We need to be explicit about it.

Original commit: elastic/x-pack-elasticsearch@a2ed944a21
2015-06-22 12:24:56 +02:00
Simon Willnauer 797945b586 [TEST] Beef up test to sometimes pass a plain number as a string
Original commit: elastic/x-pack-elasticsearch@f42662c719
2015-06-22 12:11:17 +02:00
Simon Willnauer 5ea2d0528c Require units for all time values
This commit is a backwards compatibilty break for all watcher indices
that had a `throttel_period` set on their watches. `throttle_period` used
to be a numeric value but now is stored as a string AND requires a unit
like seconds or minutes etc. to prevent errors. All other time valiues like
http timeouts also require units now.

Closes elastic/elasticsearch#598

Original commit: elastic/x-pack-elasticsearch@e3b2c2a4af
2015-06-22 11:47:37 +02:00
uboness 5766c64f94 added support for 1.0.0-rc1 in WatcherVersion
Original commit: elastic/x-pack-elasticsearch@02c018c0b9
2015-06-19 15:51:22 +02:00
uboness fa57b2c78e removed javax.mail from test dependencies
Original commit: elastic/x-pack-elasticsearch@294f461456
2015-06-19 11:45:57 +02:00
uboness fad95315fb remove @Repeat annotation from test
Original commit: elastic/x-pack-elasticsearch@d5414a32e8
2015-06-19 01:46:32 +02:00