Commit Graph

6015 Commits

Author SHA1 Message Date
Andriy Redko d61d170332
Removed java11 source folders since JDK-11 is the baseline now (#2898)
Signed-off-by: Andriy Redko <andriy.redko@aiven.io>
2022-04-18 10:16:22 -07:00
Ankit Jain d39c18f7fe
Excluding system indices from max shard limit validator (#2894)
* Excluding system indices from max shard limit validator

Signed-off-by: Ankit Jain <jain.ankitk@gmail.com>

* Fixing spotless check violations

Signed-off-by: Ankit Jain <jain.ankitk@gmail.com>

* Fixing NPE due to null isHidden

Signed-off-by: Ankit Jain <jain.ankitk@gmail.com>

* Adding unit tests for shard opening scenario

Signed-off-by: Ankit Jain <jain.ankitk@gmail.com>

* Addressing review comments

Signed-off-by: Ankit Jain <jain.ankitk@gmail.com>
2022-04-14 16:36:01 -07:00
Vacha Shah 452e368bde
Adding a null pointer check to fix index_prefix query (#2879)
* Adding a null pointer check to fix index_prefix query

Signed-off-by: Vacha Shah <vachshah@amazon.com>

* Adding test

Signed-off-by: Vacha Shah <vachshah@amazon.com>
2022-04-14 11:07:22 -07:00
Poojita Raj c4b684d3ae
Add functionality to fast forward local processed checkpoints [segment replication] (#2576) (#2883)
* fix local processed checkpoint update (#2576)

Signed-off-by: Poojita Raj <poojiraj@amazon.com>

* separated tests + wrapper function

Signed-off-by: Poojita Raj <poojiraj@amazon.com>

* moved tests + compareAndSet change

Signed-off-by: Poojita Raj <poojiraj@amazon.com>
2022-04-13 14:00:43 -07:00
Owais Kazi 3c5d997a76
Added a new line linter (#2875)
* Added linter to add new line

Signed-off-by: Owais Kazi <owaiskazi19@gmail.com>

* Fixed new lines

Signed-off-by: Owais Kazi <owaiskazi19@gmail.com>

* Ignore empty files

Signed-off-by: Owais Kazi <owaiskazi19@gmail.com>

* Updated DEVELOPER GUIDE

Signed-off-by: Owais Kazi <owaiskazi19@gmail.com>

* Renamed workflow file

Signed-off-by: Owais Kazi <owaiskazi19@gmail.com>

* Fixed failing tests

Signed-off-by: Owais Kazi <owaiskazi19@gmail.com>
2022-04-13 14:14:18 -04:00
Tianli Feng 08e4a35839
Add request parameter 'cluster_manager_timeout' and deprecate 'master_timeout' - in Ingest APIs and Script APIs (#2682)
- Deprecate the request parameter `master_timeout` that used in Ingest APIs and Script APIs which have got the parameter. 
- Add alternative new request parameter `cluster_manager_timeout`.
- Add unit tests.

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-04-13 11:13:37 -07:00
opensearch-trigger-bot[bot] 3af4300c3f
Decouple IndexSettings from IncludeExclude (#2860) (#2861)
This change refactors an earlier change to impose a reg-ex size limit on the include/exclude string. Instead of accepting an IndexSettings instance, the class now accepts a integer limit value. This is necessary because the IncludeExclude class is used outside the core codebase, whose use-cases may be unaware of indices and their settings. To ensure that a limit is always imposed, a default limit is defined in the class.

(cherry picked from commit ba1966853e728b153e42be59ba449420e79b09ee)
Signed-off-by: Kartik Ganesh <gkart@amazon.com>

Co-authored-by: Kartik Ganesh <gkart@amazon.com>
2022-04-13 14:13:18 -04:00
Tianli Feng 455fad34ee
Change deprecation message for API parameter value 'master_node' of parameter 'metric' (#2880)
Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-04-12 14:58:19 -07:00
Tianli Feng a89b7e6216
Add request parameter 'cluster_manager_timeout' and deprecate 'master_timeout' - in Snapshot APIs (#2680)
* Deprecate the request parameter `master_timeout` that used in Snapshot APIs which have got the parameter. 
* Add alternative new request parameter `cluster_manager_timeout`.
* Add unit tests.

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-04-11 20:42:21 -07:00
Tianli Feng ba3ed8a9cb
Add request parameter 'cluster_manager_timeout' and deprecate 'master_timeout' - in Index Template APIs (#2678)
- Deprecate the request parameter `master_timeout` that used in Index Template APIs which have got the parameter. 
(The other Index APIs are addressed in PR https://github.com/opensearch-project/OpenSearch/pull/2660) 
- Add alternative new request parameter `cluster_manager_timeout`.
- Add unit tests.
Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-04-11 17:29:06 -07:00
Tianli Feng ba8657aca5
Change deprecation message for REST API parameter 'master_timeout' to specify the version of removal (#2863)
Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-04-11 15:59:04 -07:00
Kartik 2d89bc7c61
Updates to the large string reg-ex check (#2814)
* Updates to the large string reg-ex check

Removed the null-case for IndexSettings since this only occurs in tests. The tests now use a dummy Index Setting.
This change also fixes a bug with the base case handling of max regex length in the check.

Signed-off-by: Kartik Ganesh <gkart@amazon.com>
2022-04-07 18:12:33 -07:00
Tianli Feng 47a22bb08d
Replace remaining 'blacklist' with 'denylist' in internal class and method names (#2784)
* Replace blacklist with denylist in BlacklistedPathPatternMatcher

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Replace blacklist with denylist in assumption message

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Replace all Blacklisted with Denylisted

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Replace all blacklist(key) with denylist(key)

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Adjust format by spotlessApply task

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-04-07 15:45:20 -07:00
Kartik 566ebfa4fe
Bugfix to guard against stack overflow errors caused by very large reg-ex input (#2810)
* Bugfix to guard against stack overflow errors caused by very large reg-ex input

This change fixes a code path that did not properly impose the index-level max_regex_length limit. Therefore, it was possibly to provide ar arbitrarily large string as the include/exclude reg-ex value under search aggregations. This exposed the underlying node to crashes from a StackOverflowError, due to how the Lucene RegExp class processes strings using stack frames.

Signed-off-by: Kartik Ganesh <gkart@amazon.com>

* Adding integration tests for large string RegEx

Signed-off-by: Kartik Ganesh <gkart@amazon.com>

* Spotless

Signed-off-by: Kartik Ganesh <gkart@amazon.com>
2022-04-07 14:35:40 -07:00
Tianli Feng dd24e17ea6
Fix issue that deprecated setting 'cluster.initial_master_nodes' is not identified in node bootstrap check (#2779)
* Fix issue that deprecated setting 'cluster.initial_master_nodes' is not identified during node bootstrap

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Restore a variable name

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-04-06 15:01:12 -04:00
Tianli Feng 7aa496f9dd
Add request parameter 'cluster_manager_timeout' and deprecate 'master_timeout' - in Index APIs except index template APIs (#2660)
- Deprecate the request parameter `master_timeout` that used in Index APIs which have got the parameter. 
(except index template APIs, which is addressed in PR https://github.com/opensearch-project/OpenSearch/pull/2678) 
- Add alternative new request parameter `cluster_manager_timeout`.
- Add unit tests.

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-04-05 10:47:52 -07:00
Wenjun Ruan 0b1f4a2069
Rename `file` to `dir` in Environment (#2730)
* Rename `file` to `dir` in Environment

Signed-off-by: ruanwenjun <wenjun@apache.org>

* Fix compile error

Signed-off-by: ruanwenjun <wenjun@apache.org>

* fix compile error

Signed-off-by: ruanwenjun <wenjun@apache.org>
2022-04-05 09:23:08 -04:00
Nick Knize 406ee36b15
Fix TaskInfo serialization and unmute task_list bwc test (#2766)
Fixes the version check around resourceStats serialization and unmutes the
failing bwc test.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-04-05 06:25:45 -05:00
Nick Knize cb238aae61
Bump version to 3.0.0 (#2556)
Bump version to 3.0.0

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-04-04 17:40:31 -05:00
Tianli Feng 7d23b180f7
Add request parameter 'cluster_manager_timeout' and deprecate 'master_timeout' - in Cluster APIs (#2658)
- Deprecate the request parameter `master_timeout` that used in Cluster APIs which have got the parameter.
- Add alternative new request parameter `cluster_manager_timeout`.
- Add unit tests.

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-04-04 13:47:34 -07:00
Nick Knize 2d716ad9e2
[Version] Don't spoof major for 3.0+ clusters (#2722)
Changes version comparison logic to only translate major version when 
comparing with legacy 7x versions. This is needed beginning in 2.0 so 
that when running 2.0+ versions in bwc mode for 3.0+ upgrades, node 
versions no longer have to translate major version or spoof to legacy 
versions.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-04-04 14:01:04 -05:00
Wenjun Ruan d848c63260
Optimize Node, remove duplicate Settings (#2703)
Removes duplicate Settings

Signed-off-by: ruanwenjun <wenjun@apache.org>
2022-04-04 10:34:03 -05:00
Nick Knize 6c195abc59
[Main] Bump Version 2.0 to 2.1 (#2715)
Bumps from version 2.0 to 2.1

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-04-02 14:40:25 -05:00
Tianli Feng 78465b4a08
Add request parameter 'cluster_manager_timeout' as the alternative for 'master_timeout', and deprecate 'master_timeout' - in CAT APIs (#2557)
Apply the change of CAT Nodes API in PR #2435 to other applicable CAT APIs.

- Deprecate the request parameter `master_timeout` that used in many CAT APIs.
- Add alternative new request parameter `cluster_manager_timeout`.
- Add unit tests.

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-04-01 16:08:44 -07:00
Tianli Feng e1ee22218a
Centralize codes related to 'master_timeout' deprecation for eaiser removal - in CAT Nodes API (#2670)
* Move parseDeprecatedMasterTimeoutParameter method into BaseRestHandler class to reduce duplication

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Add more comments to unit test

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Make log message key different

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Prohibit using 'master_timeout' and 'cluster_manager_timeout' parameter together

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Add separate unit tests for BaseRestHandler.parseDeprecatedMasterTimeoutParameter()

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Restore unit test for cat allocation api

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Adjust format by spotlessApply task

Signed-off-by: Tianli Feng <ftianli@amazon.com>

* Fix testBothParamsNotValid() by adding warning assertion

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-03-31 20:25:42 -05:00
Suraj Singh e051a426d2
Add 1.3.2 to main causing gradle check failures (#2679)
Signed-off-by: Suraj Singh <surajrider@gmail.com>
2022-03-30 21:33:17 -07:00
Mohit Godwani ec4fe7066b
Make discovered_master field optional on the client to support compatibility for opensearch client with odfe (#2641)
Signed-off-by: Mohit Godwani <mgodwan@amazon.com>
2022-03-29 14:00:12 -04:00
Suraj Singh bcaa06bc0f
Add mapping method back referenced in other repos (#2636)
Signed-off-by: Suraj Singh <surajrider@gmail.com>
2022-03-29 11:27:28 -05:00
Sruti Parthiban 8b997c1d84
Add resource stats to task framework (#2089)
* Add resource stats to task framework

Signed-off-by: sruti1312 <srutiparthiban@gmail.com>

* Update thread resource info and add tests

Signed-off-by: sruti1312 <srutiparthiban@gmail.com>
2022-03-28 13:00:59 -04:00
Andriy Redko 908682d437
Enable merge on refresh and merge on commit on Opensearch (#2535)
Enables merge on refresh and merge on commit in Opensearch by 
way of two new index options: 
index.merge_on_flush.max_full_flush_merge_wait_time and 
index.merge_on_flush.enabled. Default merge_on_flush is disabled and
wait time is 10s. 

Signed-off-by: Andriy Redko <andriy.redko@aiven.io>
2022-03-25 13:45:34 -05:00
Owais Kazi cc0e66b1dc
Replaced "master" terminology in Log message (#2575)
Changed the log message to cluster-manager from master

Signed-off-by: Owais Kazi <owaiskazi19@gmail.com>
2022-03-24 21:50:54 -05:00
Andriy Redko b6ca0d1f78
Concurrent Searching (Experimental) (#1500)
* Concurrent Searching (Experimental)

Signed-off-by: Andriy Redko <andriy.redko@aiven.io>

* Addressingf code review comments

Signed-off-by: Andriy Redko <andriy.redko@aiven.io>
2022-03-24 14:20:31 -04:00
Nick Knize 511ac884fe
[Bug] Fix InboundDecoder version compat check (#2570)
Change InboundDecoder ensureVersionCompatibility check for onOrAfter
V_2_0_0 instead of explicit version check. This way bug fix and minor
versions will correctly handshake in a mixed 1.x Cluster.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-03-23 13:26:36 -05:00
Suraj Singh c1d5491baf
[Type removal] Remove deprecation warning on use of _type in doc scripts (#2564)
Signed-off-by: Suraj Singh <surajrider@gmail.com>
2022-03-23 08:15:17 -05:00
Nick Knize db7f4b0848
[Upgrade] Lucene 9.1 release (#2560)
Upgrades to the official 9.1 release

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-03-23 07:26:18 -05:00
Andriy Redko 82fb7abb71
Introduce QueryPhaseSearcher extension point (SearchPlugin) (#1931)
Signed-off-by: Andriy Redko <andriy.redko@aiven.io>
2022-03-21 23:11:23 -05:00
Nick Knize bd2d9350b7
Support for geo_bounding_box queries on geo_shape fields (#2506)
Adds support for using geo_bounding_box queries on geo_shape field types by
lifting the geo_point restriction in the QueryBuilder. Bounding Box query
integration tests are abstracted to test both geo_point and geo_shape types.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-03-21 22:51:51 -05:00
Suraj Singh 59d1e69129
[Remove] Types from PutIndexTemplateRequest and builder to reduce mapping to a string (#2510)
Signed-off-by: Suraj Singh <surajrider@gmail.com>
2022-03-21 18:49:18 -05:00
Nick Knize 4bb8add982
Support for geo_distance queries on geo_shape fields (#2516)
Adds support for using the geo_distance query on geo_shape field types by
lifting the geo_point restriction in the QueryBuilder. Distance query
integration tests are abstracted to test both geo_point and geo_shape field
types.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-03-21 18:47:49 -05:00
Nick Knize 17f782147a
[Unmute] NumberFieldTypeTests (#2531)
After merging Lucene 9.1 NumberFieldTypeTests is now passing. Unmute test.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-03-21 16:49:13 -04:00
Andriy Redko 1a3dbb70e0
ignore_malformed parameter on ip_range data_type throws mapper_parsing_exception (#2429)
Signed-off-by: Andriy Redko <andriy.redko@aiven.io>
2022-03-21 15:57:42 -04:00
Nick Knize ce0d2ca7bc
Fix bwcVersions after bumping version 1.3.1 (#2532)
Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
2022-03-21 13:40:18 -05:00
Viggo 5dfd05c713
Clear up some confusing code in IndexShardHotSpotTests (#1534)
* clear up some useless but confusing test code

Signed-off-by: Weiguo Chen <viggoc96@gmail.com>

* remove useless comment

Signed-off-by: Weiguo Chen <viggoc96@gmail.com>
2022-03-21 14:36:52 -04:00
Tianli Feng e0f770643c
Add 'cluster_manager_node' into ClusterState Metric as an alternative to 'master_node' (#2415)
* Add `cluster_manager_node` into `ClusterState Metric`, as an alternative to `master_node`. So that the request parameter "metric" in `Cluster reroute` and `Cluster state` API accept the new value `cluster_manager_node`
* Deprecate the enum value of `Metric: MASTER_NODE("master_node")`
* Add YAML REST tests for the new parameter value for "cluster state" and "cluster reroute" API

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-03-18 15:09:37 -07:00
Tianli Feng ea31483126
Add a new node role 'cluster_manager' as the alternative for 'master' role and deprecate 'master' role (#2424)
Add a new node role `cluster_manager`, as the replacement for `master` role, that used in setting `node.roles: [ master ]`. 
They have got the same functionality, but can NOT be assigned to `node.roles` together.
* Add `CLUSTER_MANAGER_ROLE` in `DiscoveryNodeRole` class, and deprecate `MASTER_ROLE`
* Remove `MASTER_ROLE` from the `DiscoveryNodeRole.BUILT_IN_ROLES`, and temporarily load the role by the existing method `DiscoveryNode.setAdditionalRoles`
* Add a method `validateRole()` in `DiscoveryNodeRole` class, it's used to validate a specific role is compatible with the other roles to be assigned to a node together.
* Add deprecation message when assigning `master` role in setting `node.roles`
* Replace most `MASTER_ROLE` with `CLUSTER_MANAGER_ROLE` in current unit and integration tests
* Add new unit and integration tests to validate `CLUSTER_MANAGER_ROLE` and `MASTER_ROLE` can be treated as the same.

More explanation:
* New node will have "cluster_manager", "data", and "ingest" roles by default. Which means the default value of setting "node.roles" will be `["cluster_manager","data","ingest"]`, instead of `["master","data","ingest"]`
* "cluster_manager" role will be treated as "master" role in the OpenSearch node of previous versions.
* "cluster_manager” role and "master" role have got the same abbreviation name: "m"

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-03-18 15:06:06 -07:00
Tianli Feng 641350b0b6
Replace 'master' with 'cluster_manager' in 'GET Cat Nodes' API (#2441)
* Replace 'master' with 'cluster_manager' in the table header of [GET Cat Nodes](https://opensearch.org/docs/latest/opensearch/rest-api/cat/cat-nodes/) API, to promote inclusive language.
* Add `cm` as the alias for the table header `cluster_manager`
* Add `master` as the alias for the table header `cluster_manager`, for keeping compatibility when using `GET _cat/nodes?v&h=master` to show the specific column only.
* Add YAML rest test

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-03-18 15:04:49 -07:00
Tianli Feng ee048851f5
Replace 'discovered_master' with 'discovered_cluster_manager' in 'GET Cat Health' API (#2438)
* Replace 'discovered_master' with 'discovered_cluster_manager' in the table header of `GET Cat Health` API, to promote inclusive language.
* Add `dcm` as the alias for the table header `discovered_cluster_manager`
* Add `discovered_master` as the alias for the table header `discovered_cluster_manager`, for keeping compatibility when using `GET _cat/nodes?v&h=discovered_master` to show the specific column only.
* Add YAML rest test

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-03-18 15:04:03 -07:00
Tianli Feng 1c2bdd8642
Add a field discovered_cluster_manager in get cluster health api (#2437)
* Add a new field discovered_cluster_manager to the response of `GET _cluster/health` API, which has got the same value with the existing discovered_master field, aims to replace the non-inclusive term "master" in the API response field.
* Add yaml rest test to validate `discovered_cluster_manager` and `discovered_master` field have got the same value.

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-03-18 15:03:06 -07:00
Tianli Feng a87c9d4455
Add request parameter 'cluster_manager_timeout' as the alternative for 'master_timeout', and deprecate 'master_timeout' - in CAT Nodes API (#2435)
* `master_timeout` is being used in multiple APIs, such as cat allocation and cat nodes APIs. The PR take CAT Nodes API as a sample.
* Add a new request parameter `cluster_manager_timeout`, as the alternative for the existing `master_timeout`, in CAT Nodes API
* Throw an exception when both master_timeout and cluster_manager_timeout are assigned but with different values, such as `GET _cat/nodes?v&master_timeout=1s&cluster_manager_timeout=2s`. This is addressed by the temporary method `validateParamValuesAreEqual()` added in `RestRequest` class.
* Add deprecation log when using request parameter `master_timeout`
* Deprecate request parameter `master_timeout` of in rest api spec
* Add unit tests

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-03-18 15:02:06 -07:00
Tianli Feng 3da9eb642c
Add a new REST API endpoint 'GET _cat/cluster_manager' as the replacement of 'GET _cat/master' (#2404)
* Add a new path `/_cat/cluster_manager` for the REST request handler `RestMasterAction`
* Deprecate the existing path `/_cat/master`
* Change the name of the `RestMasterAction` handler from `cat_master_action` to `cat_cluster_manager_action`
* Change the response of `GET _cat` to only show the new path `/_cat/cluster_manager`
* Rename the JSON rest-api-spec file `cat.master.json` to `cat.cluster_manager.json` and update the paths.
* Add YAML REST test. By default, it will run test for both endpoints `GET _cat/cluster_manager` and `GET _cat/master`

Signed-off-by: Tianli Feng <ftianli@amazon.com>
2022-03-18 15:00:23 -07:00