Skip to content

Commit

Permalink
Adding number of routing shards to index settings before passing into…
Browse files Browse the repository at this point in the history
… GetSettingsResponse

Signed-off-by: Sophia <tjdud6024@gmail.com>
  • Loading branch information
Sophia committed Jun 21, 2024
1 parent bcccedb commit 3a85274
Show file tree
Hide file tree
Showing 3 changed files with 190 additions and 1 deletion.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- Fix the computed max shards of cluster to avoid int overflow ([#14155](https://github.com/opensearch-project/OpenSearch/pull/14155))
- Fixed rest-high-level client searchTemplate & mtermVectors endpoints to have a leading slash ([#14465](https://github.com/opensearch-project/OpenSearch/pull/14465))
- Write shard level metadata blob when snapshotting searchable snapshot indexes ([#13190](https://github.com/opensearch-project/OpenSearch/pull/13190))
- Updated GET {index}/_settings to return `number_of_routing_shards` ([#14446](https://github.com/opensearch-project/OpenSearch/pull/14446))

### Security

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,183 @@
---
setup:
- skip:
version: " - 2.15.99"
reason: "number_of_routing_shards returned starting in 2.16.0"
- do:
indices.create:
index: test_1
body:
settings:
number_of_shards: 5
number_of_replicas: 1
- do:
indices.create:
index: test_2
body:
settings:
number_of_shards: 3
number_of_replicas: 0
number_of_routing_shards: 6

---
"Get /_settings":

- do:
indices.get_settings: {}

- match: { test_1.settings.index.number_of_shards: "5"}
- match: { test_1.settings.index.number_of_replicas: "1"}
- match: { test_2.settings.index.number_of_shards: "3"}
- match: { test_2.settings.index.number_of_replicas: "0"}
- match: { test_2.settings.index.number_of_replicas: "6"}

---
"Get /{index}/_settings":

- do:
indices.get_settings:
index: test_1

- match: { test_1.settings.index.number_of_shards: "5"}
- match: { test_1.settings.index.number_of_replicas: "1"}
- is_false: test_2


---
"Get /{index}/_settings/_all":

- do:
indices.get_settings:
index: test_1
name: _all

- match: { test_1.settings.index.number_of_shards: "5"}
- match: { test_1.settings.index.number_of_replicas: "1"}
- is_false: test_2

---
"Get /{index}/_settings/*":

- do:
indices.get_settings:
index: test_1
name: '*'

- match: { test_1.settings.index.number_of_shards: "5"}
- match: { test_1.settings.index.number_of_replicas: "1"}
- is_false: test_2

---
"Get /{index}/_settings/{name}":

- do:
indices.get_settings:
index: test_1
name: index.number_of_shards

- match: { test_1.settings.index.number_of_shards: "5"}
- is_false: test_1.settings.index.number_of_replicas
- is_false: test_2

---
"Get /{index}/_settings/{name,name}":

- do:
indices.get_settings:
index: test_1
name: index.number_of_shards,index.number_of_replicas

- match: { test_1.settings.index.number_of_shards: "5"}
- match: { test_1.settings.index.number_of_replicas: "1"}
- is_false: test_2

---
"Get /{index}/_settings/{name*}":

- do:
indices.get_settings:
index: test_1
name: 'index.number_of_s*'

- match: { test_1.settings.index.number_of_shards: "5"}
- is_false: test_1.settings.index.number_of_replicas
- is_false: test_2

---
"Get /_settings/{name}":

- do:
indices.get_settings:
name: index.number_of_shards

- match: { test_1.settings.index.number_of_shards: "5"}
- match: { test_2.settings.index.number_of_shards: "3"}
- is_false: test_1.settings.index.number_of_replicas
- is_false: test_2.settings.index.number_of_replicas
- is_false: test_2.settings.index.number_of_routing_shards

---
"Get /_all/_settings/{name}":

- do:
indices.get_settings:
index: _all
name: index.number_of_shards

- match: { test_1.settings.index.number_of_shards: "5"}
- match: { test_2.settings.index.number_of_shards: "3"}
- is_false: test_1.settings.index.number_of_replicas
- is_false: test_2.settings.index.number_of_replicas
- is_false: test_2.settings.index.number_of_routing_shards


---
"Get /*/_settings/{name}":

- do:
indices.get_settings:
index: '*'
name: index.number_of_shards

- match: { test_1.settings.index.number_of_shards: "5"}
- match: { test_2.settings.index.number_of_shards: "3"}
- is_false: test_1.settings.index.number_of_replicas
- is_false: test_2.settings.index.number_of_replicas
- is_false: test_2.settings.index.number_of_routing_shards

---
"Get /index,index/_settings/{name}":

- do:
indices.get_settings:
index: test_1,test_2
name: index.number_of_shards

- match: { test_1.settings.index.number_of_shards: "5"}
- match: { test_2.settings.index.number_of_shards: "3"}
- is_false: test_1.settings.index.number_of_replicas
- is_false: test_2.settings.index.number_of_replicas
- is_false: test_2.settings.index.number_of_routing_shards

---
"Get /index*/_settings/{name}":

- do:
indices.get_settings:
index: '*2'
name: index.number_of_shards

- match: { test_2.settings.index.number_of_shards: "3"}
- is_false: test_1
- is_false: test_2.settings.index.number_of_replicas
- is_false: test_2.settings.index.number_of_routing_shards

---
"Get /_settings with local flag":

- do:
indices.get_settings:
local: true

- is_true: test_1
- is_true: test_2
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,12 @@ protected void clusterManagerOperation(GetSettingsRequest request, ClusterState
continue;
}

Settings indexSettings = settingsFilter.filter(indexMetadata.getSettings());
Settings indexSettingsWithRoutingShards = Settings.builder()
.put(indexMetadata.getSettings())
.put(IndexMetadata.INDEX_NUMBER_OF_ROUTING_SHARDS_SETTING.getKey(), indexMetadata.getRoutingNumShards())
.build();

Settings indexSettings = settingsFilter.filter(indexSettingsWithRoutingShards);
if (request.humanReadable()) {
indexSettings = IndexMetadata.addHumanReadableSettings(indexSettings);
}
Expand Down

0 comments on commit 3a85274

Please sign in to comment.