diff --git a/server/src/main/java/org/elasticsearch/TransportVersions.java b/server/src/main/java/org/elasticsearch/TransportVersions.java index 1750cc642dec6..297d0424c526e 100644 --- a/server/src/main/java/org/elasticsearch/TransportVersions.java +++ b/server/src/main/java/org/elasticsearch/TransportVersions.java @@ -192,7 +192,6 @@ static TransportVersion def(int id) { public static final TransportVersion ML_INFERENCE_ELASTIC_RERANK_ADDED_8_19 = def(8_841_0_48); public static final TransportVersion NONE_CHUNKING_STRATEGY_8_19 = def(8_841_0_49); public static final TransportVersion IDP_CUSTOM_SAML_ATTRIBUTES_ALLOW_LIST_8_19 = def(8_841_0_50); - public static final TransportVersion SETTINGS_IN_DATA_STREAMS_8_19 = def(8_841_0_51); public static final TransportVersion INITIAL_ELASTICSEARCH_9_0 = def(9_000_0_00); public static final TransportVersion REMOVE_SNAPSHOT_FAILURES_90 = def(9_000_0_01); public static final TransportVersion TRANSPORT_STATS_HANDLING_TIME_REQUIRED_90 = def(9_000_0_02); @@ -263,7 +262,6 @@ static TransportVersion def(int id) { public static final TransportVersion SYNONYMS_REFRESH_PARAM = def(9_060_0_00); public static final TransportVersion DOC_FIELDS_AS_LIST = def(9_061_0_00); public static final TransportVersion DENSE_VECTOR_OFF_HEAP_STATS = def(9_062_00_0); - public static final TransportVersion SETTINGS_IN_DATA_STREAMS = def(9_064_0_00); public static final TransportVersion INTRODUCE_FAILURES_LIFECYCLE = def(9_065_0_00); public static final TransportVersion PROJECT_METADATA_SETTINGS = def(9_066_0_00); public static final TransportVersion AGGREGATE_METRIC_DOUBLE_BLOCK = def(9_067_0_00); @@ -280,7 +278,6 @@ static TransportVersion def(int id) { public static final TransportVersion ML_INFERENCE_HUGGING_FACE_CHAT_COMPLETION_ADDED = def(9_078_0_00); public static final TransportVersion NODES_STATS_SUPPORTS_MULTI_PROJECT = def(9_079_0_00); public static final TransportVersion ML_INFERENCE_HUGGING_FACE_RERANK_ADDED = def(9_080_0_00); - public static final TransportVersion SETTINGS_IN_DATA_STREAMS_DRY_RUN = def(9_081_0_00); public static final TransportVersion ML_INFERENCE_SAGEMAKER_CHAT_COMPLETION = def(9_082_0_00); public static final TransportVersion ML_INFERENCE_VERTEXAI_CHATCOMPLETION_ADDED = def(9_083_0_00); public static final TransportVersion INFERENCE_CUSTOM_SERVICE_ADDED = def(9_084_0_00); diff --git a/server/src/main/java/org/elasticsearch/action/datastreams/UpdateDataStreamSettingsAction.java b/server/src/main/java/org/elasticsearch/action/datastreams/UpdateDataStreamSettingsAction.java index bca0b1650581b..8f6fd6ec711b8 100644 --- a/server/src/main/java/org/elasticsearch/action/datastreams/UpdateDataStreamSettingsAction.java +++ b/server/src/main/java/org/elasticsearch/action/datastreams/UpdateDataStreamSettingsAction.java @@ -9,7 +9,7 @@ package org.elasticsearch.action.datastreams; -import org.elasticsearch.TransportVersions; +import org.elasticsearch.TransportVersion; import org.elasticsearch.action.ActionResponse; import org.elasticsearch.action.ActionType; import org.elasticsearch.action.IndicesRequest; @@ -41,6 +41,8 @@ public class UpdateDataStreamSettingsAction extends ActionType, ToXContentO private static final Logger LOGGER = LogManager.getLogger(DataStream.class); + private static final TransportVersion SETTINGS_IN_DATA_STREAMS = TransportVersion.fromName("settings_in_data_streams"); private static final TransportVersion MAPPINGS_IN_DATA_STREAMS = TransportVersion.fromName("mappings_in_data_streams"); public static final NodeFeature DATA_STREAM_FAILURE_STORE_FEATURE = new NodeFeature("data_stream.failure_store"); @@ -306,8 +307,7 @@ public static DataStream read(StreamInput in) throws IOException { dataStreamOptions = failureStoreEnabled ? DataStreamOptions.FAILURE_STORE_ENABLED : null; } final Settings settings; - if (in.getTransportVersion().onOrAfter(TransportVersions.SETTINGS_IN_DATA_STREAMS) - || in.getTransportVersion().isPatchFrom(TransportVersions.SETTINGS_IN_DATA_STREAMS_8_19)) { + if (in.getTransportVersion().supports(SETTINGS_IN_DATA_STREAMS)) { settings = Settings.readSettingsFromStream(in); } else { settings = Settings.EMPTY; @@ -1391,8 +1391,7 @@ public void writeTo(StreamOutput out) throws IOException { if (out.getTransportVersion().onOrAfter(DataStream.ADD_DATA_STREAM_OPTIONS_VERSION)) { out.writeOptionalWriteable(dataStreamOptions.isEmpty() ? null : dataStreamOptions); } - if (out.getTransportVersion().onOrAfter(TransportVersions.SETTINGS_IN_DATA_STREAMS) - || out.getTransportVersion().isPatchFrom(TransportVersions.SETTINGS_IN_DATA_STREAMS_8_19)) { + if (out.getTransportVersion().supports(SETTINGS_IN_DATA_STREAMS)) { settings.writeTo(out); } if (out.getTransportVersion().supports(MAPPINGS_IN_DATA_STREAMS)) { diff --git a/server/src/main/resources/transport/definitions/referable/settings_in_data_streams.csv b/server/src/main/resources/transport/definitions/referable/settings_in_data_streams.csv new file mode 100644 index 0000000000000..5800cc4b54698 --- /dev/null +++ b/server/src/main/resources/transport/definitions/referable/settings_in_data_streams.csv @@ -0,0 +1 @@ +9064000,8841051 diff --git a/server/src/main/resources/transport/definitions/unreferable/dead_settings_in_data_streams.csv b/server/src/main/resources/transport/definitions/unreferable/dead_settings_in_data_streams.csv new file mode 100644 index 0000000000000..06d0c5fec9c3b --- /dev/null +++ b/server/src/main/resources/transport/definitions/unreferable/dead_settings_in_data_streams.csv @@ -0,0 +1 @@ +9081000 diff --git a/server/src/test/java/org/elasticsearch/cluster/metadata/DataStreamOptionsTemplateTests.java b/server/src/test/java/org/elasticsearch/cluster/metadata/DataStreamOptionsTemplateTests.java index 90f70a9bf9242..3c860316e09d9 100644 --- a/server/src/test/java/org/elasticsearch/cluster/metadata/DataStreamOptionsTemplateTests.java +++ b/server/src/test/java/org/elasticsearch/cluster/metadata/DataStreamOptionsTemplateTests.java @@ -9,7 +9,7 @@ package org.elasticsearch.cluster.metadata; -import org.elasticsearch.TransportVersions; +import org.elasticsearch.TransportVersion; import org.elasticsearch.common.io.stream.Writeable; import org.elasticsearch.test.AbstractXContentSerializingTestCase; import org.elasticsearch.xcontent.XContentParser; @@ -21,6 +21,7 @@ public class DataStreamOptionsTemplateTests extends AbstractXContentSerializingTestCase { public static final DataStreamOptions.Template RESET = new DataStreamOptions.Template(ResettableValue.reset()); + private static final TransportVersion SETTINGS_IN_DATA_STREAMS = TransportVersion.fromName("settings_in_data_streams"); @Override protected Writeable.Reader instanceReader() { @@ -126,13 +127,13 @@ public void testTemplateComposition() { } public void testBackwardCompatibility() throws IOException { - DataStreamOptions.Template result = copyInstance(DataStreamOptions.Template.EMPTY, TransportVersions.SETTINGS_IN_DATA_STREAMS); + DataStreamOptions.Template result = copyInstance(DataStreamOptions.Template.EMPTY, SETTINGS_IN_DATA_STREAMS); assertThat(result, equalTo(DataStreamOptions.Template.EMPTY)); DataStreamOptions.Template withEnabled = new DataStreamOptions.Template( new DataStreamFailureStore.Template(randomBoolean(), DataStreamLifecycleTemplateTests.randomFailuresLifecycleTemplate()) ); - result = copyInstance(withEnabled, TransportVersions.SETTINGS_IN_DATA_STREAMS); + result = copyInstance(withEnabled, SETTINGS_IN_DATA_STREAMS); assertThat(result.failureStore().get().enabled(), equalTo(withEnabled.failureStore().get().enabled())); assertThat(result.failureStore().get().lifecycle(), equalTo(ResettableValue.undefined())); @@ -144,13 +145,13 @@ public void testBackwardCompatibility() throws IOException { : ResettableValue.create(DataStreamLifecycleTemplateTests.randomFailuresLifecycleTemplate()) ) ); - result = copyInstance(withoutEnabled, TransportVersions.SETTINGS_IN_DATA_STREAMS); + result = copyInstance(withoutEnabled, SETTINGS_IN_DATA_STREAMS); assertThat(result, equalTo(DataStreamOptions.Template.EMPTY)); DataStreamOptions.Template withEnabledReset = new DataStreamOptions.Template( new DataStreamFailureStore.Template(ResettableValue.reset(), ResettableValue.undefined()) ); - result = copyInstance(withEnabledReset, TransportVersions.SETTINGS_IN_DATA_STREAMS); + result = copyInstance(withEnabledReset, SETTINGS_IN_DATA_STREAMS); assertThat(result, equalTo(new DataStreamOptions.Template(ResettableValue.reset()))); } } diff --git a/server/src/test/java/org/elasticsearch/cluster/metadata/DataStreamOptionsTests.java b/server/src/test/java/org/elasticsearch/cluster/metadata/DataStreamOptionsTests.java index 2487d355424cb..d27b29c581dad 100644 --- a/server/src/test/java/org/elasticsearch/cluster/metadata/DataStreamOptionsTests.java +++ b/server/src/test/java/org/elasticsearch/cluster/metadata/DataStreamOptionsTests.java @@ -9,7 +9,7 @@ package org.elasticsearch.cluster.metadata; -import org.elasticsearch.TransportVersions; +import org.elasticsearch.TransportVersion; import org.elasticsearch.common.io.stream.Writeable; import org.elasticsearch.test.AbstractXContentSerializingTestCase; import org.elasticsearch.xcontent.XContentParser; @@ -21,6 +21,8 @@ public class DataStreamOptionsTests extends AbstractXContentSerializingTestCase { + private static final TransportVersion SETTINGS_IN_DATA_STREAMS = TransportVersion.fromName("settings_in_data_streams"); + @Override protected Writeable.Reader instanceReader() { return DataStreamOptions::read; @@ -57,20 +59,20 @@ protected DataStreamOptions doParseInstance(XContentParser parser) throws IOExce } public void testBackwardCompatibility() throws IOException { - DataStreamOptions result = copyInstance(DataStreamOptions.EMPTY, TransportVersions.SETTINGS_IN_DATA_STREAMS); + DataStreamOptions result = copyInstance(DataStreamOptions.EMPTY, SETTINGS_IN_DATA_STREAMS); assertThat(result, equalTo(DataStreamOptions.EMPTY)); DataStreamOptions withEnabled = new DataStreamOptions( new DataStreamFailureStore(randomBoolean(), DataStreamLifecycleTests.randomFailuresLifecycle()) ); - result = copyInstance(withEnabled, TransportVersions.SETTINGS_IN_DATA_STREAMS); + result = copyInstance(withEnabled, SETTINGS_IN_DATA_STREAMS); assertThat(result.failureStore().enabled(), equalTo(withEnabled.failureStore().enabled())); assertThat(result.failureStore().lifecycle(), nullValue()); DataStreamOptions withoutEnabled = new DataStreamOptions( new DataStreamFailureStore(null, DataStreamLifecycleTests.randomFailuresLifecycle()) ); - result = copyInstance(withoutEnabled, TransportVersions.SETTINGS_IN_DATA_STREAMS); + result = copyInstance(withoutEnabled, SETTINGS_IN_DATA_STREAMS); assertThat(result, equalTo(DataStreamOptions.EMPTY)); } }