|
51 | 51 | import org.elasticsearch.action.admin.indices.rollover.RolloverResponse;
|
52 | 52 | import org.elasticsearch.action.admin.indices.settings.put.UpdateSettingsRequest;
|
53 | 53 | import org.elasticsearch.action.admin.indices.settings.put.UpdateSettingsResponse;
|
| 54 | +import org.elasticsearch.action.admin.indices.settings.get.GetSettingsRequest; |
| 55 | +import org.elasticsearch.action.admin.indices.settings.get.GetSettingsResponse; |
54 | 56 | import org.elasticsearch.action.admin.indices.shrink.ResizeRequest;
|
55 | 57 | import org.elasticsearch.action.admin.indices.shrink.ResizeResponse;
|
56 | 58 | import org.elasticsearch.action.admin.indices.shrink.ResizeType;
|
@@ -189,6 +191,108 @@ public void testCreateIndex() throws IOException {
|
189 | 191 | }
|
190 | 192 | }
|
191 | 193 |
|
| 194 | + public void testGetSettings() throws IOException { |
| 195 | + String indexName = "get_settings_index"; |
| 196 | + Settings basicSettings = Settings.builder() |
| 197 | + .put("number_of_shards", 1) |
| 198 | + .put("number_of_replicas", 0) |
| 199 | + .build(); |
| 200 | + createIndex(indexName, basicSettings); |
| 201 | + |
| 202 | + GetSettingsRequest getSettingsRequest = new GetSettingsRequest().indices(indexName); |
| 203 | + GetSettingsResponse getSettingsResponse = execute(getSettingsRequest, highLevelClient().indices()::getSettings, |
| 204 | + highLevelClient().indices()::getSettingsAsync); |
| 205 | + |
| 206 | + assertNull(getSettingsResponse.getSetting(indexName, "index.refresh_interval")); |
| 207 | + assertEquals("1", getSettingsResponse.getSetting(indexName, "index.number_of_shards")); |
| 208 | + |
| 209 | + updateIndexSettings(indexName, Settings.builder().put("refresh_interval", "30s")); |
| 210 | + |
| 211 | + GetSettingsResponse updatedResponse = execute(getSettingsRequest, highLevelClient().indices()::getSettings, |
| 212 | + highLevelClient().indices()::getSettingsAsync); |
| 213 | + assertEquals("30s", updatedResponse.getSetting(indexName, "index.refresh_interval")); |
| 214 | + } |
| 215 | + |
| 216 | + public void testGetSettingsNonExistentIndex() throws IOException { |
| 217 | + String nonExistentIndex = "index_that_doesnt_exist"; |
| 218 | + assertFalse(indexExists(nonExistentIndex)); |
| 219 | + |
| 220 | + GetSettingsRequest getSettingsRequest = new GetSettingsRequest().indices(nonExistentIndex); |
| 221 | + ElasticsearchException exception = expectThrows(ElasticsearchException.class, |
| 222 | + () -> execute(getSettingsRequest, highLevelClient().indices()::getSettings, highLevelClient().indices()::getSettingsAsync)); |
| 223 | + assertEquals(RestStatus.NOT_FOUND, exception.status()); |
| 224 | + } |
| 225 | + |
| 226 | + public void testGetSettingsFromMultipleIndices() throws IOException { |
| 227 | + String indexName1 = "get_multiple_settings_one"; |
| 228 | + createIndex(indexName1, Settings.builder().put("number_of_shards", 2).build()); |
| 229 | + |
| 230 | + String indexName2 = "get_multiple_settings_two"; |
| 231 | + createIndex(indexName2, Settings.builder().put("number_of_shards", 3).build()); |
| 232 | + |
| 233 | + GetSettingsRequest getSettingsRequest = new GetSettingsRequest().indices("get_multiple_settings*"); |
| 234 | + GetSettingsResponse getSettingsResponse = execute(getSettingsRequest, highLevelClient().indices()::getSettings, |
| 235 | + highLevelClient().indices()::getSettingsAsync); |
| 236 | + |
| 237 | + assertEquals("2", getSettingsResponse.getSetting(indexName1, "index.number_of_shards")); |
| 238 | + assertEquals("3", getSettingsResponse.getSetting(indexName2, "index.number_of_shards")); |
| 239 | + } |
| 240 | + |
| 241 | + public void testGetSettingsFiltered() throws IOException { |
| 242 | + String indexName = "get_settings_index"; |
| 243 | + Settings basicSettings = Settings.builder() |
| 244 | + .put("number_of_shards", 1) |
| 245 | + .put("number_of_replicas", 0) |
| 246 | + .build(); |
| 247 | + createIndex(indexName, basicSettings); |
| 248 | + |
| 249 | + GetSettingsRequest getSettingsRequest = new GetSettingsRequest().indices(indexName).names("index.number_of_shards"); |
| 250 | + GetSettingsResponse getSettingsResponse = execute(getSettingsRequest, highLevelClient().indices()::getSettings, |
| 251 | + highLevelClient().indices()::getSettingsAsync); |
| 252 | + |
| 253 | + assertNull(getSettingsResponse.getSetting(indexName, "index.number_of_replicas")); |
| 254 | + assertEquals("1", getSettingsResponse.getSetting(indexName, "index.number_of_shards")); |
| 255 | + assertEquals(1, getSettingsResponse.getIndexToSettings().get("get_settings_index").size()); |
| 256 | + } |
| 257 | + |
| 258 | + public void testGetSettingsWithDefaults() throws IOException { |
| 259 | + String indexName = "get_settings_index"; |
| 260 | + Settings basicSettings = Settings.builder() |
| 261 | + .put("number_of_shards", 1) |
| 262 | + .put("number_of_replicas", 0) |
| 263 | + .build(); |
| 264 | + createIndex(indexName, basicSettings); |
| 265 | + |
| 266 | + GetSettingsRequest getSettingsRequest = new GetSettingsRequest().indices(indexName).includeDefaults(true); |
| 267 | + GetSettingsResponse getSettingsResponse = execute(getSettingsRequest, highLevelClient().indices()::getSettings, |
| 268 | + highLevelClient().indices()::getSettingsAsync); |
| 269 | + |
| 270 | + assertNotNull(getSettingsResponse.getSetting(indexName, "index.refresh_interval")); |
| 271 | + assertEquals(IndexSettings.DEFAULT_REFRESH_INTERVAL, |
| 272 | + getSettingsResponse.getIndexToDefaultSettings().get("get_settings_index").getAsTime("index.refresh_interval", null)); |
| 273 | + assertEquals("1", getSettingsResponse.getSetting(indexName, "index.number_of_shards")); |
| 274 | + } |
| 275 | + |
| 276 | + public void testGetSettingsWithDefaultsFiltered() throws IOException { |
| 277 | + String indexName = "get_settings_index"; |
| 278 | + Settings basicSettings = Settings.builder() |
| 279 | + .put("number_of_shards", 1) |
| 280 | + .put("number_of_replicas", 0) |
| 281 | + .build(); |
| 282 | + createIndex(indexName, basicSettings); |
| 283 | + |
| 284 | + GetSettingsRequest getSettingsRequest = new GetSettingsRequest() |
| 285 | + .indices(indexName) |
| 286 | + .names("index.refresh_interval") |
| 287 | + .includeDefaults(true); |
| 288 | + GetSettingsResponse getSettingsResponse = execute(getSettingsRequest, highLevelClient().indices()::getSettings, |
| 289 | + highLevelClient().indices()::getSettingsAsync); |
| 290 | + |
| 291 | + assertNull(getSettingsResponse.getSetting(indexName, "index.number_of_replicas")); |
| 292 | + assertNull(getSettingsResponse.getSetting(indexName, "index.number_of_shards")); |
| 293 | + assertEquals(0, getSettingsResponse.getIndexToSettings().get("get_settings_index").size()); |
| 294 | + assertEquals(1, getSettingsResponse.getIndexToDefaultSettings().get("get_settings_index").size()); |
| 295 | + } |
192 | 296 | public void testPutMapping() throws IOException {
|
193 | 297 | {
|
194 | 298 | // Add mappings to index
|
|
0 commit comments