OpenSearch/client/client-benchmark-noop-api-p...
Jay Modi 7520a107be Optionally require a valid content type for all rest requests with content (#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
2017-02-02 14:07:13 -05:00
..
src/main/java/org/elasticsearch/plugin/noop Optionally require a valid content type for all rest requests with content (#22691) 2017-02-02 14:07:13 -05:00
README.md Add client-benchmark-noop-api-plugin to stress clients even more in benchmarks (#20103) 2016-08-26 09:05:47 +02:00
build.gradle Build: Remove old maven deploy support (#20403) 2016-09-19 15:10:41 -07:00

README.md

Purpose

This plugin provides empty REST and transport endpoints for bulk indexing and search. It is used to avoid accidental server-side bottlenecks in client-side benchmarking.

Build Instructions

Build the plugin with gradle :client:client-benchmark-noop-api-plugin:assemble from the Elasticsearch root project directory.

Installation Instructions

After, the binary has been built, install it with bin/elasticsearch-plugin install file:///full/path/to/noop-plugin.zip.

Usage

The plugin provides two REST endpoints:

  • /_noop_bulk and all variations that the bulk endpoint provides (except that all no op endpoints are called _noop_bulk instead of _bulk)
  • _noop_search and all variations that the search endpoint provides (except that all no op endpoints are called _noop_search instead of _search)

The corresponding transport actions are:

  • org.elasticsearch.plugin.noop.action.bulk.TransportNoopBulkAction
  • org.elasticsearch.plugin.noop.action.search.TransportNoopSearchAction