summaryrefslogtreecommitdiff
path: root/core/src/test/java/org/elasticsearch/action/ingest
AgeCommit message (Collapse)Author
2017-05-17Fix Version based BWC and set correct minCompatVersion (#24732)Simon Willnauer
Approaching the release of 6.0 we need to sort out the usage of `Version#minimumCompatibilityVersion` which was still set to 5.0.0. Now this change moves it to the latest released version of 5.x (5.4 at this point) to ensure we are compatible with the latest minor of the previous major. This change also removes all the `_UNRELEASED` from the versions that where released and drops versions that were never released and are not expected to be released (bugfixes in minors that are not the latest in the previous major).
2017-04-04Rename random ASCII helper methodsJason Tedor
This commit renames the random ASCII helper methods in ESTestCase. This is because this method ultimately uses the random ASCII methods from randomized runner, but these methods actually only produce random strings generated from [a-zA-Z]. Relates #23886
2017-02-28Revert "Internal: Change version constant names for already released ↵Ryan Ernst
versions (#23416)" This reverts commit dc0e93ed6238e5df6c66206b9f31cdc162db166a.
2017-02-28Internal: Change version constant names for already released versions (#23416)Ryan Ernst
We have many version constants in master that have already been released, but are still marked (by naming convention) as unreleased. This commit renames those version constants.
2017-02-02Optionally require a valid content type for all rest requests with content ↵Jay Modi
(#22691) This change adds a strict mode for xcontent parsing on the rest layer. The strict mode will be off by default for 5.x and in a separate commit will be enabled by default for 6.0. The strict mode, which can be enabled by setting `http.content_type.required: true` in 5.x, will require that all incoming rest requests have a valid and supported content type header before the request is dispatched. In the non-strict mode, the Content-Type header will be inspected and if it is not present or not valid, we will continue with auto detection of content like we have done previously. The content type header is parsed to the matching XContentType value with the only exception being for plain text requests. This value is then passed on with the content bytes so that we can reduce the number of places where we need to auto-detect the content type. As part of this, many transport requests and builders were updated to provide methods that accepted the XContentType along with the bytes and the methods that would rely on auto-detection have been deprecated. In the non-strict mode, deprecation warnings are issued whenever a request with body doesn't provide the Content-Type header. See #19388
2016-12-07Ingest: Moved ingest invocation into index/bulk actions (#22015)Ryan Ernst
* Ingest: Moved ingest invocation into index/bulk actions Ingest was originally setup as a plugin, and in order to hook into the index and bulk actions, action filters were used. However, ingest was later moved into core, but the action filters were never removed. This change moves the execution of ingest into the index and bulk actions. * Address PR comments * Remove forwarder direct dependency on ClusterService
2016-11-17Expose executor service interface from thread poolJason Tedor
This commit exposes the executor service interface from thread pool. This will enable some high-level concurrency primitives that will make some code cleaner and simpler. Relates #21608
2016-11-10Merge branch 'master' into feature/seq_noJason Tedor
* master: (516 commits) Avoid angering Log4j in TransportNodesActionTests Add trace logging when aquiring and releasing operation locks for replication requests Fix handler name on message not fully read Remove accidental import. Improve log message in TransportNodesAction Clean up of Script. Update Joda Time to version 2.9.5 (#21468) Remove unused ClusterService dependency from SearchPhaseController (#21421) Remove max_local_storage_nodes from elasticsearch.yml (#21467) Wait for all reindex subtasks before rethrottling Correcting a typo-Maan to Man-in README.textile (#21466) Fix InternalSearchHit#hasSource to return the proper boolean value (#21441) Replace all index date-math examples with the URI encoded form Fix typos (#21456) Adapt ES_JVM_OPTIONS packaging test to ubuntu-1204 Add null check in InternalSearchHit#sourceRef to prevent NPE (#21431) Add VirtualBox version check (#21370) Export ES_JVM_OPTIONS for SysV init Skip reindex rethrottle tests with workers Make forbidden APIs be quieter about classpath warnings (#21443) ...
2016-10-24Pass executor name to request interceptor to support async intercept calls ↵Simon Willnauer
(#21089) Today the request interceptor can't support async calls since the response of the async call would execute on a different thread ie. a client or listener thread. This means in-turn that the intercepted handler is not executed with the thread it was supposed to run and therefor can, if it's executing blocking operations, potentially deadlock an entire server.
2016-10-11Merge branch 'master' into cleanup/transport_bulkAreek Zillur
2016-10-11rename DocumentRequest to DocWriteRequestAreek Zillur
2016-10-07Revert "rename DocumentRequest to DocumentWriteRequest"Areek Zillur
This reverts commit b5079ce0092e2dfd742fbe3aed8a8f95931a378d.
2016-10-07DeGuice some of IndicesModuleNik Everett
UpdateHelper, MetaDataIndexUpgradeService, and some recovery stuff. Move ClusterSettings to nullable ctor parameter of TransportService so it isn't forgotten.
2016-10-07Remove LocalTransport in favor of MockTcpTransport (#20695)Simon Willnauer
This change proposes the removal of all non-tcp transport implementations. The mock transport can be used by default to run tests instead of local transport that has roughly the same performance compared to TCP or at least not noticeably slower. This is a master only change, deprecation notice in 5.x will be committed as a separate change.
2016-10-06rename DocumentRequest to DocumentWriteRequestAreek Zillur
2016-10-03Merge branch 'master' into cleanup/transport_bulkAreek Zillur
2016-09-29Merge branch 'master' into feature/seq_noJason Tedor
* master: (1199 commits) [DOCS] Remove non-valid link to mapping migration document Revert "Default `include_in_all` for numeric-like types to false" test: add a test with ipv6 address docs: clearify that both ip4 and ip6 addresses are supported Include complex settings in settings requests Add production warning for pre-release builds Clean up confusing error message on unhandled endpoint [TEST] Increase logging level in testDelayShards() change health from string to enum (#20661) Provide error message when plugin id is missing Document that sliced scroll works for reindex Make reindex-from-remote ignore unknown fields Remove NoopGatewayAllocator in favor of a more realistic mock (#20637) Remove Marvel character reference from guide Fix documentation for setting Java I/O temp dir Update client benchmarks to log4j2 Changes the API of GatewayAllocator#applyStartedShards and (#20642) Removes FailedRerouteAllocation and StartedRerouteAllocation IndexRoutingTable.initializeEmpty shouldn't override supplied primary RecoverySource (#20638) Smoke tester: Adjust to latest changes (#20611) ...
2016-09-16Remove ability to plug-in TransportService (#20505)Simon Willnauer
TransportService is such a central part of the core server, replacing it's implementation is risky and can cause serious issues. This change removes the ability to plug in TransportService but allows registering a TransportInterceptor that enables plugins to intercept requests on both the sender and the receiver ends. This is a commonly used and overwritten functionality but encapsulates the custom code in a contained manner.
2016-09-09add ignore_missing option to relevant processors (#20194)Tal Levy
2016-09-07Add "version" field to PipelinesChris Earle
This adds a version field to Pipelines, which is itself is unused by Elasticsearch, but exists for users to better manage their own pipelines.
2016-08-23Make bulk item-level requests implement DocumentRequest interfaceAreek Zillur
Currently, bulk item requests can be any ActionRequest, this commit restricts bulk item requests to DocumentRequest. This simplifies handling failures during bulk requests. Additionally, a new enum is added to DocumentRequest to represent the intended operation to be performed by a document request. Now, index operation type also uses the new enum to specify whether the request should create or index a document.
2016-08-05Upon being elected as master, prefer joins' node info to existing cluster ↵Boaz Leskes
state (#19743) When we introduces [persistent node ids](https://github.com/elastic/elasticsearch/pull/19140) we were concerned that people may copy data folders from one to another resulting in two nodes competing for the same id in the cluster. To solve this we elected to not allow an incoming join if a different with same id already exists in the cluster, or if some other node already has the same transport address as the incoming join. The rationeel there was that it is better to prefer existing nodes and that we can rely on node fault detection to remove any node from the cluster that isn't correct any more, making room for the node that wants to join (and will keep trying). Sadly there were two problems with this: 1) One minor and easy to fix - we didn't allow for the case where the existing node can have the same network address as the incoming one, but have a different ephemeral id (after node restart). This confused the logic in `AllocationService`, in this rare cases. The cluster is good enough to detect this and recover later on, but it's not clean. 2) The assumption that Node Fault Detection will clean up is *wrong* when the node just won an election (it wasn't master before) and needs to process the incoming joins in order to commit the cluster state and assume it's mastership. In those cases, the Node Fault Detection isn't active. This PR fixes these two and prefers incoming nodes to existing node when finishing an election. On top of the, on request by @ywelsch , `AllocationService` synchronization between the nodes of the cluster and it's routing table is now explicit rather than something we do all the time. The same goes for promotion of replicas to primaries.
2016-07-28Fix NPE when simulating a pipeline with no idDavid Pilato
When you simulate a pipeline without specifying an id against a node where the request is redirected to a master node, the request and the response is throwing a NPE: ``` java.lang.NullPointerException at __randomizedtesting.SeedInfo.seed([3B9536AC6AA23C06:DD62280CF765DA1F]:0) at org.elasticsearch.common.io.stream.StreamOutput.writeString(StreamOutput.java:300) at org.elasticsearch.action.ingest.SimulatePipelineRequest.writeTo(SimulatePipelineRequest.java:92) at org.elasticsearch.transport.local.LocalTransport.sendRequest(LocalTransport.java:222) at org.elasticsearch.test.transport.AssertingLocalTransport.sendRequest(AssertingLocalTransport.java:95) at org.elasticsearch.transport.TransportService.sendRequest(TransportService.java:470) at org.elasticsearch.action.TransportActionNodeProxy.execute(TransportActionNodeProxy.java:51) at org.elasticsearch.client.transport.support.TransportProxyClient.lambda$execute$441(TransportProxyClient.java:63) at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:233) at org.elasticsearch.client.transport.support.TransportProxyClient.execute(TransportProxyClient.java:63) at org.elasticsearch.client.transport.TransportClient.doExecute(TransportClient.java:309) at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:403) at org.elasticsearch.client.FilterClient.doExecute(FilterClient.java:67) at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:403) at org.elasticsearch.client.support.AbstractClient$ClusterAdmin.execute(AbstractClient.java:710) at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:80) at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:54) at org.elasticsearch.action.ActionRequestBuilder.get(ActionRequestBuilder.java:62) at org.elasticsearch.ingest.bano.BanoProcessorIntegrationTest.testSimulateProcessorConfigTarget(BanoProcessorIntegrationTest.java:139) ``` This patch fixes this and adds some random tests.
2016-07-27ingest: Change the `foreach` processor to use the `_ingest._value` ingest ↵Martijn van Groningen
metadata attribute to store the current array element being processed. Closes #19592
2016-07-13show ignored errors in verbose simulate result (#19404)Tal Levy
Closes #19319.
2016-07-05Merge branch 'master' into ingest_plugin_apiRyan Ernst
2016-07-05Merge branch 'master' into feature/seq_noJason Tedor
* master: (192 commits) [TEST] Fix rare OBOE in AbstractBytesReferenceTestCase Reindex from remote Rename writeThrowable to writeException Start transport client round-robin randomly Reword Refresh API reference (#19270) Update fielddata.asciidoc Fix stored_fields message Add missing footer notes in mapper size docs Remote BucketStreams Add doc values support to the _size field in the mapper-size plugin Bump version to 5.0.0-alpha5. Update refresh.asciidoc Update shrink-index.asciidoc Change Debian repository for Vagrant debian-8 box [TEST] fix test to account for internal empyt reference optimization Upgrade to netty 3.10.6.Final (#19235) [TEST] fix histogram test when extended bounds overlaps data Remove redundant modifier Simplify TcpTransport interface by reducing send code to a single send method (#19223) Fix style violation in InstallPluginCommand.java ...
2016-07-04Persistent Node Ids (#19140)Boaz Leskes
Node IDs are currently randomly generated during node startup. That means they change every time the node is restarted. While this doesn't matter for ES proper, it makes it hard for external services to track nodes. Another, more minor, side effect is that indexing the output of, say, the node stats API results in creating new fields due to node ID being used as keys. The first approach I considered was to use the node's published address as the base for the id. We already [treat nodes with the same address as the same](https://github.com/elastic/elasticsearch/blob/master/core/src/main/java/org/elasticsearch/discovery/zen/NodeJoinController.java#L387) so this is a simple change (see [here](https://github.com/elastic/elasticsearch/compare/master...bleskes:node_persistent_id_based_on_address)). While this is simple and it works for probably most cases, it is not perfect. For example, if after a node restart, the node is not able to bind to the same port (because it's not yet freed by the OS), it will cause the node to still change identity. Also in environments where the host IP can change due to a host restart, identity will not be the same. Due to those limitation, I opted to go with a different approach where the node id will be persisted in the node's data folder. This has the upside of connecting the id to the nodes data. It also means that the host can be adapted in any way (replace network cards, attach storage to a new VM). I It does however also have downsides - we now run the risk of two nodes having the same id, if someone copies clones a data folder from one node to another. To mitigate this I changed the semantics of the protection against multiple nodes with the same address to be stricter - it will now reject the incoming join if a node exists with the same id but a different address. Note that if the existing node doesn't respond to pings (i.e., it's not alive) it will be removed and the new node will be accepted when it tries another join. Last, and most importantly, this change requires that *all* nodes persist data to disk. This is a change from current behavior where only data & master nodes store local files. This is the main reason for marking this PR as breaking. Other less important notes: - DummyTransportAddress is removed as we need a unique network address per node. Use `LocalTransportAddress.buildUnique()` instead. - I renamed `node.add_lid_to_custom_path` to `node.add_lock_id_to_custom_path` to avoid confusion with the node ID which is now part of the `NodeEnvironment` logic. - I removed the `version` paramater from `MetaDataStateFormat#write` , it wasn't really used and was just in the way :) - TribeNodes are special in the sense that they do start multiple sub-nodes (previously known as client nodes). Those sub-nodes do not store local files but derive their ID from the parent node id, so they are generated consistently.
2016-07-04Do not catch throwableJason Tedor
Today throughout the codebase, catch throwable is used with reckless abandon. This is dangerous because the throwable could be a fatal virtual machine error resulting from an internal error in the JVM, or an out of memory error or a stack overflow error that leaves the virtual machine in an unstable and unpredictable state. This commit removes catch throwable from the codebase and removes the temptation to use it by modifying listener APIs to receive instances of Exception instead of the top-level Throwable. Relates #19231
2016-07-01Fix test oopsRyan Ernst
2016-07-01Merge branch 'master' into ingest_plugin_apiRyan Ernst
2016-07-01Clean up BytesReference (#19196)Simon Willnauer
BytesReference should be a really simple interface, yet it has a gazillion ways to achieve the same this. Methods like `#hasArray`, `#toBytesArray`, `#copyBytesArray` `#toBytesRef` `#bytes` are all really duplicates. This change simplifies the interface dramatically and makes implementations of it much simpler. All array access has been removed and is streamlined through a single `#toBytesRef` method. Utility methods to materialize a compact byte array has been added too for convenience.
2016-06-30Tests pass, started removing generics from processor factoryRyan Ernst
2016-06-23Merge branch 'master' into feature/seq_noJason Tedor
* master: (416 commits) docs: removed obsolete information, percolator queries are not longer loaded into jvm heap memory. Upgrade JNA to 4.2.2 and remove optionality [TEST] Increase timeouts for Rest test client (#19042) Update migrate_5_0.asciidoc Add ThreadLeakLingering option to Rest client tests Add a MultiTermAwareComponent marker interface to analysis factories. #19028 Attempt at fixing IndexStatsIT.testFilterCacheStats. Fix docs build. Move templates out of the Search API, into lang-mustache module revert - Inline reroute with process of node join/master election (#18938) Build valid slices in SearchSourceBuilderTests Docs: Convert aggs/misc to CONSOLE Docs: migration notes for _timestamp and _ttl Group client projects under :client [TEST] Add client-test module and make client tests use randomized runner directly Move upgrade test to upgrade from version 2.3.3 Tasks: Add completed to the mapping Fail to start if plugin tries broken onModule Remove duplicated read byte array methods Rename `fields` to `stored_fields` and add `docvalue_fields` ...
2016-06-21Fix ignore_failure behavior in _simulate?verbose (#18987)Tal Levy
- fix it so that processors with the `ignore_failure` option do not record their exception in the response - add more tests to make empty `on_failure`. This now throws an exception
2016-06-21ingest: merged o.e.ingest.core with o.e.ingest and in ingest-common module ↵Martijn van Groningen
added o.e.ingest.common package and moved all code to that package.
2016-06-15new ScriptProcessor for Ingest (#18193)Tal Levy
add new ScriptProcessor for executing ES Scripts within pipelines
2016-06-07Merge branch 'master' into feature/seq_noJason Tedor
* master: (51 commits) Switch QueryBuilders to new MatchPhraseQueryBuilder Added method to allow creation of new methods on-the-fly. more cleanups Remove cluster name from data path Remove explicit parallel new GC flag rehash the docvalues in DocValuesSliceQuery using BitMixer.mix instead of the naive Long.hashCode. switch FunctionRef over to methodhandles ingest: Move processors from core to ingest-common module. Fix some typos (#18746) Fix ut convert FunctionRef/Def usage to methodhandles. Add the ability to partition a scroll in multiple slices. API: use painless types in FunctionRef Update ingest-node.asciidoc compute functional interface stuff in Definition Use method name in bootstrap check might fork test Make checkstyle happy (add Lookup import, line length) Don't hide LambdaConversionException and behave like real javac compiled code when a conversion fails. This works anyways, because fallback is allowed to throw any Throwable Pass through the lookup given by invokedynamic to the LambdaMetaFactory. Without it real lambdas won't work, as their implementations are private to script class checkstyle have your upper L ...
2016-06-07ingest: Move processors from core to ingest-common module.Martijn van Groningen
Folded grok processor into ingest-common module. The rest tests have been moved to ingest-common module as well, because these tests don't run in the rest-api-spec module but in the distribution:integ-test-zip module and adding a test plugin there felt just wrong to me. I think this is ok. I left a tiny ingest rest test behind in that tests with an empty pipeline. Removed messy tests, these tests were already covered in the rest tests Added ingest test plugin in test infra so that each module testing integration with ingest doesn't need write its own plugin Moved reindex ingest tests to qa module Closes #18490
2016-06-06Merge branch 'master' into feature/seq_noJason Tedor
* master: (184 commits) Add back pending deletes (#18698) refactor matrix agg documentation from modules to main agg section Implement ctx.op = "delete" on _update_by_query and _reindex Close SearchContext if query rewrite failed Wrap lines at 140 characters (:qa projects) Remove log file painless: Add support for the new Java 9 MethodHandles#arrayLength() factory (see https://bugs.openjdk.java.net/browse/JDK-8156915) More complete exception message in settings tests Use java from path if JAVA_HOME is not set Fix uncaught checked exception in AzureTestUtils [TEST] wait for yellow after setup doc tests (#18726) Fix recovery throttling to properly handle relocating non-primary shards (#18701) Fix merge stats rendering in RestIndicesAction (#18720) [TEST] mute RandomAllocationDeciderTests.testRandomDecisions Reworked docs for index-shrink API (#18705) Improve painless compile-time exceptions Adds UUIDs to snapshots Add test rethrottle test case for delete-by-query Do not start scheduled pings until transport start Adressing review comments ...
2016-06-01ingest: added `ignore_failure` option to all processorsMartijn van Groningen
If this option is enabled on a processor it silently catches any processor related failure and continues executing the rest of the pipeline. Closes #18493
2016-05-24Expose underlying processor to blame for thrown exception within ↵Tal Levy
CompoundProcessor (#18342) Fixes #17823
2016-05-14Merge branch 'master' into feature/seq_noJason Tedor
* master: (904 commits) Removes unused methods in the o/e/common/Strings class. Add note regarding thread stack size on Windows painless: restore accidentally removed test Documented fuzzy_transpositions in match query Add not-null precondition check in BulkRequest Build: Make run task you full zip distribution Build: More pom generation improvements Add test for wrong array index Take return type from "after" field. painless: build descriptor of array and field load/store in code; fix array index to adapt type not DEF Build: Add developer info to generated pom files painless: improve exception stacktraces painless: Rename the dynamic call site factory to DefBootstrap and make the inner class very short (PIC = Polymorphic Inline Cache) Remove dead code. Avoid race while retiring executors Allow only a single extension for a scripting engine Adding REST tests to ensure key_as_string behavior stays consistent [test] Set logging to 11 on reindex test [TEST] increase logger level until we know what is going on Don't allow `fuzziness` for `multi_match` types cross_fields, phrase and phrase_prefix ...
2016-05-06add check for non-existent pipelines provided to simulate requests (#18190)Tal Levy
fixes #18139
2016-04-11Tests: Fixing SimulateProcessorResultTests due to recent ingest attachment ↵Alexander Reelsen
changes
2016-04-11Ingest Attachment: Allow to prevent base64 conversions by using raw bytes ↵Alexander Reelsen
(#16601) CBOR is natively supported in Elasticsearch and allows for byte arrays. This means, that by using CBOR the user can prevent base64 conversions for the data being sent back and forth. This PR adds support to extract data from a byte array in addition to a string. This also required to add a ByteArrayValueSource class.
2016-03-31Remove PROTOTYPEs from ingestNik Everett
2016-03-25Merge branch 'master' into enhancement/remove_node_client_settingjavanna
2016-03-25separated attributes from node roles in DiscoveryNodejavanna
Node roles are now serialized as well, they are not part of the node attributes anymore. DiscoveryNodeService takes care of dividing settings into attributes and roles. DiscoveryNode always requires to pass in attributes and roles separately.
2016-03-25merge from masterBoaz Leskes