[7.x] Add data stream support to open index API (#58767)

This commit is contained in:
Dan Hermann 2020-06-30 14:30:32 -05:00 committed by GitHub
parent 22806c943d
commit cae49b0fd7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 73 additions and 2 deletions

View File

@ -155,3 +155,72 @@
indices.delete_data_stream:
name: simple-data-stream1
- is_true: acknowledged
---
"Open write index for data stream opens all backing indices":
- skip:
version: " - 7.99.99"
reason: "change to - 7.8.99 after backport"
features: allowed_warnings
- do:
allowed_warnings:
- "index template [my-template1] has index patterns [simple-data-stream1] matching patterns from existing older templates [global] with patterns (global => [*]); this template [my-template1] will take precedence during new index creation"
indices.put_index_template:
name: my-template1
body:
index_patterns: [simple-data-stream1]
template:
mappings:
properties:
'@timestamp':
type: date
data_stream:
timestamp_field: '@timestamp'
- do:
indices.create_data_stream:
name: simple-data-stream1
- is_true: acknowledged
# rollover data stream twice to create new backing indices
- do:
indices.rollover:
alias: "simple-data-stream1"
- match: { old_index: .ds-simple-data-stream1-000001 }
- match: { new_index: .ds-simple-data-stream1-000002 }
- match: { rolled_over: true }
- match: { dry_run: false }
- do:
indices.rollover:
alias: "simple-data-stream1"
- match: { old_index: .ds-simple-data-stream1-000002 }
- match: { new_index: .ds-simple-data-stream1-000003 }
- match: { rolled_over: true }
- match: { dry_run: false }
- do:
indices.close:
index: ".ds-simple-data-stream1-000001,.ds-simple-data-stream1-000002"
- is_true: acknowledged
- do:
indices.open:
index: simple-data-stream1
- is_true: acknowledged
# all closed backing indices should be re-opened and returned
- do:
indices.get:
index: ".ds-simple-data-stream1-*"
- is_true: \.ds-simple-data-stream1-000001.settings
- is_true: \.ds-simple-data-stream1-000002.settings
- do:
indices.delete_data_stream:
name: simple-data-stream1
- is_true: acknowledged

View File

@ -392,6 +392,7 @@ public class DataStreamIT extends ESIntegTestCase {
verifyResolvability(dataStreamName, client().admin().cluster().prepareState().setIndices(dataStreamName), false);
verifyResolvability(dataStreamName, client().prepareFieldCaps(dataStreamName).setFields("*"), false);
verifyResolvability(dataStreamName, client().admin().indices().prepareGetIndex().addIndices(dataStreamName), false);
verifyResolvability(dataStreamName, client().admin().indices().prepareOpen(dataStreamName), false);
request = new CreateDataStreamAction.Request("logs-barbaz");
client().admin().indices().createDataStream(request).actionGet();
@ -421,6 +422,7 @@ public class DataStreamIT extends ESIntegTestCase {
verifyResolvability(wildcardExpression, client().admin().cluster().prepareState().setIndices(wildcardExpression), false);
verifyResolvability(wildcardExpression, client().prepareFieldCaps(wildcardExpression).setFields("*"), false);
verifyResolvability(wildcardExpression, client().admin().indices().prepareGetIndex().addIndices(wildcardExpression), false);
verifyResolvability(wildcardExpression, client().admin().indices().prepareOpen(wildcardExpression), false);
}
public void testCannotDeleteComposableTemplateUsedByDataStream() throws Exception {

View File

@ -83,13 +83,13 @@ public class TransportOpenIndexAction extends TransportMasterNodeAction<OpenInde
@Override
protected ClusterBlockException checkBlock(OpenIndexRequest request, ClusterState state) {
return state.blocks().indicesBlockedException(ClusterBlockLevel.METADATA_WRITE,
indexNameExpressionResolver.concreteIndexNames(state, request));
indexNameExpressionResolver.concreteIndexNames(state, request, true));
}
@Override
protected void masterOperation(final OpenIndexRequest request, final ClusterState state,
final ActionListener<OpenIndexResponse> listener) {
final Index[] concreteIndices = indexNameExpressionResolver.concreteIndices(state, request);
final Index[] concreteIndices = indexNameExpressionResolver.concreteIndices(state, request, true);
if (concreteIndices == null || concreteIndices.length == 0) {
listener.onResponse(new OpenIndexResponse(true, true));
return;