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 <[email protected]>
  • Loading branch information
Sophia committed Jun 21, 2024
1 parent f8e8865 commit 24a4ecb
Show file tree
Hide file tree
Showing 3 changed files with 95 additions and 82 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- Write shard level metadata blob when snapshotting searchable snapshot indexes ([#13190](https://github.com/opensearch-project/OpenSearch/pull/13190))
- Fix aggs result of NestedAggregator with sub NestedAggregator ([#13324](https://github.com/opensearch-project/OpenSearch/pull/13324))
- Add ListPitInfo::getKeepAlive() getter ([#14495](https://github.com/opensearch-project/OpenSearch/pull/14495))
- 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
@@ -1,173 +1,180 @@
---
setup:
- do:
indices.create:
index: test_1
body:
settings:
number_of_shards: 5
number_of_replicas: 1
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
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: {}
- 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_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_routing_shards: "0"}

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

- do:
indices.get_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
- 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:
- 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
- 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:
- 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
- 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:
- 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
- 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:
- 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
- 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:
- 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
- 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:
- 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
- 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:
- 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
- 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:
- 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
- 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:
- 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
- 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:
- 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
- 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:
- do:
indices.get_settings:
local: true

- is_true: test_1
- is_true: test_2
- 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 24a4ecb

Please sign in to comment.