Change default backing index naming scheme

This commit is contained in:
Dan Hermann 2020-06-09 09:31:34 -05:00 committed by GitHub
parent e7cc2448d2
commit b501b282f8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
34 changed files with 190 additions and 155 deletions

View File

@ -20,7 +20,7 @@ template>> containing:
* A name or wildcard pattern for the data stream in the `index_patterns` property. * A name or wildcard pattern for the data stream in the `index_patterns` property.
* A `data_stream` definition that contains the `timestamp_field` property. * A `data_stream` definition that contains the `timestamp_field` property.
The `timestamp_field` must be the primary timestamp field The `timestamp_field` must be the primary timestamp field
for the data source. This field must be included in every for the data source. This field must be included in every
document indexed to the data stream. document indexed to the data stream.
@ -78,7 +78,7 @@ Response:
"failed" : 0, "failed" : 0,
"successful" : 1 "successful" : 1
}, },
"_index" : "logs-foobar-000001", "_index" : ".ds-logs-foobar-000001",
"_type" : "_doc", "_type" : "_doc",
"_id" : "W0tpsmIBdwcYyG50zbta", "_id" : "W0tpsmIBdwcYyG50zbta",
"_version" : 1, "_version" : 1,

View File

@ -76,11 +76,11 @@ The API returns the following response:
"timestamp_field" : "@timestamp", <2> "timestamp_field" : "@timestamp", <2>
"indices" : [ <3> "indices" : [ <3>
{ {
"index_name" : "my-data-stream-000001", "index_name" : ".ds-my-data-stream-000001",
"index_uuid" : "DXAE-xcCQTKF93bMm9iawA" "index_uuid" : "DXAE-xcCQTKF93bMm9iawA"
}, },
{ {
"index_name" : "my-data-stream-000002", "index_name" : ".ds-my-data-stream-000002",
"index_uuid" : "Wzxq0VhsQKyPxHhaK3WYAg" "index_uuid" : "Wzxq0VhsQKyPxHhaK3WYAg"
} }
], ],

View File

@ -256,7 +256,7 @@ POST /my-data-stream/_rollover <2>
-------------------------------------------------- --------------------------------------------------
// TEST[continued] // TEST[continued]
// TEST[setup:huge_twitter] // TEST[setup:huge_twitter]
// TEST[s/# Add > 1000 documents to my-data-stream/POST _reindex?refresh\n{"source":{"index":"twitter"},"dest":{"index":"my-data-stream-000001"}}/] // TEST[s/# Add > 1000 documents to my-data-stream/POST _reindex?refresh\n{"source":{"index":"twitter"},"dest":{"index":".ds-my-data-stream-000001"}}/]
<1> Creates a data stream called `my-data-stream` with one initial backing index <1> Creates a data stream called `my-data-stream` with one initial backing index
named `my-data-stream-000001`. named `my-data-stream-000001`.
<2> This request creates a new backing index, `my-data-stream-000002`, and adds <2> This request creates a new backing index, `my-data-stream-000002`, and adds
@ -276,8 +276,8 @@ The API returns the following response:
{ {
"acknowledged": true, "acknowledged": true,
"shards_acknowledged": true, "shards_acknowledged": true,
"old_index": "my-data-stream-000001", <1> "old_index": ".ds-my-data-stream-000001", <1>
"new_index": "my-data-stream-000002", <2> "new_index": ".ds-my-data-stream-000002", <2>
"rolled_over": true, <3> "rolled_over": true, <3>
"dry_run": false, <4> "dry_run": false, <4>
"conditions": { <5> "conditions": { <5>

View File

@ -23,8 +23,8 @@ setup:
--- ---
"Create data stream": "Create data stream":
- skip: - skip:
version: " - 7.8.99" version: " - 7.99.99"
reason: "data streams only supported in 7.9+" reason: "change to 7.8.99 after backport"
- do: - do:
indices.create_data_stream: indices.create_data_stream:
@ -43,12 +43,12 @@ setup:
- match: { 0.timestamp_field: '@timestamp' } - match: { 0.timestamp_field: '@timestamp' }
- match: { 0.generation: 1 } - match: { 0.generation: 1 }
- length: { 0.indices: 1 } - length: { 0.indices: 1 }
- match: { 0.indices.0.index_name: 'simple-data-stream1-000001' } - match: { 0.indices.0.index_name: '.ds-simple-data-stream1-000001' }
- match: { 1.name: simple-data-stream2 } - match: { 1.name: simple-data-stream2 }
- match: { 1.timestamp_field: '@timestamp2' } - match: { 1.timestamp_field: '@timestamp2' }
- match: { 0.generation: 1 } - match: { 0.generation: 1 }
- length: { 1.indices: 1 } - length: { 1.indices: 1 }
- match: { 1.indices.0.index_name: 'simple-data-stream2-000001' } - match: { 1.indices.0.index_name: '.ds-simple-data-stream2-000001' }
- do: - do:
index: index:
@ -64,7 +64,7 @@ setup:
index: simple-data-stream1 index: simple-data-stream1
body: { query: { match_all: {} } } body: { query: { match_all: {} } }
- length: { hits.hits: 1 } - length: { hits.hits: 1 }
- match: { hits.hits.0._index: simple-data-stream1-000001 } - match: { hits.hits.0._index: .ds-simple-data-stream1-000001 }
- match: { hits.hits.0._source.foo: 'bar' } - match: { hits.hits.0._source.foo: 'bar' }
- do: - do:
@ -95,8 +95,8 @@ setup:
--- ---
"Get data stream": "Get data stream":
- skip: - skip:
version: " - 7.8.99" version: " - 7.99.99"
reason: "data streams only supported in 7.9+" reason: "change to 7.8.99 after backport"
- do: - do:
indices.create_data_stream: indices.create_data_stream:
@ -160,8 +160,8 @@ setup:
--- ---
"Delete data stream with backing indices": "Delete data stream with backing indices":
- skip: - skip:
version: " - 7.8.99" version: " - 7.99.99"
reason: data streams only supported in 7.9+ reason: "change to 7.8.99 after backport"
- do: - do:
indices.create_data_stream: indices.create_data_stream:
@ -178,10 +178,10 @@ setup:
- do: - do:
indices.get: indices.get:
index: ['simple-data-stream1-000001', 'test_index'] index: ['.ds-simple-data-stream1-000001', 'test_index']
- is_true: test_index.settings - is_true: test_index.settings
- is_true: simple-data-stream1-000001.settings - is_true: \.ds-simple-data-stream1-000001.settings
- do: - do:
indices.get_data_stream: {} indices.get_data_stream: {}
@ -189,7 +189,7 @@ setup:
- match: { 0.timestamp_field: '@timestamp' } - match: { 0.timestamp_field: '@timestamp' }
- match: { 0.generation: 1 } - match: { 0.generation: 1 }
- length: { 0.indices: 1 } - length: { 0.indices: 1 }
- match: { 0.indices.0.index_name: 'simple-data-stream1-000001' } - match: { 0.indices.0.index_name: '.ds-simple-data-stream1-000001' }
- do: - do:
indices.delete_data_stream: indices.delete_data_stream:
@ -199,4 +199,4 @@ setup:
- do: - do:
catch: missing catch: missing
indices.get: indices.get:
index: "simple-data-stream1-000001" index: ".ds-simple-data-stream1-000001"

View File

@ -1,8 +1,8 @@
--- ---
"Test apis that do not supported data streams": "Test apis that do not supported data streams":
- skip: - skip:
version: " - 7.8.99" version: " - 7.99.99"
reason: "data streams only supported in 7.9+" reason: "change to 7.8.99 after backport"
features: allowed_warnings features: allowed_warnings
- do: - do:
@ -25,14 +25,14 @@
index: logs-foobar index: logs-foobar
refresh: true refresh: true
body: { foo: bar } body: { foo: bar }
- match: {_index: logs-foobar-000001} - match: {_index: .ds-logs-foobar-000001}
- do: - do:
search: search:
index: logs-foobar index: logs-foobar
body: { query: { match_all: {} } } body: { query: { match_all: {} } }
- length: { hits.hits: 1 } - length: { hits.hits: 1 }
- match: { hits.hits.0._index: logs-foobar-000001 } - match: { hits.hits.0._index: .ds-logs-foobar-000001 }
- match: { hits.hits.0._source.foo: 'bar' } - match: { hits.hits.0._source.foo: 'bar' }
- do: - do:

View File

@ -1,8 +1,8 @@
--- ---
"Put index template": "Put index template":
- skip: - skip:
version: " - 7.8.99" version: " - 7.99.99"
reason: "data streams supported from 7.9" reason: "change to 7.8.99 after backport"
features: allowed_warnings features: allowed_warnings
- do: - do:
@ -34,7 +34,7 @@
index: logs-foobar index: logs-foobar
body: { query: { match_all: {} } } body: { query: { match_all: {} } }
- length: { hits.hits: 1 } - length: { hits.hits: 1 }
- match: { hits.hits.0._index: logs-foobar-000001 } - match: { hits.hits.0._index: .ds-logs-foobar-000001 }
- match: { hits.hits.0._source.foo: 'bar' } - match: { hits.hits.0._source.foo: 'bar' }
- do: - do:
@ -43,7 +43,7 @@
- match: { 0.name: logs-foobar } - match: { 0.name: logs-foobar }
- match: { 0.timestamp_field: 'timestamp' } - match: { 0.timestamp_field: 'timestamp' }
- length: { 0.indices: 1 } - length: { 0.indices: 1 }
- match: { 0.indices.0.index_name: 'logs-foobar-000001' } - match: { 0.indices.0.index_name: '.ds-logs-foobar-000001' }
- do: - do:
indices.delete_data_stream: indices.delete_data_stream:

View File

@ -31,9 +31,9 @@ teardown:
- do: - do:
indices.get: indices.get:
index: logs-foobar index: logs-foobar
- is_true: logs-foobar-000001 - is_true: \.ds-logs-foobar-000001
- is_false: logs-foobar - is_false: logs-foobar
- match: { logs-foobar-000001.settings.index.number_of_shards: '1' } - match: { \.ds-logs-foobar-000001.settings.index.number_of_shards: '1' }
--- ---
"Verify get mapping api": "Verify get mapping api":
@ -44,5 +44,5 @@ teardown:
- do: - do:
indices.get_mapping: indices.get_mapping:
index: logs-foobar index: logs-foobar
- is_true: logs-foobar-000001.mappings - is_true: \.ds-logs-foobar-000001.mappings
- is_false: logs-foobar.mappings - is_false: \.ds-logs-foobar.mappings

View File

@ -15,7 +15,7 @@ setup:
"Delete backing index on data stream": "Delete backing index on data stream":
- skip: - skip:
version: " - 7.99.99" version: " - 7.99.99"
reason: "mute bwc until backported" reason: "change to 7.8.99 after backport"
- do: - do:
indices.create_data_stream: indices.create_data_stream:
@ -27,25 +27,25 @@ setup:
indices.rollover: indices.rollover:
alias: "simple-data-stream" alias: "simple-data-stream"
- match: { old_index: simple-data-stream-000001 } - match: { old_index: .ds-simple-data-stream-000001 }
- match: { new_index: simple-data-stream-000002 } - match: { new_index: .ds-simple-data-stream-000002 }
- match: { rolled_over: true } - match: { rolled_over: true }
- match: { dry_run: false } - match: { dry_run: false }
# ensure new index is created # ensure new index is created
- do: - do:
indices.exists: indices.exists:
index: simple-data-stream-000002 index: .ds-simple-data-stream-000002
- is_true: '' - is_true: ''
- do: - do:
indices.delete: indices.delete:
index: simple-data-stream-000001 index: .ds-simple-data-stream-000001
- do: - do:
indices.exists: indices.exists:
index: simple-data-stream-000001 index: .ds-simple-data-stream-000001
- is_false: '' - is_false: ''
@ -56,7 +56,7 @@ setup:
- match: { 0.timestamp_field: '@timestamp' } - match: { 0.timestamp_field: '@timestamp' }
- match: { 0.generation: 2 } - match: { 0.generation: 2 }
- length: { 0.indices: 1 } - length: { 0.indices: 1 }
- match: { 0.indices.0.index_name: 'simple-data-stream-000002' } - match: { 0.indices.0.index_name: '.ds-simple-data-stream-000002' }
- do: - do:
indices.delete_data_stream: indices.delete_data_stream:
@ -79,26 +79,26 @@ setup:
indices.rollover: indices.rollover:
alias: "simple-data-stream" alias: "simple-data-stream"
- match: { old_index: simple-data-stream-000001 } - match: { old_index: .ds-simple-data-stream-000001 }
- match: { new_index: simple-data-stream-000002 } - match: { new_index: .ds-simple-data-stream-000002 }
- match: { rolled_over: true } - match: { rolled_over: true }
- match: { dry_run: false } - match: { dry_run: false }
# ensure new index is created # ensure new index is created
- do: - do:
indices.exists: indices.exists:
index: simple-data-stream-000002 index: .ds-simple-data-stream-000002
- is_true: '' - is_true: ''
- do: - do:
catch: bad_request catch: bad_request
indices.delete: indices.delete:
index: simple-data-stream-000002 index: .ds-simple-data-stream-000002
- do: - do:
indices.exists: indices.exists:
index: simple-data-stream-000002 index: .ds-simple-data-stream-000002
- is_true: '' - is_true: ''

View File

@ -1,8 +1,8 @@
--- ---
"Get backing indices for data stream": "Get backing indices for data stream":
- skip: - skip:
version: " - 7.9.99" version: " - 7.99.99"
reason: "data streams only supported in 7.9+" reason: "change to 7.8.99 after backport"
features: allowed_warnings features: allowed_warnings
- do: - do:
@ -30,11 +30,11 @@
- do: - do:
indices.get: indices.get:
index: ['data-stream1-000001', 'test_index'] index: ['.ds-data-stream1-000001', 'test_index']
- is_true: data-stream1-000001.settings - is_true: \.ds-data-stream1-000001.settings
- is_true: data-stream1-000001.data_stream - is_true: \.ds-data-stream1-000001.data_stream
- match: { data-stream1-000001.data_stream: data-stream1 } - match: { \.ds-data-stream1-000001.data_stream: data-stream1 }
- is_true: test_index.settings - is_true: test_index.settings
- is_false: test_index.data_stream - is_false: test_index.data_stream

View File

@ -144,7 +144,7 @@
- do: - do:
catch: bad_request catch: bad_request
indices.close: indices.close:
index: "simple-data-stream1-000001" index: ".ds-simple-data-stream1-000001"
- do: - do:
indices.delete_data_stream: indices.delete_data_stream:

View File

@ -2,7 +2,7 @@
"Roll over a data stream": "Roll over a data stream":
- skip: - skip:
version: " - 7.99.99" version: " - 7.99.99"
reason: "mute bwc until backported" reason: "change to 7.8.99 after backport"
features: allowed_warnings features: allowed_warnings
- do: - do:
@ -25,15 +25,15 @@
indices.rollover: indices.rollover:
alias: "data-stream-for-rollover" alias: "data-stream-for-rollover"
- match: { old_index: data-stream-for-rollover-000001 } - match: { old_index: .ds-data-stream-for-rollover-000001 }
- match: { new_index: data-stream-for-rollover-000002 } - match: { new_index: .ds-data-stream-for-rollover-000002 }
- match: { rolled_over: true } - match: { rolled_over: true }
- match: { dry_run: false } - match: { dry_run: false }
# ensure new index is created # ensure new index is created
- do: - do:
indices.exists: indices.exists:
index: data-stream-for-rollover-000002 index: .ds-data-stream-for-rollover-000002
- is_true: '' - is_true: ''
@ -44,8 +44,8 @@
- match: { 0.timestamp_field: '@timestamp' } - match: { 0.timestamp_field: '@timestamp' }
- match: { 0.generation: 2 } - match: { 0.generation: 2 }
- length: { 0.indices: 2 } - length: { 0.indices: 2 }
- match: { 0.indices.0.index_name: 'data-stream-for-rollover-000001' } - match: { 0.indices.0.index_name: '.ds-data-stream-for-rollover-000001' }
- match: { 0.indices.1.index_name: 'data-stream-for-rollover-000002' } - match: { 0.indices.1.index_name: '.ds-data-stream-for-rollover-000002' }
- do: - do:
indices.delete_data_stream: indices.delete_data_stream:

View File

@ -107,20 +107,24 @@ public class DataStreamIT extends ESIntegTestCase {
assertThat(getDataStreamResponse.getDataStreams().get(0).getName(), equalTo("metrics-bar")); assertThat(getDataStreamResponse.getDataStreams().get(0).getName(), equalTo("metrics-bar"));
assertThat(getDataStreamResponse.getDataStreams().get(0).getTimeStampField(), equalTo("@timestamp2")); assertThat(getDataStreamResponse.getDataStreams().get(0).getTimeStampField(), equalTo("@timestamp2"));
assertThat(getDataStreamResponse.getDataStreams().get(0).getIndices().size(), equalTo(1)); assertThat(getDataStreamResponse.getDataStreams().get(0).getIndices().size(), equalTo(1));
assertThat(getDataStreamResponse.getDataStreams().get(0).getIndices().get(0).getName(), equalTo("metrics-bar-000001")); assertThat(getDataStreamResponse.getDataStreams().get(0).getIndices().get(0).getName(),
equalTo(DataStream.getDefaultBackingIndexName("metrics-bar", 1)));
assertThat(getDataStreamResponse.getDataStreams().get(1).getName(), equalTo("metrics-foo")); assertThat(getDataStreamResponse.getDataStreams().get(1).getName(), equalTo("metrics-foo"));
assertThat(getDataStreamResponse.getDataStreams().get(1).getTimeStampField(), equalTo("@timestamp1")); assertThat(getDataStreamResponse.getDataStreams().get(1).getTimeStampField(), equalTo("@timestamp1"));
assertThat(getDataStreamResponse.getDataStreams().get(1).getIndices().size(), equalTo(1)); assertThat(getDataStreamResponse.getDataStreams().get(1).getIndices().size(), equalTo(1));
assertThat(getDataStreamResponse.getDataStreams().get(1).getIndices().get(0).getName(), equalTo("metrics-foo-000001")); assertThat(getDataStreamResponse.getDataStreams().get(1).getIndices().get(0).getName(),
equalTo(DataStream.getDefaultBackingIndexName("metrics-foo", 1)));
String backingIndex = DataStream.getDefaultBackingIndexName("metrics-bar", 1);
GetIndexResponse getIndexResponse = GetIndexResponse getIndexResponse =
client().admin().indices().getIndex(new GetIndexRequest().indices("metrics-bar-000001")).actionGet(); client().admin().indices().getIndex(new GetIndexRequest().indices(backingIndex)).actionGet();
assertThat(getIndexResponse.getSettings().get("metrics-bar-000001"), notNullValue()); assertThat(getIndexResponse.getSettings().get(backingIndex), notNullValue());
assertThat(getIndexResponse.getSettings().get("metrics-bar-000001").getAsBoolean("index.hidden", null), is(true)); assertThat(getIndexResponse.getSettings().get(backingIndex).getAsBoolean("index.hidden", null), is(true));
getIndexResponse = client().admin().indices().getIndex(new GetIndexRequest().indices("metrics-foo-000001")).actionGet(); backingIndex = DataStream.getDefaultBackingIndexName("metrics-foo", 1);
assertThat(getIndexResponse.getSettings().get("metrics-foo-000001"), notNullValue()); getIndexResponse = client().admin().indices().getIndex(new GetIndexRequest().indices(backingIndex)).actionGet();
assertThat(getIndexResponse.getSettings().get("metrics-foo-000001").getAsBoolean("index.hidden", null), is(true)); assertThat(getIndexResponse.getSettings().get(backingIndex), notNullValue());
assertThat(getIndexResponse.getSettings().get(backingIndex).getAsBoolean("index.hidden", null), is(true));
int numDocsBar = randomIntBetween(2, 16); int numDocsBar = randomIntBetween(2, 16);
indexDocs("metrics-bar", numDocsBar); indexDocs("metrics-bar", numDocsBar);
@ -131,20 +135,22 @@ public class DataStreamIT extends ESIntegTestCase {
verifyDocs("metrics-foo", numDocsFoo, 1, 1); verifyDocs("metrics-foo", numDocsFoo, 1, 1);
RolloverResponse rolloverResponse = client().admin().indices().rolloverIndex(new RolloverRequest("metrics-foo", null)).get(); RolloverResponse rolloverResponse = client().admin().indices().rolloverIndex(new RolloverRequest("metrics-foo", null)).get();
assertThat(rolloverResponse.getNewIndex(), equalTo("metrics-foo-000002")); assertThat(rolloverResponse.getNewIndex(), equalTo(DataStream.getDefaultBackingIndexName("metrics-foo", 2)));
assertTrue(rolloverResponse.isRolledOver()); assertTrue(rolloverResponse.isRolledOver());
rolloverResponse = client().admin().indices().rolloverIndex(new RolloverRequest("metrics-bar", null)).get(); rolloverResponse = client().admin().indices().rolloverIndex(new RolloverRequest("metrics-bar", null)).get();
assertThat(rolloverResponse.getNewIndex(), equalTo("metrics-bar-000002")); assertThat(rolloverResponse.getNewIndex(), equalTo(DataStream.getDefaultBackingIndexName("metrics-bar", 2)));
assertTrue(rolloverResponse.isRolledOver()); assertTrue(rolloverResponse.isRolledOver());
getIndexResponse = client().admin().indices().getIndex(new GetIndexRequest().indices("metrics-foo-000002")).actionGet(); backingIndex = DataStream.getDefaultBackingIndexName("metrics-foo", 2);
assertThat(getIndexResponse.getSettings().get("metrics-foo-000002"), notNullValue()); getIndexResponse = client().admin().indices().getIndex(new GetIndexRequest().indices(backingIndex)).actionGet();
assertThat(getIndexResponse.getSettings().get("metrics-foo-000002").getAsBoolean("index.hidden", null), is(true)); assertThat(getIndexResponse.getSettings().get(backingIndex), notNullValue());
assertThat(getIndexResponse.getSettings().get(backingIndex).getAsBoolean("index.hidden", null), is(true));
getIndexResponse = client().admin().indices().getIndex(new GetIndexRequest().indices("metrics-bar-000002")).actionGet(); backingIndex = DataStream.getDefaultBackingIndexName("metrics-bar", 2);
assertThat(getIndexResponse.getSettings().get("metrics-bar-000002"), notNullValue()); getIndexResponse = client().admin().indices().getIndex(new GetIndexRequest().indices(backingIndex)).actionGet();
assertThat(getIndexResponse.getSettings().get("metrics-bar-000002").getAsBoolean("index.hidden", null), is(true)); assertThat(getIndexResponse.getSettings().get(backingIndex), notNullValue());
assertThat(getIndexResponse.getSettings().get(backingIndex).getAsBoolean("index.hidden", null), is(true));
int numDocsBar2 = randomIntBetween(2, 16); int numDocsBar2 = randomIntBetween(2, 16);
indexDocs("metrics-bar", numDocsBar2); indexDocs("metrics-bar", numDocsBar2);
@ -160,13 +166,17 @@ public class DataStreamIT extends ESIntegTestCase {
assertThat(getDataStreamResponse.getDataStreams().size(), equalTo(0)); assertThat(getDataStreamResponse.getDataStreams().size(), equalTo(0));
expectThrows(IndexNotFoundException.class, expectThrows(IndexNotFoundException.class,
() -> client().admin().indices().getIndex(new GetIndexRequest().indices("metrics-bar-000001")).actionGet()); () -> client().admin().indices().getIndex(new GetIndexRequest().indices(
DataStream.getDefaultBackingIndexName("metrics-bar", 1))).actionGet());
expectThrows(IndexNotFoundException.class, expectThrows(IndexNotFoundException.class,
() -> client().admin().indices().getIndex(new GetIndexRequest().indices("metrics-bar-000002")).actionGet()); () -> client().admin().indices().getIndex(new GetIndexRequest().indices(
DataStream.getDefaultBackingIndexName("metrics-bar", 2))).actionGet());
expectThrows(IndexNotFoundException.class, expectThrows(IndexNotFoundException.class,
() -> client().admin().indices().getIndex(new GetIndexRequest().indices("metrics-foo-000001")).actionGet()); () -> client().admin().indices().getIndex(new GetIndexRequest().indices(
DataStream.getDefaultBackingIndexName("metrics-foo", 1))).actionGet());
expectThrows(IndexNotFoundException.class, expectThrows(IndexNotFoundException.class,
() -> client().admin().indices().getIndex(new GetIndexRequest().indices("metrics-foo-000002")).actionGet()); () -> client().admin().indices().getIndex(new GetIndexRequest().indices(
DataStream.getDefaultBackingIndexName("metrics-foo", 2))).actionGet());
} }
public void testOtherWriteOps() throws Exception { public void testOtherWriteOps() throws Exception {
@ -207,14 +217,14 @@ public class DataStreamIT extends ESIntegTestCase {
IndexRequest indexRequest = new IndexRequest(dataStreamName).source("{}", XContentType.JSON) IndexRequest indexRequest = new IndexRequest(dataStreamName).source("{}", XContentType.JSON)
.opType(DocWriteRequest.OpType.CREATE); .opType(DocWriteRequest.OpType.CREATE);
IndexResponse indexResponse = client().index(indexRequest).actionGet(); IndexResponse indexResponse = client().index(indexRequest).actionGet();
assertThat(indexResponse.getIndex(), equalTo(DataStream.getBackingIndexName(dataStreamName, 1))); assertThat(indexResponse.getIndex(), equalTo(DataStream.getDefaultBackingIndexName(dataStreamName, 1)));
} }
{ {
BulkRequest bulkRequest = new BulkRequest() BulkRequest bulkRequest = new BulkRequest()
.add(new IndexRequest(dataStreamName).source("{}", XContentType.JSON) .add(new IndexRequest(dataStreamName).source("{}", XContentType.JSON)
.opType(DocWriteRequest.OpType.CREATE)); .opType(DocWriteRequest.OpType.CREATE));
BulkResponse bulkItemResponses = client().bulk(bulkRequest).actionGet(); BulkResponse bulkItemResponses = client().bulk(bulkRequest).actionGet();
assertThat(bulkItemResponses.getItems()[0].getIndex(), equalTo(DataStream.getBackingIndexName(dataStreamName, 1))); assertThat(bulkItemResponses.getItems()[0].getIndex(), equalTo(DataStream.getDefaultBackingIndexName(dataStreamName, 1)));
} }
} }
@ -248,30 +258,32 @@ public class DataStreamIT extends ESIntegTestCase {
indexDocs(dataStreamName, numDocs); indexDocs(dataStreamName, numDocs);
verifyDocs(dataStreamName, numDocs, 1, 1); verifyDocs(dataStreamName, numDocs, 1, 1);
String backingIndex = DataStream.getDefaultBackingIndexName(dataStreamName, 1);
GetDataStreamAction.Request getDataStreamRequest = new GetDataStreamAction.Request("*"); GetDataStreamAction.Request getDataStreamRequest = new GetDataStreamAction.Request("*");
GetDataStreamAction.Response getDataStreamResponse = client().admin().indices().getDataStreams(getDataStreamRequest).actionGet(); GetDataStreamAction.Response getDataStreamResponse = client().admin().indices().getDataStreams(getDataStreamRequest).actionGet();
assertThat(getDataStreamResponse.getDataStreams().size(), equalTo(1)); assertThat(getDataStreamResponse.getDataStreams().size(), equalTo(1));
assertThat(getDataStreamResponse.getDataStreams().get(0).getName(), equalTo(dataStreamName)); assertThat(getDataStreamResponse.getDataStreams().get(0).getName(), equalTo(dataStreamName));
assertThat(getDataStreamResponse.getDataStreams().get(0).getTimeStampField(), equalTo("@timestamp")); assertThat(getDataStreamResponse.getDataStreams().get(0).getTimeStampField(), equalTo("@timestamp"));
assertThat(getDataStreamResponse.getDataStreams().get(0).getIndices().size(), equalTo(1)); assertThat(getDataStreamResponse.getDataStreams().get(0).getIndices().size(), equalTo(1));
assertThat(getDataStreamResponse.getDataStreams().get(0).getIndices().get(0).getName(), equalTo(dataStreamName + "-000001")); assertThat(getDataStreamResponse.getDataStreams().get(0).getIndices().get(0).getName(), equalTo(backingIndex));
GetIndexResponse getIndexResponse = GetIndexResponse getIndexResponse =
client().admin().indices().getIndex(new GetIndexRequest().indices(dataStreamName)).actionGet(); client().admin().indices().getIndex(new GetIndexRequest().indices(dataStreamName)).actionGet();
assertThat(getIndexResponse.getSettings().get(dataStreamName + "-000001"), notNullValue()); assertThat(getIndexResponse.getSettings().get(backingIndex), notNullValue());
assertThat(getIndexResponse.getSettings().get(dataStreamName + "-000001").getAsBoolean("index.hidden", null), is(true)); assertThat(getIndexResponse.getSettings().get(backingIndex).getAsBoolean("index.hidden", null), is(true));
assertThat(ObjectPath.eval("properties.baz_field.type", assertThat(ObjectPath.eval("properties.baz_field.type",
getIndexResponse.mappings().get(dataStreamName + "-000001").get("_doc").getSourceAsMap()), equalTo("keyword")); getIndexResponse.mappings().get(backingIndex).get("_doc").getSourceAsMap()), equalTo("keyword"));
backingIndex = DataStream.getDefaultBackingIndexName(dataStreamName, 2);
RolloverResponse rolloverResponse = client().admin().indices().rolloverIndex(new RolloverRequest(dataStreamName, null)).get(); RolloverResponse rolloverResponse = client().admin().indices().rolloverIndex(new RolloverRequest(dataStreamName, null)).get();
assertThat(rolloverResponse.getNewIndex(), equalTo(dataStreamName + "-000002")); assertThat(rolloverResponse.getNewIndex(), equalTo(backingIndex));
assertTrue(rolloverResponse.isRolledOver()); assertTrue(rolloverResponse.isRolledOver());
getIndexResponse = client().admin().indices().getIndex(new GetIndexRequest().indices(dataStreamName + "-000002")).actionGet(); getIndexResponse = client().admin().indices().getIndex(new GetIndexRequest().indices(backingIndex)).actionGet();
assertThat(getIndexResponse.getSettings().get(dataStreamName + "-000002"), notNullValue()); assertThat(getIndexResponse.getSettings().get(backingIndex), notNullValue());
assertThat(getIndexResponse.getSettings().get(dataStreamName + "-000002").getAsBoolean("index.hidden", null), is(true)); assertThat(getIndexResponse.getSettings().get(backingIndex).getAsBoolean("index.hidden", null), is(true));
assertThat(ObjectPath.eval("properties.baz_field.type", assertThat(ObjectPath.eval("properties.baz_field.type",
getIndexResponse.mappings().get(dataStreamName + "-000002").get("_doc").getSourceAsMap()), equalTo("keyword")); getIndexResponse.mappings().get(backingIndex).get("_doc").getSourceAsMap()), equalTo("keyword"));
int numDocs2 = randomIntBetween(2, 16); int numDocs2 = randomIntBetween(2, 16);
indexDocs(dataStreamName, numDocs2); indexDocs(dataStreamName, numDocs2);
@ -283,9 +295,11 @@ public class DataStreamIT extends ESIntegTestCase {
assertThat(getDataStreamResponse.getDataStreams().size(), equalTo(0)); assertThat(getDataStreamResponse.getDataStreams().size(), equalTo(0));
expectThrows(IndexNotFoundException.class, expectThrows(IndexNotFoundException.class,
() -> client().admin().indices().getIndex(new GetIndexRequest().indices(dataStreamName + "-000001")).actionGet()); () -> client().admin().indices().getIndex(new GetIndexRequest().indices(
DataStream.getDefaultBackingIndexName(dataStreamName, 1))).actionGet());
expectThrows(IndexNotFoundException.class, expectThrows(IndexNotFoundException.class,
() -> client().admin().indices().getIndex(new GetIndexRequest().indices(dataStreamName + "-000002")).actionGet()); () -> client().admin().indices().getIndex(new GetIndexRequest().indices(
DataStream.getDefaultBackingIndexName(dataStreamName, 2))).actionGet());
} }
public void testDataStreamsResolvability() throws Exception { public void testDataStreamsResolvability() throws Exception {
@ -392,10 +406,12 @@ public class DataStreamIT extends ESIntegTestCase {
} }
BulkResponse bulkResponse = client().bulk(bulkRequest).actionGet(); BulkResponse bulkResponse = client().bulk(bulkRequest).actionGet();
assertThat(bulkResponse.getItems().length, equalTo(numDocs)); assertThat(bulkResponse.getItems().length, equalTo(numDocs));
String backingIndex = DataStream.getDefaultBackingIndexName(dataStream, 1);
String backingIndexPrefix = backingIndex.substring(0, backingIndex.length() - 3);
for (BulkItemResponse itemResponse : bulkResponse) { for (BulkItemResponse itemResponse : bulkResponse) {
assertThat(itemResponse.getFailureMessage(), nullValue()); assertThat(itemResponse.getFailureMessage(), nullValue());
assertThat(itemResponse.status(), equalTo(RestStatus.CREATED)); assertThat(itemResponse.status(), equalTo(RestStatus.CREATED));
assertThat(itemResponse.getIndex(), startsWith(dataStream + "-00000")); assertThat(itemResponse.getIndex(), startsWith(backingIndexPrefix));
} }
client().admin().indices().refresh(new RefreshRequest(dataStream)).actionGet(); client().admin().indices().refresh(new RefreshRequest(dataStream)).actionGet();
} }
@ -408,7 +424,7 @@ public class DataStreamIT extends ESIntegTestCase {
List<String> expectedIndices = new ArrayList<>(); List<String> expectedIndices = new ArrayList<>();
for (long k = minGeneration; k <= maxGeneration; k++) { for (long k = minGeneration; k <= maxGeneration; k++) {
expectedIndices.add(DataStream.getBackingIndexName(dataStream, k)); expectedIndices.add(DataStream.getDefaultBackingIndexName(dataStream, k));
} }
Arrays.stream(searchResponse.getHits().getHits()).forEach(hit -> { Arrays.stream(searchResponse.getHits().getHits()).forEach(hit -> {
assertTrue(expectedIndices.contains(hit.getIndex())); assertTrue(expectedIndices.contains(hit.getIndex()));

View File

@ -147,7 +147,7 @@ public class MetadataRolloverService {
final DataStream ds = dataStream.getDataStream(); final DataStream ds = dataStream.getDataStream();
final IndexMetadata originalWriteIndex = dataStream.getWriteIndex(); final IndexMetadata originalWriteIndex = dataStream.getWriteIndex();
final String newWriteIndexName = DataStream.getBackingIndexName(ds.getName(), ds.getGeneration() + 1); final String newWriteIndexName = DataStream.getDefaultBackingIndexName(ds.getName(), ds.getGeneration() + 1);
CreateIndexClusterStateUpdateRequest createIndexClusterStateRequest = CreateIndexClusterStateUpdateRequest createIndexClusterStateRequest =
prepareDataStreamCreateIndexRequest(dataStreamName, newWriteIndexName, createIndexRequest); prepareDataStreamCreateIndexRequest(dataStreamName, newWriteIndexName, createIndexRequest);

View File

@ -37,6 +37,8 @@ import java.util.Objects;
public final class DataStream extends AbstractDiffable<DataStream> implements ToXContentObject { public final class DataStream extends AbstractDiffable<DataStream> implements ToXContentObject {
public static final String BACKING_INDEX_PREFIX = ".ds-";
private final String name; private final String name;
private final String timeStampField; private final String timeStampField;
private final List<Index> indices; private final List<Index> indices;
@ -48,7 +50,7 @@ public final class DataStream extends AbstractDiffable<DataStream> implements To
this.indices = indices; this.indices = indices;
this.generation = generation; this.generation = generation;
assert indices.size() > 0; assert indices.size() > 0;
assert indices.get(indices.size() - 1).getName().equals(getBackingIndexName(name, generation)); assert indices.get(indices.size() - 1).getName().equals(getDefaultBackingIndexName(name, generation));
} }
public DataStream(String name, String timeStampField, List<Index> indices) { public DataStream(String name, String timeStampField, List<Index> indices) {
@ -76,11 +78,11 @@ public final class DataStream extends AbstractDiffable<DataStream> implements To
* the updated list of backing indices and incremented generation. * the updated list of backing indices and incremented generation.
* *
* @param newWriteIndex the new write backing index. Must conform to the naming convention for * @param newWriteIndex the new write backing index. Must conform to the naming convention for
* backing indices on data streams. See {@link #getBackingIndexName}. * backing indices on data streams. See {@link #getDefaultBackingIndexName}.
* @return new {@code DataStream} instance with the rollover operation applied * @return new {@code DataStream} instance with the rollover operation applied
*/ */
public DataStream rollover(Index newWriteIndex) { public DataStream rollover(Index newWriteIndex) {
assert newWriteIndex.getName().equals(getBackingIndexName(name, generation + 1)); assert newWriteIndex.getName().equals(getDefaultBackingIndexName(name, generation + 1));
List<Index> backingIndices = new ArrayList<>(indices); List<Index> backingIndices = new ArrayList<>(indices);
backingIndices.add(newWriteIndex); backingIndices.add(newWriteIndex);
return new DataStream(name, timeStampField, backingIndices, generation + 1); return new DataStream(name, timeStampField, backingIndices, generation + 1);
@ -101,15 +103,15 @@ public final class DataStream extends AbstractDiffable<DataStream> implements To
} }
/** /**
* Generates the name of the index that conforms to the naming convention for backing indices * Generates the name of the index that conforms to the default naming convention for backing indices
* on data streams given the specified data stream name and generation. * on data streams given the specified data stream name and generation.
* *
* @param dataStreamName name of the data stream * @param dataStreamName name of the data stream
* @param generation generation of the data stream * @param generation generation of the data stream
* @return backing index name * @return backing index name
*/ */
public static String getBackingIndexName(String dataStreamName, long generation) { public static String getDefaultBackingIndexName(String dataStreamName, long generation) {
return String.format(Locale.ROOT, "%s-%06d", dataStreamName, generation); return String.format(Locale.ROOT, BACKING_INDEX_PREFIX + "%s-%06d", dataStreamName, generation);
} }
public DataStream(StreamInput in) throws IOException { public DataStream(StreamInput in) throws IOException {

View File

@ -31,7 +31,7 @@ import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static org.elasticsearch.cluster.metadata.DataStream.getBackingIndexName; import static org.elasticsearch.cluster.metadata.DataStream.getDefaultBackingIndexName;
import static org.elasticsearch.cluster.metadata.IndexMetadata.INDEX_HIDDEN_SETTING; import static org.elasticsearch.cluster.metadata.IndexMetadata.INDEX_HIDDEN_SETTING;
import static org.elasticsearch.common.collect.List.copyOf; import static org.elasticsearch.common.collect.List.copyOf;
@ -294,7 +294,7 @@ public interface IndexAbstraction {
this.dataStream = dataStream; this.dataStream = dataStream;
this.dataStreamIndices = copyOf(dataStreamIndices); this.dataStreamIndices = copyOf(dataStreamIndices);
this.writeIndex = dataStreamIndices.get(dataStreamIndices.size() - 1); this.writeIndex = dataStreamIndices.get(dataStreamIndices.size() - 1);
assert writeIndex.getIndex().getName().equals(getBackingIndexName(dataStream.getName(), dataStream.getGeneration())); assert writeIndex.getIndex().getName().equals(getDefaultBackingIndexName(dataStream.getName(), dataStream.getGeneration()));
} }
@Override @Override

View File

@ -1714,8 +1714,8 @@ public class IndexMetadata implements Diffable<IndexMetadata>, ToXContentFragmen
/** /**
* Parses the number from the rolled over index name. It also supports the date-math format (ie. index name is wrapped in &lt; and &gt;) * Parses the number from the rolled over index name. It also supports the date-math format (ie. index name is wrapped in &lt; and &gt;)
* Eg. * E.g.
* - For "logs-000002" it'll return 2 * - For ".ds-logs-000002" it will return 2
* - For "&lt;logs-{now/d}-3&gt;" it'll return 3 * - For "&lt;logs-{now/d}-3&gt;" it'll return 3
* @throws IllegalArgumentException if the index doesn't contain a "-" separator or if the last token after the separator is not a * @throws IllegalArgumentException if the index doesn't contain a "-" separator or if the last token after the separator is not a
* number * number

View File

@ -1531,18 +1531,19 @@ public class Metadata implements Iterable<IndexMetadata>, Diffable<Metadata>, To
/** /**
* Validates there isn't any index with a name that would clash with the future backing indices of the existing data streams. * Validates there isn't any index with a name that would clash with the future backing indices of the existing data streams.
* *
* For eg. if data stream `foo` has backing indices [`foo-000001`, `foo-000002`] and the indices lookup contains indices * E.g., if data stream `foo` has backing indices [`.ds-foo-000001`, `.ds-foo-000002`] and the indices lookup contains indices
* `foo-000001`, `foo-000002` and `foo-000006` this will throw an IllegalStateException (as attempting to rollover the `foo` data * `.ds-foo-000001`, `.ds-foo-000002` and `.ds-foo-000006` this will throw an IllegalStateException (as attempting to rollover the
* stream from generation 5 to 6 will not be possible) * `foo` data stream from generation 5 to 6 will not be possible)
* *
* @param indicesLookup the indices in the system (this includes the data streams backing indices) * @param indicesLookup the indices in the system (this includes the data stream backing indices)
* @param dsMetadata the data streams in the system * @param dsMetadata the data streams in the system
*/ */
static void validateDataStreams(SortedMap<String, IndexAbstraction> indicesLookup, @Nullable DataStreamMetadata dsMetadata) { static void validateDataStreams(SortedMap<String, IndexAbstraction> indicesLookup, @Nullable DataStreamMetadata dsMetadata) {
if (dsMetadata != null) { if (dsMetadata != null) {
for (DataStream ds : dsMetadata.dataStreams().values()) { for (DataStream ds : dsMetadata.dataStreams().values()) {
Map<String, IndexAbstraction> conflicts = Map<String, IndexAbstraction> conflicts =
indicesLookup.subMap(ds.getName() + "-", ds.getName() + ".") // '.' is the char after '-' indicesLookup.subMap(DataStream.BACKING_INDEX_PREFIX + ds.getName() + "-",
DataStream.BACKING_INDEX_PREFIX + ds.getName() + ".") // '.' is the char after '-'
.entrySet().stream() .entrySet().stream()
.filter(entry -> { .filter(entry -> {
if (entry.getValue().getType() != IndexAbstraction.Type.CONCRETE_INDEX) { if (entry.getValue().getType() != IndexAbstraction.Type.CONCRETE_INDEX) {

View File

@ -130,7 +130,7 @@ public class MetadataCreateDataStreamService {
ComposableIndexTemplate template = lookupTemplateForDataStream(request.name, currentState.metadata()); ComposableIndexTemplate template = lookupTemplateForDataStream(request.name, currentState.metadata());
String firstBackingIndexName = DataStream.getBackingIndexName(request.name, 1); String firstBackingIndexName = DataStream.getDefaultBackingIndexName(request.name, 1);
CreateIndexClusterStateUpdateRequest createIndexRequest = CreateIndexClusterStateUpdateRequest createIndexRequest =
new CreateIndexClusterStateUpdateRequest("initialize_data_stream", firstBackingIndexName, firstBackingIndexName) new CreateIndexClusterStateUpdateRequest("initialize_data_stream", firstBackingIndexName, firstBackingIndexName)
.dataStreamName(request.name) .dataStreamName(request.name)

View File

@ -126,7 +126,7 @@ public class DeleteDataStreamRequestTests extends AbstractWireSerializingTestCas
for (Tuple<String, Integer> dsTuple : dataStreams) { for (Tuple<String, Integer> dsTuple : dataStreams) {
List<IndexMetadata> backingIndices = new ArrayList<>(); List<IndexMetadata> backingIndices = new ArrayList<>();
for (int backingIndexNumber = 1; backingIndexNumber <= dsTuple.v2(); backingIndexNumber++) { for (int backingIndexNumber = 1; backingIndexNumber <= dsTuple.v2(); backingIndexNumber++) {
backingIndices.add(createIndexMetadata(DataStream.getBackingIndexName(dsTuple.v1(), backingIndexNumber), true)); backingIndices.add(createIndexMetadata(DataStream.getDefaultBackingIndexName(dsTuple.v1(), backingIndexNumber), true));
} }
allIndices.addAll(backingIndices); allIndices.addAll(backingIndices);

View File

@ -315,7 +315,7 @@ public class MetadataRolloverServiceTests extends ESTestCase {
public void testCreateIndexRequestForDataStream() { public void testCreateIndexRequestForDataStream() {
DataStream dataStream = DataStreamTests.randomInstance(); DataStream dataStream = DataStreamTests.randomInstance();
final String newWriteIndexName = DataStream.getBackingIndexName(dataStream.getName(), dataStream.getGeneration() + 1); final String newWriteIndexName = DataStream.getDefaultBackingIndexName(dataStream.getName(), dataStream.getGeneration() + 1);
final RolloverRequest rolloverRequest = new RolloverRequest(dataStream.getName(), randomAlphaOfLength(10)); final RolloverRequest rolloverRequest = new RolloverRequest(dataStream.getName(), randomAlphaOfLength(10));
final ActiveShardCount activeShardCount = randomBoolean() ? ActiveShardCount.ALL : ActiveShardCount.ONE; final ActiveShardCount activeShardCount = randomBoolean() ? ActiveShardCount.ALL : ActiveShardCount.ONE;
rolloverRequest.getCreateIndexRequest().waitForActiveShards(activeShardCount); rolloverRequest.getCreateIndexRequest().waitForActiveShards(activeShardCount);
@ -560,8 +560,8 @@ public class MetadataRolloverServiceTests extends ESTestCase {
randomBoolean()); randomBoolean());
long after = testThreadPool.absoluteTimeInMillis(); long after = testThreadPool.absoluteTimeInMillis();
String sourceIndexName = DataStream.getBackingIndexName(dataStream.getName(), dataStream.getGeneration()); String sourceIndexName = DataStream.getDefaultBackingIndexName(dataStream.getName(), dataStream.getGeneration());
String newIndexName = DataStream.getBackingIndexName(dataStream.getName(), dataStream.getGeneration() + 1); String newIndexName = DataStream.getDefaultBackingIndexName(dataStream.getName(), dataStream.getGeneration() + 1);
assertEquals(sourceIndexName, rolloverResult.sourceIndexName); assertEquals(sourceIndexName, rolloverResult.sourceIndexName);
assertEquals(newIndexName, rolloverResult.rolloverIndexName); assertEquals(newIndexName, rolloverResult.rolloverIndexName);
Metadata rolloverMetadata = rolloverResult.clusterState.metadata(); Metadata rolloverMetadata = rolloverResult.clusterState.metadata();

View File

@ -29,7 +29,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import static org.elasticsearch.cluster.metadata.DataStream.getBackingIndexName; import static org.elasticsearch.cluster.metadata.DataStream.getDefaultBackingIndexName;
import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.equalTo;
public class DataStreamTests extends AbstractSerializingTestCase<DataStream> { public class DataStreamTests extends AbstractSerializingTestCase<DataStream> {
@ -47,7 +47,7 @@ public class DataStreamTests extends AbstractSerializingTestCase<DataStream> {
List<Index> indices = randomIndexInstances(); List<Index> indices = randomIndexInstances();
long generation = indices.size() + randomLongBetween(1, 128); long generation = indices.size() + randomLongBetween(1, 128);
String dataStreamName = randomAlphaOfLength(10).toLowerCase(Locale.ROOT); String dataStreamName = randomAlphaOfLength(10).toLowerCase(Locale.ROOT);
indices.add(new Index(getBackingIndexName(dataStreamName, generation), UUIDs.randomBase64UUID(random()))); indices.add(new Index(getDefaultBackingIndexName(dataStreamName, generation), UUIDs.randomBase64UUID(random())));
return new DataStream(dataStreamName, randomAlphaOfLength(10), indices, generation); return new DataStream(dataStreamName, randomAlphaOfLength(10), indices, generation);
} }
@ -68,7 +68,7 @@ public class DataStreamTests extends AbstractSerializingTestCase<DataStream> {
public void testRollover() { public void testRollover() {
DataStream ds = randomInstance(); DataStream ds = randomInstance();
Index newWriteIndex = new Index(getBackingIndexName(ds.getName(), ds.getGeneration() + 1), UUIDs.randomBase64UUID(random())); Index newWriteIndex = new Index(getDefaultBackingIndexName(ds.getName(), ds.getGeneration() + 1), UUIDs.randomBase64UUID(random()));
DataStream rolledDs = ds.rollover(newWriteIndex); DataStream rolledDs = ds.rollover(newWriteIndex);
assertThat(rolledDs.getName(), equalTo(ds.getName())); assertThat(rolledDs.getName(), equalTo(ds.getName()));
@ -86,7 +86,7 @@ public class DataStreamTests extends AbstractSerializingTestCase<DataStream> {
List<Index> indices = new ArrayList<>(numBackingIndices); List<Index> indices = new ArrayList<>(numBackingIndices);
for (int k = 1; k <= numBackingIndices; k++) { for (int k = 1; k <= numBackingIndices; k++) {
indices.add(new Index(DataStream.getBackingIndexName(dataStreamName, k), UUIDs.randomBase64UUID(random()))); indices.add(new Index(DataStream.getDefaultBackingIndexName(dataStreamName, k), UUIDs.randomBase64UUID(random())));
} }
DataStream original = new DataStream(dataStreamName, "@timestamp", indices); DataStream original = new DataStream(dataStreamName, "@timestamp", indices);
DataStream updated = original.removeBackingIndex(indices.get(indexToRemove - 1)); DataStream updated = original.removeBackingIndex(indices.get(indexToRemove - 1));
@ -98,4 +98,14 @@ public class DataStreamTests extends AbstractSerializingTestCase<DataStream> {
assertThat(updated.getIndices().get(k), equalTo(original.getIndices().get(k < (indexToRemove - 1) ? k : k + 1))); assertThat(updated.getIndices().get(k), equalTo(original.getIndices().get(k < (indexToRemove - 1) ? k : k + 1)));
} }
} }
public void testDefaultBackingIndexName() {
// this test does little more than flag that changing the default naming convention for backing indices
// will also require changing a lot of hard-coded values in REST tests and docs
long backingIndexNum = randomLongBetween(1, 1000001);
String dataStreamName = randomAlphaOfLength(6);
String defaultBackingIndexName = DataStream.getDefaultBackingIndexName(dataStreamName, backingIndexNum);
String expectedBackingIndexName = String.format(Locale.ROOT, ".ds-%s-%06d", dataStreamName, backingIndexNum);
assertThat(defaultBackingIndexName, equalTo(expectedBackingIndexName));
}
} }

View File

@ -371,7 +371,7 @@ public class IndexMetadataTests extends ESTestCase {
} }
public void testParseIndexNameReturnsCounter() { public void testParseIndexNameReturnsCounter() {
assertThat(parseIndexNameCounter("logs-000003"), is(3)); assertThat(parseIndexNameCounter(".ds-logs-000003"), is(3));
assertThat(parseIndexNameCounter("shrink-logs-000003"), is(3)); assertThat(parseIndexNameCounter("shrink-logs-000003"), is(3));
} }

View File

@ -1777,8 +1777,8 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
IndicesOptions indicesOptions = IndicesOptions.STRICT_EXPAND_OPEN; IndicesOptions indicesOptions = IndicesOptions.STRICT_EXPAND_OPEN;
Index[] result = indexNameExpressionResolver.concreteIndices(state, indicesOptions, true, "my-data-stream"); Index[] result = indexNameExpressionResolver.concreteIndices(state, indicesOptions, true, "my-data-stream");
assertThat(result.length, equalTo(2)); assertThat(result.length, equalTo(2));
assertThat(result[0].getName(), equalTo(dataStreamName + "-000001")); assertThat(result[0].getName(), equalTo(DataStream.getDefaultBackingIndexName(dataStreamName, 1)));
assertThat(result[1].getName(), equalTo(dataStreamName + "-000002")); assertThat(result[1].getName(), equalTo(DataStream.getDefaultBackingIndexName(dataStreamName, 2)));
} }
{ {
// Ignore data streams // Ignore data streams
@ -1809,7 +1809,7 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
{ {
IndicesOptions indicesOptions = IndicesOptions.STRICT_EXPAND_OPEN; IndicesOptions indicesOptions = IndicesOptions.STRICT_EXPAND_OPEN;
Index result = indexNameExpressionResolver.concreteWriteIndex(state, indicesOptions, "my-data-stream", false, true); Index result = indexNameExpressionResolver.concreteWriteIndex(state, indicesOptions, "my-data-stream", false, true);
assertThat(result.getName(), equalTo(dataStreamName + "-000002")); assertThat(result.getName(), equalTo(DataStream.getDefaultBackingIndexName(dataStreamName, 2)));
} }
{ {
// Ignore data streams // Ignore data streams
@ -1861,18 +1861,18 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
Index[] result = indexNameExpressionResolver.concreteIndices(state, indicesOptions, true, "logs-*"); Index[] result = indexNameExpressionResolver.concreteIndices(state, indicesOptions, true, "logs-*");
Arrays.sort(result, Comparator.comparing(Index::getName)); Arrays.sort(result, Comparator.comparing(Index::getName));
assertThat(result.length, equalTo(4)); assertThat(result.length, equalTo(4));
assertThat(result[0].getName(), equalTo(dataStream1 + "-000001")); assertThat(result[0].getName(), equalTo(DataStream.getDefaultBackingIndexName(dataStream1, 1)));
assertThat(result[1].getName(), equalTo(dataStream1 + "-000002")); assertThat(result[1].getName(), equalTo(DataStream.getDefaultBackingIndexName(dataStream1, 2)));
assertThat(result[2].getName(), equalTo(dataStream2 + "-000001")); assertThat(result[2].getName(), equalTo(DataStream.getDefaultBackingIndexName(dataStream2, 1)));
assertThat(result[3].getName(), equalTo(dataStream2 + "-000002")); assertThat(result[3].getName(), equalTo(DataStream.getDefaultBackingIndexName(dataStream2, 2)));;
} }
{ {
IndicesOptions indicesOptions = IndicesOptions.STRICT_EXPAND_OPEN; IndicesOptions indicesOptions = IndicesOptions.STRICT_EXPAND_OPEN;
Index[] result = indexNameExpressionResolver.concreteIndices(state, indicesOptions, true, "logs-m*"); Index[] result = indexNameExpressionResolver.concreteIndices(state, indicesOptions, true, "logs-m*");
Arrays.sort(result, Comparator.comparing(Index::getName)); Arrays.sort(result, Comparator.comparing(Index::getName));
assertThat(result.length, equalTo(2)); assertThat(result.length, equalTo(2));
assertThat(result[0].getName(), equalTo(dataStream1 + "-000001")); assertThat(result[0].getName(), equalTo(DataStream.getDefaultBackingIndexName(dataStream1, 1)));
assertThat(result[1].getName(), equalTo(dataStream1 + "-000002")); assertThat(result[1].getName(), equalTo(DataStream.getDefaultBackingIndexName(dataStream1, 2)));
} }
{ {
IndicesOptions indicesOptions = IndicesOptions.STRICT_EXPAND_OPEN; // without include data streams IndicesOptions indicesOptions = IndicesOptions.STRICT_EXPAND_OPEN; // without include data streams
@ -1906,8 +1906,8 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
Index[] result = indexNameExpressionResolver.concreteIndices(state, indicesOptions, true, "logs-*"); Index[] result = indexNameExpressionResolver.concreteIndices(state, indicesOptions, true, "logs-*");
Arrays.sort(result, Comparator.comparing(Index::getName)); Arrays.sort(result, Comparator.comparing(Index::getName));
assertThat(result.length, equalTo(3)); assertThat(result.length, equalTo(3));
assertThat(result[0].getName(), equalTo("logs-foobar-000001")); assertThat(result[0].getName(), equalTo(DataStream.getDefaultBackingIndexName(dataStream1, 1)));
assertThat(result[1].getName(), equalTo("logs-foobar-000002")); assertThat(result[1].getName(), equalTo(DataStream.getDefaultBackingIndexName(dataStream1, 2)));
assertThat(result[2].getName(), equalTo("logs-foobarbaz-0")); assertThat(result[2].getName(), equalTo("logs-foobarbaz-0"));
} }
} }

View File

@ -53,8 +53,8 @@ public class MetadataCreateDataStreamServiceTests extends ESTestCase {
ClusterState newState = MetadataCreateDataStreamService.createDataStream(metadataCreateIndexService, cs, req); ClusterState newState = MetadataCreateDataStreamService.createDataStream(metadataCreateIndexService, cs, req);
assertThat(newState.metadata().dataStreams().size(), equalTo(1)); assertThat(newState.metadata().dataStreams().size(), equalTo(1));
assertThat(newState.metadata().dataStreams().get(dataStreamName).getName(), equalTo(dataStreamName)); assertThat(newState.metadata().dataStreams().get(dataStreamName).getName(), equalTo(dataStreamName));
assertThat(newState.metadata().index(DataStream.getBackingIndexName(dataStreamName, 1)), notNullValue()); assertThat(newState.metadata().index(DataStream.getDefaultBackingIndexName(dataStreamName, 1)), notNullValue());
assertThat(newState.metadata().index(DataStream.getBackingIndexName(dataStreamName, 1)).getSettings().get("index.hidden"), assertThat(newState.metadata().index(DataStream.getDefaultBackingIndexName(dataStreamName, 1)).getSettings().get("index.hidden"),
equalTo("true")); equalTo("true"));
} }

View File

@ -120,12 +120,13 @@ public class MetadataDeleteIndexServiceTests extends ESTestCase {
int numIndexToDelete = randomIntBetween(1, numBackingIndices - 1); int numIndexToDelete = randomIntBetween(1, numBackingIndices - 1);
Index indexToDelete = before.metadata().index(DataStream.getBackingIndexName(dataStreamName, numIndexToDelete)).getIndex(); Index indexToDelete = before.metadata().index(DataStream.getDefaultBackingIndexName(dataStreamName, numIndexToDelete)).getIndex();
ClusterState after = service.deleteIndices(before, Set.of(indexToDelete)); ClusterState after = service.deleteIndices(before, Set.of(indexToDelete));
assertThat(after.metadata().getIndices().get(indexToDelete.getName()), IsNull.nullValue()); assertThat(after.metadata().getIndices().get(indexToDelete.getName()), IsNull.nullValue());
assertThat(after.metadata().getIndices().size(), equalTo(numBackingIndices - 1)); assertThat(after.metadata().getIndices().size(), equalTo(numBackingIndices - 1));
assertThat(after.metadata().getIndices().get(DataStream.getBackingIndexName(dataStreamName, numIndexToDelete)), IsNull.nullValue()); assertThat(after.metadata().getIndices().get(
DataStream.getDefaultBackingIndexName(dataStreamName, numIndexToDelete)), IsNull.nullValue());
} }
public void testDeleteCurrentWriteIndexForDataStream() { public void testDeleteCurrentWriteIndexForDataStream() {
@ -134,7 +135,7 @@ public class MetadataDeleteIndexServiceTests extends ESTestCase {
ClusterState before = DeleteDataStreamRequestTests.getClusterStateWithDataStreams( ClusterState before = DeleteDataStreamRequestTests.getClusterStateWithDataStreams(
List.of(new Tuple<>(dataStreamName, numBackingIndices)), List.of()); List.of(new Tuple<>(dataStreamName, numBackingIndices)), List.of());
Index indexToDelete = before.metadata().index(DataStream.getBackingIndexName(dataStreamName, numBackingIndices)).getIndex(); Index indexToDelete = before.metadata().index(DataStream.getDefaultBackingIndexName(dataStreamName, numBackingIndices)).getIndex();
Exception e = expectThrows(IllegalArgumentException.class, () -> service.deleteIndices(before, Set.of(indexToDelete))); Exception e = expectThrows(IllegalArgumentException.class, () -> service.deleteIndices(before, Set.of(indexToDelete)));
assertThat(e.getMessage(), containsString("index [" + indexToDelete.getName() + "] is the write index for data stream [" + assertThat(e.getMessage(), containsString("index [" + indexToDelete.getName() + "] is the write index for data stream [" +

View File

@ -399,7 +399,7 @@ public class MetadataIndexStateServiceTests extends ESTestCase {
String dataStreamName = randomAlphaOfLength(6).toLowerCase(Locale.ROOT); String dataStreamName = randomAlphaOfLength(6).toLowerCase(Locale.ROOT);
int numBackingIndices = randomIntBetween(1, 5); int numBackingIndices = randomIntBetween(1, 5);
dataStreamsToCreate.add(new Tuple<>(dataStreamName, numBackingIndices)); dataStreamsToCreate.add(new Tuple<>(dataStreamName, numBackingIndices));
writeIndices.add(DataStream.getBackingIndexName(dataStreamName, numBackingIndices)); writeIndices.add(DataStream.getDefaultBackingIndexName(dataStreamName, numBackingIndices));
} }
ClusterState cs = DeleteDataStreamRequestTests.getClusterStateWithDataStreams(dataStreamsToCreate, ClusterState cs = DeleteDataStreamRequestTests.getClusterStateWithDataStreams(dataStreamsToCreate,
org.elasticsearch.common.collect.List.of()); org.elasticsearch.common.collect.List.of());

View File

@ -998,13 +998,14 @@ public class MetadataTests extends ESTestCase {
IllegalStateException e = expectThrows(IllegalStateException.class, b::build); IllegalStateException e = expectThrows(IllegalStateException.class, b::build);
assertThat(e.getMessage(), assertThat(e.getMessage(),
containsString("index, alias, and data stream names need to be unique, but the following duplicates were found [" + containsString("index, alias, and data stream names need to be unique, but the following duplicates were found [" +
dataStreamName + " (alias of [" + DataStream.getBackingIndexName(dataStreamName, 1) + "]) conflicts with data stream]")); dataStreamName + " (alias of [" + DataStream.getDefaultBackingIndexName(dataStreamName, 1) +
"]) conflicts with data stream]"));
} }
public void testBuilderRejectsDataStreamWithConflictingBackingIndices() { public void testBuilderRejectsDataStreamWithConflictingBackingIndices() {
final String dataStreamName = "my-data-stream"; final String dataStreamName = "my-data-stream";
IndexMetadata validIdx = createFirstBackingIndex(dataStreamName).build(); IndexMetadata validIdx = createFirstBackingIndex(dataStreamName).build();
final String conflictingIndex = DataStream.getBackingIndexName(dataStreamName, 2); final String conflictingIndex = DataStream.getDefaultBackingIndexName(dataStreamName, 2);
IndexMetadata invalidIdx = createBackingIndex(dataStreamName, 2).build(); IndexMetadata invalidIdx = createBackingIndex(dataStreamName, 2).build();
Metadata.Builder b = Metadata.builder() Metadata.Builder b = Metadata.builder()
.put(validIdx, false) .put(validIdx, false)
@ -1018,7 +1019,7 @@ public class MetadataTests extends ESTestCase {
public void testBuilderRejectsDataStreamWithConflictingBackingAlias() { public void testBuilderRejectsDataStreamWithConflictingBackingAlias() {
final String dataStreamName = "my-data-stream"; final String dataStreamName = "my-data-stream";
final String conflictingName = DataStream.getBackingIndexName(dataStreamName, 2); final String conflictingName = DataStream.getDefaultBackingIndexName(dataStreamName, 2);
IndexMetadata idx = createFirstBackingIndex(dataStreamName) IndexMetadata idx = createFirstBackingIndex(dataStreamName)
.putAlias(new AliasMetadata.Builder(conflictingName)) .putAlias(new AliasMetadata.Builder(conflictingName))
.build(); .build();
@ -1039,7 +1040,7 @@ public class MetadataTests extends ESTestCase {
Metadata.Builder b = Metadata.builder(); Metadata.Builder b = Metadata.builder();
for (int k = 1; k <= numBackingIndices; k++) { for (int k = 1; k <= numBackingIndices; k++) {
lastBackingIndexNum = randomIntBetween(lastBackingIndexNum + 1, lastBackingIndexNum + 50); lastBackingIndexNum = randomIntBetween(lastBackingIndexNum + 1, lastBackingIndexNum + 50);
IndexMetadata im = IndexMetadata.builder(DataStream.getBackingIndexName(dataStreamName, lastBackingIndexNum)) IndexMetadata im = IndexMetadata.builder(DataStream.getDefaultBackingIndexName(dataStreamName, lastBackingIndexNum))
.settings(settings(Version.CURRENT)) .settings(settings(Version.CURRENT))
.numberOfShards(1) .numberOfShards(1)
.numberOfReplicas(1) .numberOfReplicas(1)
@ -1081,7 +1082,8 @@ public class MetadataTests extends ESTestCase {
assertThat(value.isHidden(), is(false)); assertThat(value.isHidden(), is(false));
assertThat(value.getType(), equalTo(IndexAbstraction.Type.DATA_STREAM)); assertThat(value.getType(), equalTo(IndexAbstraction.Type.DATA_STREAM));
assertThat(value.getIndices().size(), equalTo(ds.getIndices().size())); assertThat(value.getIndices().size(), equalTo(ds.getIndices().size()));
assertThat(value.getWriteIndex().getIndex().getName(), equalTo(name + "-00000" + ds.getIndices().size())); assertThat(value.getWriteIndex().getIndex().getName(),
equalTo(DataStream.getDefaultBackingIndexName(name, ds.getGeneration())));
} }
} }
@ -1153,7 +1155,7 @@ public class MetadataTests extends ESTestCase {
expectThrows(IllegalStateException.class, () -> validateDataStreams(indicesLookup, dataStreamMetadata)); expectThrows(IllegalStateException.class, () -> validateDataStreams(indicesLookup, dataStreamMetadata));
assertThat(illegalStateException.getMessage(), assertThat(illegalStateException.getMessage(),
is("data stream [foo-datastream] could create backing indices that conflict with 1 existing index(s) or alias(s) " + is("data stream [foo-datastream] could create backing indices that conflict with 1 existing index(s) or alias(s) " +
"including 'foo-datastream-000020'")); "including '" + index.getName() + "'"));
} }
public void testValidateDataStreamsIgnoresIndicesWithoutCounter() { public void testValidateDataStreamsIgnoresIndicesWithoutCounter() {
@ -1192,7 +1194,7 @@ public class MetadataTests extends ESTestCase {
for (int i = 1; i <= generations; i++) { for (int i = 1; i <= generations; i++) {
IndexMetadata idx; IndexMetadata idx;
if (i % 2 == 0 && i < generations) { if (i % 2 == 0 && i < generations) {
idx = IndexMetadata.builder("shrink-" + DataStream.getBackingIndexName(dataStreamName, i)) idx = IndexMetadata.builder("shrink-" + DataStream.getDefaultBackingIndexName(dataStreamName, i))
.settings(ESTestCase.settings(Version.CURRENT).put("index.hidden", true)) .settings(ESTestCase.settings(Version.CURRENT).put("index.hidden", true))
.numberOfShards(1) .numberOfShards(1)
.numberOfReplicas(1) .numberOfReplicas(1)
@ -1283,7 +1285,7 @@ public class MetadataTests extends ESTestCase {
int lastIndexNum = randomIntBetween(9, 50); int lastIndexNum = randomIntBetween(9, 50);
Metadata.Builder b = Metadata.builder(); Metadata.Builder b = Metadata.builder();
for (int k = 1; k <= numIndices; k++) { for (int k = 1; k <= numIndices; k++) {
IndexMetadata im = IndexMetadata.builder(DataStream.getBackingIndexName("index", lastIndexNum)) IndexMetadata im = IndexMetadata.builder(DataStream.getDefaultBackingIndexName("index", lastIndexNum))
.settings(settings(Version.CURRENT)) .settings(settings(Version.CURRENT))
.numberOfShards(1) .numberOfShards(1)
.numberOfReplicas(1) .numberOfReplicas(1)
@ -1298,7 +1300,7 @@ public class MetadataTests extends ESTestCase {
int lastBackingIndexNum = 0; int lastBackingIndexNum = 0;
for (int k = 1; k <= numBackingIndices; k++) { for (int k = 1; k <= numBackingIndices; k++) {
lastBackingIndexNum = randomIntBetween(lastBackingIndexNum + 1, lastBackingIndexNum + 50); lastBackingIndexNum = randomIntBetween(lastBackingIndexNum + 1, lastBackingIndexNum + 50);
IndexMetadata im = IndexMetadata.builder(DataStream.getBackingIndexName(dataStreamName, lastBackingIndexNum)) IndexMetadata im = IndexMetadata.builder(DataStream.getDefaultBackingIndexName(dataStreamName, lastBackingIndexNum))
.settings(settings(Version.CURRENT)) .settings(settings(Version.CURRENT))
.numberOfShards(1) .numberOfShards(1)
.numberOfReplicas(1) .numberOfReplicas(1)

View File

@ -39,7 +39,7 @@ public final class DataStreamTestHelper {
} }
public static IndexMetadata.Builder createBackingIndex(String dataStreamName, int generation) { public static IndexMetadata.Builder createBackingIndex(String dataStreamName, int generation) {
return IndexMetadata.builder(DataStream.getBackingIndexName(dataStreamName, generation)) return IndexMetadata.builder(DataStream.getDefaultBackingIndexName(dataStreamName, generation))
.settings(SETTINGS) .settings(SETTINGS)
.numberOfShards(NUMBER_OF_SHARDS) .numberOfShards(NUMBER_OF_SHARDS)
.numberOfReplicas(NUMBER_OF_REPLICAS); .numberOfReplicas(NUMBER_OF_REPLICAS);

View File

@ -121,7 +121,7 @@ public class RolloverStepTests extends AbstractStepMasterTimeoutTestCase<Rollove
public void testPerformActionOnDataStream() { public void testPerformActionOnDataStream() {
String dataStreamName = "test-datastream"; String dataStreamName = "test-datastream";
IndexMetadata indexMetadata = IndexMetadata.builder(dataStreamName + "-000001") IndexMetadata indexMetadata = IndexMetadata.builder(DataStream.getDefaultBackingIndexName(dataStreamName, 1))
.settings(settings(Version.CURRENT)) .settings(settings(Version.CURRENT))
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build(); .numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();

View File

@ -83,12 +83,12 @@ public class UpdateRolloverLifecycleDateStepTests extends AbstractStepTestCase<U
long creationDate = randomLongBetween(0, 1000000); long creationDate = randomLongBetween(0, 1000000);
long rolloverTime = randomValueOtherThan(creationDate, () -> randomNonNegativeLong()); long rolloverTime = randomValueOtherThan(creationDate, () -> randomNonNegativeLong());
String dataStreamName = "test-datastream"; String dataStreamName = "test-datastream";
IndexMetadata originalIndexMeta = IndexMetadata.builder(dataStreamName + "-000001") IndexMetadata originalIndexMeta = IndexMetadata.builder(DataStream.getDefaultBackingIndexName(dataStreamName, 1))
.putRolloverInfo(new RolloverInfo(dataStreamName, Collections.emptyList(), rolloverTime)) .putRolloverInfo(new RolloverInfo(dataStreamName, Collections.emptyList(), rolloverTime))
.settings(settings(Version.CURRENT)) .settings(settings(Version.CURRENT))
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build(); .numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
IndexMetadata rolledIndexMeta= IndexMetadata.builder(dataStreamName + "-000002") IndexMetadata rolledIndexMeta= IndexMetadata.builder(DataStream.getDefaultBackingIndexName(dataStreamName, 2))
.settings(settings(Version.CURRENT)) .settings(settings(Version.CURRENT))
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build(); .numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();

View File

@ -149,11 +149,11 @@ public class WaitForActiveShardsTests extends AbstractStepTestCase<WaitForActive
public void testResultEvaluatedOnDataStream() throws IOException { public void testResultEvaluatedOnDataStream() throws IOException {
String dataStreamName = "test-datastream"; String dataStreamName = "test-datastream";
IndexMetadata originalIndexMeta = IndexMetadata.builder(dataStreamName + "-000001") IndexMetadata originalIndexMeta = IndexMetadata.builder(DataStream.getDefaultBackingIndexName(dataStreamName, 1))
.settings(settings(Version.CURRENT)) .settings(settings(Version.CURRENT))
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build(); .numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
IndexMetadata rolledIndexMeta= IndexMetadata.builder(dataStreamName + "-000002") IndexMetadata rolledIndexMeta= IndexMetadata.builder(DataStream.getDefaultBackingIndexName(dataStreamName, 2))
.settings(settings(Version.CURRENT).put("index.write.wait_for_active_shards", "3")) .settings(settings(Version.CURRENT).put("index.write.wait_for_active_shards", "3"))
.numberOfShards(1).numberOfReplicas(3).build(); .numberOfShards(1).numberOfReplicas(3).build();

View File

@ -139,7 +139,7 @@ public class WaitForRolloverReadyStepTests extends AbstractStepTestCase<WaitForR
public void testEvaluateConditionOnDataStreamTarget() { public void testEvaluateConditionOnDataStreamTarget() {
String dataStreamName = "test-datastream"; String dataStreamName = "test-datastream";
IndexMetadata indexMetadata = IndexMetadata.builder(dataStreamName + "-000001") IndexMetadata indexMetadata = IndexMetadata.builder(DataStream.getDefaultBackingIndexName(dataStreamName, 1))
.settings(settings(Version.CURRENT)) .settings(settings(Version.CURRENT))
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build(); .numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();

View File

@ -6,6 +6,7 @@
package org.elasticsearch.xpack.ilm; package org.elasticsearch.xpack.ilm;
import org.elasticsearch.cluster.metadata.DataStream;
import org.elasticsearch.cluster.metadata.Template; import org.elasticsearch.cluster.metadata.Template;
import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.test.rest.ESRestTestCase; import org.elasticsearch.test.rest.ESRestTestCase;
@ -32,9 +33,11 @@ public class TimeSeriesDataStreamsIT extends ESRestTestCase {
String dataStream = "logs-foo"; String dataStream = "logs-foo";
indexDocument(client(), dataStream, true); indexDocument(client(), dataStream, true);
assertBusy(() -> assertTrue(indexExists("logs-foo-000002"))); assertBusy(() -> assertTrue(indexExists(DataStream.getDefaultBackingIndexName(dataStream, 2))));
assertBusy(() -> assertTrue(Boolean.parseBoolean((String) getIndexSettingsAsMap("logs-foo-000002").get("index.hidden")))); assertBusy(() -> assertTrue(Boolean.parseBoolean((String) getIndexSettingsAsMap(
assertBusy(() -> assertThat(getStepKeyForIndex(client(), "logs-foo-000001"), equalTo(PhaseCompleteStep.finalStep("hot").getKey()))); DataStream.getDefaultBackingIndexName(dataStream, 2)).get("index.hidden"))));
assertBusy(() -> assertThat(getStepKeyForIndex(client(), DataStream.getDefaultBackingIndexName(dataStream, 1)),
equalTo(PhaseCompleteStep.finalStep("hot").getKey())));
} }
} }

View File

@ -103,7 +103,7 @@
ilm.explain_lifecycle: ilm.explain_lifecycle:
index: logs-foobar index: logs-foobar
- is_false: indices.logs-foobar.managed - is_false: indices.logs-foobar.managed
- is_true: indices.logs-foobar-000001.managed - is_true: indices.\.ds-logs-foobar-000001.managed
- do: - do:
indices.delete_data_stream: indices.delete_data_stream: