}
GlobalRoutingTableDiff(StreamInput in) throws IOException {
- if (in.getTransportVersion().onOrAfter(TransportVersions.MULTI_PROJECT)) {
+ if (in.getTransportVersion().supports(MULTI_PROJECT)) {
this.routingTable = DiffableUtils.readImmutableOpenMapDiff(in, PROJECT_ID_KEY_SERIALIZER, DIFF_VALUE_READER);
this.singleProjectForBwc = null;
} else {
@@ -364,7 +366,7 @@ public GlobalRoutingTable apply(GlobalRoutingTable part) {
@Override
public void writeTo(StreamOutput out) throws IOException {
- if (out.getTransportVersion().onOrAfter(TransportVersions.MULTI_PROJECT)) {
+ if (out.getTransportVersion().supports(MULTI_PROJECT)) {
routingTable.writeTo(out);
} else {
if (singleProjectForBwc != null) {
diff --git a/server/src/main/java/org/elasticsearch/cluster/routing/UnassignedInfo.java b/server/src/main/java/org/elasticsearch/cluster/routing/UnassignedInfo.java
index 5ffc258ef8d85..e1ca713e9fe73 100644
--- a/server/src/main/java/org/elasticsearch/cluster/routing/UnassignedInfo.java
+++ b/server/src/main/java/org/elasticsearch/cluster/routing/UnassignedInfo.java
@@ -91,6 +91,8 @@ public record UnassignedInfo(
Property.IndexScope
);
+ private static final TransportVersion UNASSIGENEDINFO_RESHARD_ADDED = TransportVersion.fromName("unassignedinfo_reshard_added");
+
/**
* Reason why the shard is in unassigned state.
*
@@ -328,14 +330,13 @@ public static UnassignedInfo fromStreamInput(StreamInput in) throws IOException
public void writeTo(StreamOutput out) throws IOException {
if (reason.equals(Reason.UNPROMOTABLE_REPLICA) && out.getTransportVersion().before(VERSION_UNPROMOTABLE_REPLICA_ADDED)) {
out.writeByte((byte) Reason.PRIMARY_FAILED.ordinal());
- } else if (reason.equals(Reason.RESHARD_ADDED)
- && out.getTransportVersion().before(TransportVersions.UNASSIGENEDINFO_RESHARD_ADDED)) {
- // We should have protection to ensure we do not reshard in mixed clusters
- assert false;
- out.writeByte((byte) Reason.FORCED_EMPTY_PRIMARY.ordinal());
- } else {
- out.writeByte((byte) reason.ordinal());
- }
+ } else if (reason.equals(Reason.RESHARD_ADDED) && out.getTransportVersion().supports(UNASSIGENEDINFO_RESHARD_ADDED) == false) {
+ // We should have protection to ensure we do not reshard in mixed clusters
+ assert false;
+ out.writeByte((byte) Reason.FORCED_EMPTY_PRIMARY.ordinal());
+ } else {
+ out.writeByte((byte) reason.ordinal());
+ }
out.writeLong(unassignedTimeMillis);
// Do not serialize unassignedTimeNanos as System.nanoTime() cannot be compared across different JVMs
out.writeBoolean(delayed);
diff --git a/server/src/main/java/org/elasticsearch/cluster/routing/allocation/command/AbstractAllocateAllocationCommand.java b/server/src/main/java/org/elasticsearch/cluster/routing/allocation/command/AbstractAllocateAllocationCommand.java
index 7abcef56af5f0..fc8c96c6f3834 100644
--- a/server/src/main/java/org/elasticsearch/cluster/routing/allocation/command/AbstractAllocateAllocationCommand.java
+++ b/server/src/main/java/org/elasticsearch/cluster/routing/allocation/command/AbstractAllocateAllocationCommand.java
@@ -9,7 +9,7 @@
package org.elasticsearch.cluster.routing.allocation.command;
-import org.elasticsearch.TransportVersions;
+import org.elasticsearch.TransportVersion;
import org.elasticsearch.cluster.metadata.Metadata;
import org.elasticsearch.cluster.metadata.ProjectId;
import org.elasticsearch.cluster.node.DiscoveryNode;
@@ -89,6 +89,8 @@ protected void validate() {
}
}
+ private static final TransportVersion MULTI_PROJECT = TransportVersion.fromName("multi_project");
+
protected final String index;
protected final int shardId;
protected final String node;
@@ -108,7 +110,7 @@ protected AbstractAllocateAllocationCommand(StreamInput in) throws IOException {
index = in.readString();
shardId = in.readVInt();
node = in.readString();
- if (in.getTransportVersion().onOrAfter(TransportVersions.MULTI_PROJECT)) {
+ if (in.getTransportVersion().supports(MULTI_PROJECT)) {
projectId = ProjectId.readFrom(in);
} else {
projectId = Metadata.DEFAULT_PROJECT_ID;
@@ -120,7 +122,7 @@ public void writeTo(StreamOutput out) throws IOException {
out.writeString(index);
out.writeVInt(shardId);
out.writeString(node);
- if (out.getTransportVersion().onOrAfter(TransportVersions.MULTI_PROJECT)) {
+ if (out.getTransportVersion().supports(MULTI_PROJECT)) {
projectId.writeTo(out);
} else {
assert Metadata.DEFAULT_PROJECT_ID.equals(projectId) : projectId;
diff --git a/server/src/main/java/org/elasticsearch/cluster/routing/allocation/command/CancelAllocationCommand.java b/server/src/main/java/org/elasticsearch/cluster/routing/allocation/command/CancelAllocationCommand.java
index f8d569e83330f..d3f5d3a8d3ef7 100644
--- a/server/src/main/java/org/elasticsearch/cluster/routing/allocation/command/CancelAllocationCommand.java
+++ b/server/src/main/java/org/elasticsearch/cluster/routing/allocation/command/CancelAllocationCommand.java
@@ -12,7 +12,7 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.elasticsearch.ElasticsearchParseException;
-import org.elasticsearch.TransportVersions;
+import org.elasticsearch.TransportVersion;
import org.elasticsearch.cluster.metadata.IndexMetadata;
import org.elasticsearch.cluster.metadata.Metadata;
import org.elasticsearch.cluster.metadata.ProjectId;
@@ -47,6 +47,8 @@ public class CancelAllocationCommand implements AllocationCommand {
public static final String NAME = "cancel";
public static final ParseField COMMAND_NAME_FIELD = new ParseField(NAME);
+ private static final TransportVersion MULTI_PROJECT = TransportVersion.fromName("multi_project");
+
private final String index;
private final int shardId;
private final String node;
@@ -83,7 +85,7 @@ public CancelAllocationCommand(StreamInput in) throws IOException {
shardId = in.readVInt();
node = in.readString();
allowPrimary = in.readBoolean();
- if (in.getTransportVersion().onOrAfter(TransportVersions.MULTI_PROJECT)) {
+ if (in.getTransportVersion().supports(MULTI_PROJECT)) {
projectId = ProjectId.readFrom(in);
} else {
projectId = Metadata.DEFAULT_PROJECT_ID;
@@ -96,7 +98,7 @@ public void writeTo(StreamOutput out) throws IOException {
out.writeVInt(shardId);
out.writeString(node);
out.writeBoolean(allowPrimary);
- if (out.getTransportVersion().onOrAfter(TransportVersions.MULTI_PROJECT)) {
+ if (out.getTransportVersion().supports(MULTI_PROJECT)) {
projectId.writeTo(out);
} else {
assert Metadata.DEFAULT_PROJECT_ID.equals(projectId) : projectId;
diff --git a/server/src/main/java/org/elasticsearch/cluster/routing/allocation/command/MoveAllocationCommand.java b/server/src/main/java/org/elasticsearch/cluster/routing/allocation/command/MoveAllocationCommand.java
index a9efc705a9685..1a90a73c65233 100644
--- a/server/src/main/java/org/elasticsearch/cluster/routing/allocation/command/MoveAllocationCommand.java
+++ b/server/src/main/java/org/elasticsearch/cluster/routing/allocation/command/MoveAllocationCommand.java
@@ -10,7 +10,7 @@
package org.elasticsearch.cluster.routing.allocation.command;
import org.elasticsearch.ElasticsearchParseException;
-import org.elasticsearch.TransportVersions;
+import org.elasticsearch.TransportVersion;
import org.elasticsearch.cluster.metadata.Metadata;
import org.elasticsearch.cluster.metadata.ProjectId;
import org.elasticsearch.cluster.node.DiscoveryNode;
@@ -40,6 +40,8 @@ public class MoveAllocationCommand implements AllocationCommand {
public static final String NAME = "move";
public static final ParseField COMMAND_NAME_FIELD = new ParseField(NAME);
+ private static final TransportVersion MULTI_PROJECT = TransportVersion.fromName("multi_project");
+
private final String index;
private final int shardId;
private final String fromNode;
@@ -68,7 +70,7 @@ public MoveAllocationCommand(StreamInput in) throws IOException {
shardId = in.readVInt();
fromNode = in.readString();
toNode = in.readString();
- if (in.getTransportVersion().onOrAfter(TransportVersions.MULTI_PROJECT)) {
+ if (in.getTransportVersion().supports(MULTI_PROJECT)) {
projectId = ProjectId.readFrom(in);
} else {
projectId = Metadata.DEFAULT_PROJECT_ID;
@@ -81,7 +83,7 @@ public void writeTo(StreamOutput out) throws IOException {
out.writeVInt(shardId);
out.writeString(fromNode);
out.writeString(toNode);
- if (out.getTransportVersion().onOrAfter(TransportVersions.MULTI_PROJECT)) {
+ if (out.getTransportVersion().supports(MULTI_PROJECT)) {
projectId.writeTo(out);
} else {
assert Metadata.DEFAULT_PROJECT_ID.equals(projectId) : projectId;
diff --git a/server/src/main/java/org/elasticsearch/common/io/stream/DelayableWriteable.java b/server/src/main/java/org/elasticsearch/common/io/stream/DelayableWriteable.java
index ba66c2e9ae898..0f40326658771 100644
--- a/server/src/main/java/org/elasticsearch/common/io/stream/DelayableWriteable.java
+++ b/server/src/main/java/org/elasticsearch/common/io/stream/DelayableWriteable.java
@@ -10,7 +10,6 @@
package org.elasticsearch.common.io.stream;
import org.elasticsearch.TransportVersion;
-import org.elasticsearch.TransportVersions;
import org.elasticsearch.common.bytes.BytesReference;
import org.elasticsearch.common.bytes.ReleasableBytesReference;
import org.elasticsearch.common.compress.CompressorFactory;
@@ -41,6 +40,9 @@
* {@link #asSerialized(Reader, NamedWriteableRegistry)}.
*/
public abstract class DelayableWriteable implements Writeable, Releasable {
+
+ private static final TransportVersion COMPRESS_DELAYABLE_WRITEABLE = TransportVersion.fromName("compress_delayable_writeable");
+
/**
* Build a {@linkplain DelayableWriteable} that wraps an existing object
* but is serialized so that deserializing it can be delayed.
@@ -59,7 +61,7 @@ public static DelayableWriteable delayed(Writeable.Read
reader,
in.getTransportVersion(),
in.namedWriteableRegistry(),
- in.getTransportVersion().onOrAfter(TransportVersions.COMPRESS_DELAYABLE_WRITEABLE)
+ in.getTransportVersion().supports(COMPRESS_DELAYABLE_WRITEABLE)
? in.readReleasableBytesReference(in.readInt())
: in.readReleasableBytesReference()
);
@@ -67,7 +69,7 @@ public static DelayableWriteable delayed(Writeable.Read
public static DelayableWriteable referencing(Writeable.Reader reader, StreamInput in) throws IOException {
try (
- ReleasableBytesReference serialized = in.getTransportVersion().onOrAfter(TransportVersions.COMPRESS_DELAYABLE_WRITEABLE)
+ ReleasableBytesReference serialized = in.getTransportVersion().supports(COMPRESS_DELAYABLE_WRITEABLE)
? in.readReleasableBytesReference(in.readInt())
: in.readReleasableBytesReference()
) {
@@ -108,7 +110,7 @@ private Referencing(T reference) {
@Override
public void writeTo(StreamOutput out) throws IOException {
- if (out.getTransportVersion().onOrAfter(TransportVersions.COMPRESS_DELAYABLE_WRITEABLE)) {
+ if (out.getTransportVersion().supports(COMPRESS_DELAYABLE_WRITEABLE)) {
out.writeWithSizePrefix(reference);
} else {
out.legacyWriteWithSizePrefix(reference);
@@ -179,7 +181,7 @@ public void writeTo(StreamOutput out) throws IOException {
* which is good because this is how shard request caching
* works.
*/
- if (out.getTransportVersion().onOrAfter(TransportVersions.COMPRESS_DELAYABLE_WRITEABLE)) {
+ if (out.getTransportVersion().supports(COMPRESS_DELAYABLE_WRITEABLE)) {
out.writeInt(serialized.length());
serialized.writeTo(out);
} else {
@@ -249,7 +251,7 @@ private static T deserialize(
BytesReference serialized
) throws IOException {
try (
- StreamInput in = serializedAtVersion.onOrAfter(TransportVersions.COMPRESS_DELAYABLE_WRITEABLE)
+ StreamInput in = serializedAtVersion.supports(COMPRESS_DELAYABLE_WRITEABLE)
? CompressorFactory.COMPRESSOR.threadLocalStreamInput(serialized.streamInput())
: serialized.streamInput()
) {
diff --git a/server/src/main/java/org/elasticsearch/common/settings/ProjectSecrets.java b/server/src/main/java/org/elasticsearch/common/settings/ProjectSecrets.java
index 2dc3a1c0ee961..0bf7ab4624a76 100644
--- a/server/src/main/java/org/elasticsearch/common/settings/ProjectSecrets.java
+++ b/server/src/main/java/org/elasticsearch/common/settings/ProjectSecrets.java
@@ -10,7 +10,6 @@
package org.elasticsearch.common.settings;
import org.elasticsearch.TransportVersion;
-import org.elasticsearch.TransportVersions;
import org.elasticsearch.cluster.AbstractNamedDiffable;
import org.elasticsearch.cluster.NamedDiff;
import org.elasticsearch.cluster.metadata.Metadata;
@@ -41,6 +40,7 @@
public class ProjectSecrets extends AbstractNamedDiffable implements Metadata.ProjectCustom {
public static final String TYPE = "project_state_secrets";
+ private static final TransportVersion MULTI_PROJECT = TransportVersion.fromName("multi_project");
private final SecureClusterStateSettings settings;
@@ -73,7 +73,7 @@ public String getWriteableName() {
@Override
public TransportVersion getMinimalSupportedVersion() {
- return TransportVersions.MULTI_PROJECT;
+ return MULTI_PROJECT;
}
@Override
diff --git a/server/src/main/java/org/elasticsearch/health/node/DslErrorInfo.java b/server/src/main/java/org/elasticsearch/health/node/DslErrorInfo.java
index 13d7dd6930f92..f465c7ed49759 100644
--- a/server/src/main/java/org/elasticsearch/health/node/DslErrorInfo.java
+++ b/server/src/main/java/org/elasticsearch/health/node/DslErrorInfo.java
@@ -9,7 +9,7 @@
package org.elasticsearch.health.node;
-import org.elasticsearch.TransportVersions;
+import org.elasticsearch.TransportVersion;
import org.elasticsearch.cluster.metadata.ProjectId;
import org.elasticsearch.common.io.stream.StreamInput;
import org.elasticsearch.common.io.stream.StreamOutput;
@@ -24,6 +24,8 @@
*/
public record DslErrorInfo(String indexName, long firstOccurrence, int retryCount, ProjectId projectId) implements Writeable {
+ private static final TransportVersion ADD_PROJECT_ID_TO_DSL_ERROR_INFO = TransportVersion.fromName("add_project_id_to_dsl_error_info");
+
public DslErrorInfo(String indexName, long firstOccurrence, int retryCount) {
this(indexName, firstOccurrence, retryCount, ProjectId.DEFAULT);
}
@@ -33,9 +35,7 @@ public DslErrorInfo(StreamInput in) throws IOException {
in.readString(),
in.readLong(),
in.readVInt(),
- in.getTransportVersion().onOrAfter(TransportVersions.ADD_PROJECT_ID_TO_DSL_ERROR_INFO)
- ? ProjectId.readFrom(in)
- : ProjectId.DEFAULT
+ in.getTransportVersion().supports(ADD_PROJECT_ID_TO_DSL_ERROR_INFO) ? ProjectId.readFrom(in) : ProjectId.DEFAULT
);
}
@@ -44,7 +44,7 @@ public void writeTo(StreamOutput out) throws IOException {
out.writeString(indexName);
out.writeLong(firstOccurrence);
out.writeVInt(retryCount);
- if (out.getTransportVersion().onOrAfter(TransportVersions.ADD_PROJECT_ID_TO_DSL_ERROR_INFO)) {
+ if (out.getTransportVersion().supports(ADD_PROJECT_ID_TO_DSL_ERROR_INFO)) {
projectId.writeTo(out);
}
}
diff --git a/server/src/main/java/org/elasticsearch/health/node/HealthInfo.java b/server/src/main/java/org/elasticsearch/health/node/HealthInfo.java
index 005a2d12acff6..db55c8c4b4cbe 100644
--- a/server/src/main/java/org/elasticsearch/health/node/HealthInfo.java
+++ b/server/src/main/java/org/elasticsearch/health/node/HealthInfo.java
@@ -9,6 +9,7 @@
package org.elasticsearch.health.node;
+import org.elasticsearch.TransportVersion;
import org.elasticsearch.TransportVersions;
import org.elasticsearch.common.io.stream.StreamInput;
import org.elasticsearch.common.io.stream.StreamOutput;
@@ -40,6 +41,8 @@ public record HealthInfo(
public static final HealthInfo EMPTY_HEALTH_INFO = new HealthInfo(Map.of(), NO_DSL_ERRORS, Map.of(), INDETERMINATE);
+ private static final TransportVersion FILE_SETTINGS_HEALTH_INFO = TransportVersion.fromName("file_settings_health_info");
+
public HealthInfo {
requireNonNull(fileSettingsHealthInfo);
}
@@ -51,7 +54,7 @@ public HealthInfo(StreamInput input) throws IOException {
? input.readOptionalWriteable(DataStreamLifecycleHealthInfo::new)
: null,
input.getTransportVersion().onOrAfter(TransportVersions.V_8_13_0) ? input.readMap(RepositoriesHealthInfo::new) : Map.of(),
- input.getTransportVersion().onOrAfter(TransportVersions.FILE_SETTINGS_HEALTH_INFO)
+ input.getTransportVersion().supports(FILE_SETTINGS_HEALTH_INFO)
? input.readOptionalWriteable(FileSettingsHealthInfo::new)
: INDETERMINATE
);
@@ -66,7 +69,7 @@ public void writeTo(StreamOutput output) throws IOException {
if (output.getTransportVersion().onOrAfter(TransportVersions.V_8_13_0)) {
output.writeMap(repositoriesInfoByNode, StreamOutput::writeWriteable);
}
- if (output.getTransportVersion().onOrAfter(TransportVersions.FILE_SETTINGS_HEALTH_INFO)) {
+ if (output.getTransportVersion().supports(FILE_SETTINGS_HEALTH_INFO)) {
output.writeOptionalWriteable(fileSettingsHealthInfo);
}
}
diff --git a/server/src/main/java/org/elasticsearch/health/node/UpdateHealthInfoCacheAction.java b/server/src/main/java/org/elasticsearch/health/node/UpdateHealthInfoCacheAction.java
index 2547eadc03409..52c84fc3b130c 100644
--- a/server/src/main/java/org/elasticsearch/health/node/UpdateHealthInfoCacheAction.java
+++ b/server/src/main/java/org/elasticsearch/health/node/UpdateHealthInfoCacheAction.java
@@ -9,6 +9,7 @@
package org.elasticsearch.health.node;
+import org.elasticsearch.TransportVersion;
import org.elasticsearch.TransportVersions;
import org.elasticsearch.action.ActionListener;
import org.elasticsearch.action.ActionRequestValidationException;
@@ -42,6 +43,8 @@
public class UpdateHealthInfoCacheAction extends ActionType {
private static final Logger logger = LogManager.getLogger(UpdateHealthInfoCacheAction.class);
+ private static final TransportVersion FILE_SETTINGS_HEALTH_INFO = TransportVersion.fromName("file_settings_health_info");
+
public static class Request extends HealthNodeRequest {
private final String nodeId;
@Nullable
@@ -92,7 +95,7 @@ public Request(StreamInput in) throws IOException {
this.repositoriesHealthInfo = in.getTransportVersion().onOrAfter(TransportVersions.V_8_13_0)
? in.readOptionalWriteable(RepositoriesHealthInfo::new)
: null;
- this.fileSettingsHealthInfo = in.getTransportVersion().onOrAfter(TransportVersions.FILE_SETTINGS_HEALTH_INFO)
+ this.fileSettingsHealthInfo = in.getTransportVersion().supports(FILE_SETTINGS_HEALTH_INFO)
? in.readOptionalWriteable(FileSettingsService.FileSettingsHealthInfo::new)
: null;
} else {
@@ -143,7 +146,7 @@ public void writeTo(StreamOutput out) throws IOException {
if (out.getTransportVersion().onOrAfter(TransportVersions.V_8_13_0)) {
out.writeOptionalWriteable(repositoriesHealthInfo);
}
- if (out.getTransportVersion().onOrAfter(TransportVersions.FILE_SETTINGS_HEALTH_INFO)) {
+ if (out.getTransportVersion().supports(FILE_SETTINGS_HEALTH_INFO)) {
out.writeOptionalWriteable(fileSettingsHealthInfo);
}
} else {
diff --git a/server/src/main/java/org/elasticsearch/index/shard/DenseVectorStats.java b/server/src/main/java/org/elasticsearch/index/shard/DenseVectorStats.java
index 6e74647899080..4da0ad9a1abef 100644
--- a/server/src/main/java/org/elasticsearch/index/shard/DenseVectorStats.java
+++ b/server/src/main/java/org/elasticsearch/index/shard/DenseVectorStats.java
@@ -9,7 +9,7 @@
package org.elasticsearch.index.shard;
-import org.elasticsearch.TransportVersions;
+import org.elasticsearch.TransportVersion;
import org.elasticsearch.common.io.stream.StreamInput;
import org.elasticsearch.common.io.stream.StreamOutput;
import org.elasticsearch.common.io.stream.Writeable;
@@ -29,6 +29,9 @@
* Statistics about indexed dense vector
*/
public class DenseVectorStats implements Writeable, ToXContentFragment {
+
+ private static final TransportVersion DENSE_VECTOR_OFF_HEAP_STATS = TransportVersion.fromName("dense_vector_off_heap_stats");
+
private long valueCount = 0;
/** Per-field off-heap desired memory byte size, categorized by file extension. */
@@ -47,7 +50,7 @@ public DenseVectorStats(long count, Map> offHeapStats)
public DenseVectorStats(StreamInput in) throws IOException {
this.valueCount = in.readVLong();
- if (in.getTransportVersion().onOrAfter(TransportVersions.DENSE_VECTOR_OFF_HEAP_STATS)) {
+ if (in.getTransportVersion().supports(DENSE_VECTOR_OFF_HEAP_STATS)) {
this.offHeapStats = readOptionalOffHeapStats(in);
}
}
@@ -55,7 +58,7 @@ public DenseVectorStats(StreamInput in) throws IOException {
@Override
public void writeTo(StreamOutput out) throws IOException {
out.writeVLong(valueCount);
- if (out.getTransportVersion().onOrAfter(TransportVersions.DENSE_VECTOR_OFF_HEAP_STATS)) {
+ if (out.getTransportVersion().supports(DENSE_VECTOR_OFF_HEAP_STATS)) {
writeOptionalOffHeapStats(out);
}
}
diff --git a/server/src/main/java/org/elasticsearch/index/shard/IndexingStats.java b/server/src/main/java/org/elasticsearch/index/shard/IndexingStats.java
index 18df167687d90..43a7e8b75fbb7 100644
--- a/server/src/main/java/org/elasticsearch/index/shard/IndexingStats.java
+++ b/server/src/main/java/org/elasticsearch/index/shard/IndexingStats.java
@@ -25,14 +25,20 @@
import java.util.Objects;
import java.util.concurrent.TimeUnit;
-import static org.elasticsearch.TransportVersions.INDEXING_STATS_INCLUDES_RECENT_WRITE_LOAD;
-import static org.elasticsearch.TransportVersions.INDEX_STATS_AND_METADATA_INCLUDE_PEAK_WRITE_LOAD;
-import static org.elasticsearch.TransportVersions.WRITE_LOAD_INCLUDES_BUFFER_WRITES;
-
public class IndexingStats implements Writeable, ToXContentFragment {
public static class Stats implements Writeable, ToXContentFragment {
+
+ private static final TransportVersion INDEXING_STATS_INCLUDES_RECENT_WRITE_LOAD = TransportVersion.fromName(
+ "indexing_stats_includes_recent_write_load"
+ );
+ private static final TransportVersion INDEX_STATS_AND_METADATA_INCLUDE_PEAK_WRITE_LOAD = TransportVersion.fromName(
+ "index_stats_and_metadata_include_peak_write_load"
+ );
private static final TransportVersion WRITE_LOAD_AVG_SUPPORTED_VERSION = TransportVersions.V_8_6_0;
+ private static final TransportVersion WRITE_LOAD_INCLUDES_BUFFER_WRITES = TransportVersion.fromName(
+ "write_load_includes_buffer_writes"
+ );
private long indexCount;
private long indexTimeInMillis;
@@ -74,7 +80,7 @@ public Stats(StreamInput in) throws IOException {
totalIndexingTimeSinceShardStartedInNanos = in.readLong();
totalActiveTimeInNanos = in.readLong();
}
- if (in.getTransportVersion().onOrAfter(INDEXING_STATS_INCLUDES_RECENT_WRITE_LOAD)) {
+ if (in.getTransportVersion().supports(INDEXING_STATS_INCLUDES_RECENT_WRITE_LOAD)) {
recentIndexingLoad = in.readDouble();
} else {
// When getting stats from an older version which doesn't have the recent indexing load, better to fall back to the
@@ -83,7 +89,7 @@ public Stats(StreamInput in) throws IOException {
? (double) totalIndexingTimeSinceShardStartedInNanos / totalActiveTimeInNanos
: 0;
}
- if (in.getTransportVersion().onOrAfter(INDEX_STATS_AND_METADATA_INCLUDE_PEAK_WRITE_LOAD)) {
+ if (in.getTransportVersion().supports(INDEX_STATS_AND_METADATA_INCLUDE_PEAK_WRITE_LOAD)) {
peakIndexingLoad = in.readDouble();
} else {
// When getting stats from an older version which doesn't have the recent indexing load, better to fall back to the
@@ -92,7 +98,7 @@ public Stats(StreamInput in) throws IOException {
? (double) totalIndexingTimeSinceShardStartedInNanos / totalActiveTimeInNanos
: 0;
}
- if (in.getTransportVersion().onOrAfter(WRITE_LOAD_INCLUDES_BUFFER_WRITES)) {
+ if (in.getTransportVersion().supports(WRITE_LOAD_INCLUDES_BUFFER_WRITES)) {
totalIndexingExecutionTimeSinceShardStartedInNanos = in.readLong();
} else {
// When getting stats from an older version which doesn't have the more accurate indexing execution time,
@@ -314,13 +320,13 @@ public void writeTo(StreamOutput out) throws IOException {
out.writeLong(totalIndexingTimeSinceShardStartedInNanos);
out.writeLong(totalActiveTimeInNanos);
}
- if (out.getTransportVersion().onOrAfter(INDEXING_STATS_INCLUDES_RECENT_WRITE_LOAD)) {
+ if (out.getTransportVersion().supports(INDEXING_STATS_INCLUDES_RECENT_WRITE_LOAD)) {
out.writeDouble(recentIndexingLoad);
}
- if (out.getTransportVersion().onOrAfter(INDEX_STATS_AND_METADATA_INCLUDE_PEAK_WRITE_LOAD)) {
+ if (out.getTransportVersion().supports(INDEX_STATS_AND_METADATA_INCLUDE_PEAK_WRITE_LOAD)) {
out.writeDouble(peakIndexingLoad);
}
- if (out.getTransportVersion().onOrAfter(WRITE_LOAD_INCLUDES_BUFFER_WRITES)) {
+ if (out.getTransportVersion().supports(WRITE_LOAD_INCLUDES_BUFFER_WRITES)) {
out.writeLong(totalIndexingExecutionTimeSinceShardStartedInNanos);
}
}
diff --git a/server/src/main/java/org/elasticsearch/index/stats/IndexingPressureStats.java b/server/src/main/java/org/elasticsearch/index/stats/IndexingPressureStats.java
index 2779207132091..005028c94d17a 100644
--- a/server/src/main/java/org/elasticsearch/index/stats/IndexingPressureStats.java
+++ b/server/src/main/java/org/elasticsearch/index/stats/IndexingPressureStats.java
@@ -9,6 +9,7 @@
package org.elasticsearch.index.stats;
+import org.elasticsearch.TransportVersion;
import org.elasticsearch.TransportVersions;
import org.elasticsearch.common.io.stream.StreamInput;
import org.elasticsearch.common.io.stream.StreamOutput;
@@ -21,6 +22,10 @@
public class IndexingPressureStats implements Writeable, ToXContentFragment {
+ private static final TransportVersion MAX_OPERATION_SIZE_REJECTIONS_ADDED = TransportVersion.fromName(
+ "max_operation_size_rejections_added"
+ );
+
private final long totalCombinedCoordinatingAndPrimaryBytes;
private final long totalCoordinatingBytes;
private final long totalPrimaryBytes;
@@ -98,7 +103,7 @@ public IndexingPressureStats(StreamInput in) throws IOException {
highWaterMarkSplits = -1L;
}
- if (in.getTransportVersion().onOrAfter(TransportVersions.MAX_OPERATION_SIZE_REJECTIONS_ADDED)) {
+ if (in.getTransportVersion().supports(MAX_OPERATION_SIZE_REJECTIONS_ADDED)) {
largeOpsRejections = in.readVLong();
totalLargeRejectedOpsBytes = in.readVLong();
} else {
@@ -193,7 +198,7 @@ public void writeTo(StreamOutput out) throws IOException {
out.writeVLong(highWaterMarkSplits);
}
- if (out.getTransportVersion().onOrAfter(TransportVersions.MAX_OPERATION_SIZE_REJECTIONS_ADDED)) {
+ if (out.getTransportVersion().supports(MAX_OPERATION_SIZE_REJECTIONS_ADDED)) {
out.writeVLong(largeOpsRejections);
out.writeVLong(totalLargeRejectedOpsBytes);
}
diff --git a/server/src/main/java/org/elasticsearch/indices/NodeIndicesStats.java b/server/src/main/java/org/elasticsearch/indices/NodeIndicesStats.java
index 83add510c6b0f..36655d8a27cf7 100644
--- a/server/src/main/java/org/elasticsearch/indices/NodeIndicesStats.java
+++ b/server/src/main/java/org/elasticsearch/indices/NodeIndicesStats.java
@@ -65,6 +65,9 @@
public class NodeIndicesStats implements Writeable, ChunkedToXContent {
private static final TransportVersion VERSION_SUPPORTING_STATS_BY_INDEX = TransportVersions.V_8_5_0;
+ private static final TransportVersion NODES_STATS_SUPPORTS_MULTI_PROJECT = TransportVersion.fromName(
+ "nodes_stats_supports_multi_project"
+ );
private static final Map> EMPTY_STATS_BY_SHARD = Map.of();
private final CommonStats stats;
@@ -93,7 +96,7 @@ public NodeIndicesStats(StreamInput in) throws IOException {
statsByIndex = new HashMap<>();
}
- if (in.getTransportVersion().onOrAfter(TransportVersions.NODES_STATS_SUPPORTS_MULTI_PROJECT)) {
+ if (in.getTransportVersion().supports(NODES_STATS_SUPPORTS_MULTI_PROJECT)) {
projectsByIndex = in.readMap(Index::new, ProjectId::readFrom);
} else {
// Older nodes do not include the index-to-project map, so we leave it empty. This means all indices will be treated as if the
@@ -243,7 +246,7 @@ public void writeTo(StreamOutput out) throws IOException {
if (out.getTransportVersion().onOrAfter(VERSION_SUPPORTING_STATS_BY_INDEX)) {
out.writeMap(statsByIndex);
}
- if (out.getTransportVersion().onOrAfter(TransportVersions.NODES_STATS_SUPPORTS_MULTI_PROJECT)) {
+ if (out.getTransportVersion().supports(NODES_STATS_SUPPORTS_MULTI_PROJECT)) {
out.writeMap(projectsByIndex);
}
}
diff --git a/server/src/main/java/org/elasticsearch/ingest/IngestStats.java b/server/src/main/java/org/elasticsearch/ingest/IngestStats.java
index 686c350d267cd..00f8e215994e6 100644
--- a/server/src/main/java/org/elasticsearch/ingest/IngestStats.java
+++ b/server/src/main/java/org/elasticsearch/ingest/IngestStats.java
@@ -9,6 +9,7 @@
package org.elasticsearch.ingest;
+import org.elasticsearch.TransportVersion;
import org.elasticsearch.TransportVersions;
import org.elasticsearch.action.admin.cluster.node.stats.NodeStats;
import org.elasticsearch.cluster.metadata.Metadata;
@@ -49,6 +50,10 @@ public record IngestStats(
public static final IngestStats IDENTITY = new IngestStats(Stats.IDENTITY, List.of(), Map.of());
+ private static final TransportVersion NODES_STATS_SUPPORTS_MULTI_PROJECT = TransportVersion.fromName(
+ "nodes_stats_supports_multi_project"
+ );
+
/**
* @param totalStats - The total stats for Ingest. This is logically the sum of all pipeline stats,
* and pipeline stats are logically the sum of the processor stats.
@@ -77,7 +82,7 @@ public static IngestStats read(StreamInput in) throws IOException {
Map>> processorStats = new HashMap<>();
for (var i = 0; i < size; i++) {
- ProjectId projectId = in.getTransportVersion().onOrAfter(TransportVersions.NODES_STATS_SUPPORTS_MULTI_PROJECT)
+ ProjectId projectId = in.getTransportVersion().supports(NODES_STATS_SUPPORTS_MULTI_PROJECT)
? ProjectId.readFrom(in)
// We will not have older nodes in a multi-project cluster, so we can assume that everything is in the default project.
: Metadata.DEFAULT_PROJECT_ID;
@@ -107,7 +112,7 @@ public void writeTo(StreamOutput out) throws IOException {
totalStats.writeTo(out);
out.writeVInt(pipelineStats.size());
for (PipelineStat pipelineStat : pipelineStats) {
- if (out.getTransportVersion().onOrAfter(TransportVersions.NODES_STATS_SUPPORTS_MULTI_PROJECT)) {
+ if (out.getTransportVersion().supports(NODES_STATS_SUPPORTS_MULTI_PROJECT)) {
pipelineStat.projectId().writeTo(out);
}
out.writeString(pipelineStat.pipelineId());
diff --git a/server/src/main/java/org/elasticsearch/repositories/RepositoryConflictException.java b/server/src/main/java/org/elasticsearch/repositories/RepositoryConflictException.java
index ded406c9828db..05a45f67b5941 100644
--- a/server/src/main/java/org/elasticsearch/repositories/RepositoryConflictException.java
+++ b/server/src/main/java/org/elasticsearch/repositories/RepositoryConflictException.java
@@ -9,7 +9,7 @@
package org.elasticsearch.repositories;
-import org.elasticsearch.TransportVersions;
+import org.elasticsearch.TransportVersion;
import org.elasticsearch.common.io.stream.StreamInput;
import org.elasticsearch.common.io.stream.StreamOutput;
import org.elasticsearch.rest.RestStatus;
@@ -20,6 +20,11 @@
* Repository conflict exception
*/
public class RepositoryConflictException extends RepositoryException {
+
+ private static final TransportVersion REMOVE_REPOSITORY_CONFLICT_MESSAGE = TransportVersion.fromName(
+ "remove_repository_conflict_message"
+ );
+
public RepositoryConflictException(String repository, String message) {
super(repository, message);
}
@@ -31,7 +36,7 @@ public RestStatus status() {
public RepositoryConflictException(StreamInput in) throws IOException {
super(in);
- if (in.getTransportVersion().before(TransportVersions.REMOVE_REPOSITORY_CONFLICT_MESSAGE)) {
+ if (in.getTransportVersion().supports(REMOVE_REPOSITORY_CONFLICT_MESSAGE) == false) {
// Deprecated `backwardCompatibleMessage` field
in.readString();
}
@@ -40,7 +45,7 @@ public RepositoryConflictException(StreamInput in) throws IOException {
@Override
protected void writeTo(StreamOutput out, Writer nestedExceptionsWriter) throws IOException {
super.writeTo(out, nestedExceptionsWriter);
- if (out.getTransportVersion().before(TransportVersions.REMOVE_REPOSITORY_CONFLICT_MESSAGE)) {
+ if (out.getTransportVersion().supports(REMOVE_REPOSITORY_CONFLICT_MESSAGE) == false) {
// Deprecated `backwardCompatibleMessage` field
out.writeString("");
}
diff --git a/server/src/main/java/org/elasticsearch/search/SearchHit.java b/server/src/main/java/org/elasticsearch/search/SearchHit.java
index a9c8e01fa32ac..a467a31e62a21 100644
--- a/server/src/main/java/org/elasticsearch/search/SearchHit.java
+++ b/server/src/main/java/org/elasticsearch/search/SearchHit.java
@@ -11,6 +11,7 @@
import org.apache.lucene.search.Explanation;
import org.elasticsearch.ElasticsearchParseException;
+import org.elasticsearch.TransportVersion;
import org.elasticsearch.TransportVersions;
import org.elasticsearch.common.Strings;
import org.elasticsearch.common.bytes.BytesArray;
@@ -66,6 +67,8 @@
*/
public final class SearchHit implements Writeable, ToXContentObject, RefCounted {
+ private static final TransportVersion DOC_FIELDS_AS_LIST = TransportVersion.fromName("doc_fields_as_list");
+
private final transient int docId;
static final float DEFAULT_SCORE = Float.NaN;
@@ -218,7 +221,7 @@ public static SearchHit readFrom(StreamInput in, boolean pooled) throws IOExcept
}
final Map documentFields;
final Map metaFields;
- if (in.getTransportVersion().onOrAfter(TransportVersions.DOC_FIELDS_AS_LIST)) {
+ if (in.getTransportVersion().supports(DOC_FIELDS_AS_LIST)) {
documentFields = DocumentField.readFieldsFromMapValues(in);
metaFields = DocumentField.readFieldsFromMapValues(in);
} else {
@@ -329,7 +332,7 @@ public void writeTo(StreamOutput out) throws IOException {
out.writeBoolean(true);
writeExplanation(out, explanation);
}
- if (out.getTransportVersion().onOrAfter(TransportVersions.DOC_FIELDS_AS_LIST)) {
+ if (out.getTransportVersion().supports(DOC_FIELDS_AS_LIST)) {
out.writeMapValues(documentFields);
out.writeMapValues(metaFields);
} else {
diff --git a/server/src/main/java/org/elasticsearch/snapshots/Snapshot.java b/server/src/main/java/org/elasticsearch/snapshots/Snapshot.java
index 208cd4bcbef84..b2c92fe882a94 100644
--- a/server/src/main/java/org/elasticsearch/snapshots/Snapshot.java
+++ b/server/src/main/java/org/elasticsearch/snapshots/Snapshot.java
@@ -9,7 +9,7 @@
package org.elasticsearch.snapshots;
-import org.elasticsearch.TransportVersions;
+import org.elasticsearch.TransportVersion;
import org.elasticsearch.cluster.metadata.ProjectId;
import org.elasticsearch.common.io.stream.StreamInput;
import org.elasticsearch.common.io.stream.StreamOutput;
@@ -24,6 +24,8 @@
*/
public final class Snapshot implements Writeable {
+ private static final TransportVersion PROJECT_ID_IN_SNAPSHOT = TransportVersion.fromName("project_id_in_snapshot");
+
private final ProjectId projectId;
private final String repository;
private final SnapshotId snapshotId;
@@ -52,7 +54,7 @@ public Snapshot(ProjectId projectId, final String repository, final SnapshotId s
* Constructs a snapshot from the stream input.
*/
public Snapshot(final StreamInput in) throws IOException {
- if (in.getTransportVersion().before(TransportVersions.PROJECT_ID_IN_SNAPSHOT)) {
+ if (in.getTransportVersion().supports(PROJECT_ID_IN_SNAPSHOT) == false) {
projectId = ProjectId.DEFAULT;
} else {
projectId = ProjectId.readFrom(in);
@@ -108,12 +110,12 @@ private int computeHashCode() {
@Override
public void writeTo(final StreamOutput out) throws IOException {
- if (out.getTransportVersion().before(TransportVersions.PROJECT_ID_IN_SNAPSHOT)) {
+ if (out.getTransportVersion().supports(PROJECT_ID_IN_SNAPSHOT) == false) {
if (ProjectId.DEFAULT.equals(projectId) == false) {
final var message = "Cannot write instance with non-default project id "
+ projectId
+ " to version before "
- + TransportVersions.PROJECT_ID_IN_SNAPSHOT;
+ + PROJECT_ID_IN_SNAPSHOT;
assert false : message;
throw new IllegalArgumentException(message);
}
diff --git a/server/src/main/resources/transport/definitions/referable/add_project_id_to_dsl_error_info.csv b/server/src/main/resources/transport/definitions/referable/add_project_id_to_dsl_error_info.csv
new file mode 100644
index 0000000000000..9d4151a9a67eb
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/add_project_id_to_dsl_error_info.csv
@@ -0,0 +1 @@
+9046000
diff --git a/server/src/main/resources/transport/definitions/referable/batched_query_execution_delayable_writeable.csv b/server/src/main/resources/transport/definitions/referable/batched_query_execution_delayable_writeable.csv
new file mode 100644
index 0000000000000..0f0b1d51f2579
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/batched_query_execution_delayable_writeable.csv
@@ -0,0 +1 @@
+9057000
diff --git a/server/src/main/resources/transport/definitions/referable/compress_delayable_writeable.csv b/server/src/main/resources/transport/definitions/referable/compress_delayable_writeable.csv
new file mode 100644
index 0000000000000..2ca20b8f30118
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/compress_delayable_writeable.csv
@@ -0,0 +1 @@
+9059000
diff --git a/server/src/main/resources/transport/definitions/referable/dense_vector_off_heap_stats.csv b/server/src/main/resources/transport/definitions/referable/dense_vector_off_heap_stats.csv
new file mode 100644
index 0000000000000..5bff3ccefb9a1
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/dense_vector_off_heap_stats.csv
@@ -0,0 +1 @@
+9062000
diff --git a/server/src/main/resources/transport/definitions/referable/doc_fields_as_list.csv b/server/src/main/resources/transport/definitions/referable/doc_fields_as_list.csv
new file mode 100644
index 0000000000000..e42dba825fc1c
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/doc_fields_as_list.csv
@@ -0,0 +1 @@
+9061000
diff --git a/server/src/main/resources/transport/definitions/referable/esql_driver_node_description.csv b/server/src/main/resources/transport/definitions/referable/esql_driver_node_description.csv
new file mode 100644
index 0000000000000..0de7db6f27522
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/esql_driver_node_description.csv
@@ -0,0 +1 @@
+9017000
diff --git a/server/src/main/resources/transport/definitions/referable/esql_field_attribute_drop_type.csv b/server/src/main/resources/transport/definitions/referable/esql_field_attribute_drop_type.csv
new file mode 100644
index 0000000000000..db9d334d5cba7
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/esql_field_attribute_drop_type.csv
@@ -0,0 +1 @@
+9075000
diff --git a/server/src/main/resources/transport/definitions/referable/esql_limit_row_size.csv b/server/src/main/resources/transport/definitions/referable/esql_limit_row_size.csv
new file mode 100644
index 0000000000000..26605580c8c24
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/esql_limit_row_size.csv
@@ -0,0 +1 @@
+9085000
diff --git a/server/src/main/resources/transport/definitions/referable/esql_lookup_join_source_text.csv b/server/src/main/resources/transport/definitions/referable/esql_lookup_join_source_text.csv
new file mode 100644
index 0000000000000..a3a07f7152e73
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/esql_lookup_join_source_text.csv
@@ -0,0 +1 @@
+9008000
diff --git a/server/src/main/resources/transport/definitions/referable/esql_profile_async_nanos.csv b/server/src/main/resources/transport/definitions/referable/esql_profile_async_nanos.csv
new file mode 100644
index 0000000000000..023be513a611f
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/esql_profile_async_nanos.csv
@@ -0,0 +1 @@
+9007000
diff --git a/server/src/main/resources/transport/definitions/referable/esql_remove_aggregate_type.csv b/server/src/main/resources/transport/definitions/referable/esql_remove_aggregate_type.csv
new file mode 100644
index 0000000000000..9d5b1bcb34e24
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/esql_remove_aggregate_type.csv
@@ -0,0 +1 @@
+9045000
diff --git a/server/src/main/resources/transport/definitions/referable/esql_serialize_source_functions_warnings.csv b/server/src/main/resources/transport/definitions/referable/esql_serialize_source_functions_warnings.csv
new file mode 100644
index 0000000000000..8fb6d13acf145
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/esql_serialize_source_functions_warnings.csv
@@ -0,0 +1 @@
+9016000
diff --git a/server/src/main/resources/transport/definitions/referable/esql_thread_name_in_driver_profile.csv b/server/src/main/resources/transport/definitions/referable/esql_thread_name_in_driver_profile.csv
new file mode 100644
index 0000000000000..a4f1f6ec82ac8
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/esql_thread_name_in_driver_profile.csv
@@ -0,0 +1 @@
+9027000
diff --git a/server/src/main/resources/transport/definitions/referable/file_settings_health_info.csv b/server/src/main/resources/transport/definitions/referable/file_settings_health_info.csv
new file mode 100644
index 0000000000000..3481b595d62d7
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/file_settings_health_info.csv
@@ -0,0 +1 @@
+9072000
diff --git a/server/src/main/resources/transport/definitions/referable/index_metadata_includes_recent_write_load.csv b/server/src/main/resources/transport/definitions/referable/index_metadata_includes_recent_write_load.csv
new file mode 100644
index 0000000000000..babdc594c6d78
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/index_metadata_includes_recent_write_load.csv
@@ -0,0 +1 @@
+9036000
diff --git a/server/src/main/resources/transport/definitions/referable/index_resharding_metadata.csv b/server/src/main/resources/transport/definitions/referable/index_resharding_metadata.csv
new file mode 100644
index 0000000000000..65319c4c9f3ab
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/index_resharding_metadata.csv
@@ -0,0 +1 @@
+9031000
diff --git a/server/src/main/resources/transport/definitions/referable/index_stats_and_metadata_include_peak_write_load.csv b/server/src/main/resources/transport/definitions/referable/index_stats_and_metadata_include_peak_write_load.csv
new file mode 100644
index 0000000000000..e2d389c95199d
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/index_stats_and_metadata_include_peak_write_load.csv
@@ -0,0 +1 @@
+9041000
diff --git a/server/src/main/resources/transport/definitions/referable/indexing_stats_includes_recent_write_load.csv b/server/src/main/resources/transport/definitions/referable/indexing_stats_includes_recent_write_load.csv
new file mode 100644
index 0000000000000..4bf4ca2914b2b
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/indexing_stats_includes_recent_write_load.csv
@@ -0,0 +1 @@
+9034000
diff --git a/server/src/main/resources/transport/definitions/referable/max_operation_size_rejections_added.csv b/server/src/main/resources/transport/definitions/referable/max_operation_size_rejections_added.csv
new file mode 100644
index 0000000000000..bb8275837f461
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/max_operation_size_rejections_added.csv
@@ -0,0 +1 @@
+9024000
diff --git a/server/src/main/resources/transport/definitions/referable/multi_project.csv b/server/src/main/resources/transport/definitions/referable/multi_project.csv
new file mode 100644
index 0000000000000..f938df804fe38
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/multi_project.csv
@@ -0,0 +1 @@
+9018000
diff --git a/server/src/main/resources/transport/definitions/referable/nodes_stats_supports_multi_project.csv b/server/src/main/resources/transport/definitions/referable/nodes_stats_supports_multi_project.csv
new file mode 100644
index 0000000000000..2ad52fbf7ffcb
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/nodes_stats_supports_multi_project.csv
@@ -0,0 +1 @@
+9079000
diff --git a/server/src/main/resources/transport/definitions/referable/project_id_in_snapshot.csv b/server/src/main/resources/transport/definitions/referable/project_id_in_snapshot.csv
new file mode 100644
index 0000000000000..0995e81420972
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/project_id_in_snapshot.csv
@@ -0,0 +1 @@
+9040000
diff --git a/server/src/main/resources/transport/definitions/referable/project_metadata_settings.csv b/server/src/main/resources/transport/definitions/referable/project_metadata_settings.csv
new file mode 100644
index 0000000000000..51214b8b140d8
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/project_metadata_settings.csv
@@ -0,0 +1 @@
+9066000
diff --git a/server/src/main/resources/transport/definitions/referable/remove_repository_conflict_message.csv b/server/src/main/resources/transport/definitions/referable/remove_repository_conflict_message.csv
new file mode 100644
index 0000000000000..6a5c59c80231b
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/remove_repository_conflict_message.csv
@@ -0,0 +1 @@
+9012000
diff --git a/server/src/main/resources/transport/definitions/referable/repo_analysis_copy_blob.csv b/server/src/main/resources/transport/definitions/referable/repo_analysis_copy_blob.csv
new file mode 100644
index 0000000000000..9b62a24c7bf0f
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/repo_analysis_copy_blob.csv
@@ -0,0 +1 @@
+9048000
diff --git a/server/src/main/resources/transport/definitions/referable/slm_unhealthy_if_no_snapshot_within.csv b/server/src/main/resources/transport/definitions/referable/slm_unhealthy_if_no_snapshot_within.csv
new file mode 100644
index 0000000000000..c38648bde1f20
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/slm_unhealthy_if_no_snapshot_within.csv
@@ -0,0 +1 @@
+9010000
diff --git a/server/src/main/resources/transport/definitions/referable/synonyms_refresh_param.csv b/server/src/main/resources/transport/definitions/referable/synonyms_refresh_param.csv
new file mode 100644
index 0000000000000..53d5386f513fc
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/synonyms_refresh_param.csv
@@ -0,0 +1 @@
+9060000
diff --git a/server/src/main/resources/transport/definitions/referable/unassignedinfo_reshard_added.csv b/server/src/main/resources/transport/definitions/referable/unassignedinfo_reshard_added.csv
new file mode 100644
index 0000000000000..4f4f0e0ffbb09
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/unassignedinfo_reshard_added.csv
@@ -0,0 +1 @@
+9022000
diff --git a/server/src/main/resources/transport/definitions/referable/write_load_includes_buffer_writes.csv b/server/src/main/resources/transport/definitions/referable/write_load_includes_buffer_writes.csv
new file mode 100644
index 0000000000000..0d95bf3f53083
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/referable/write_load_includes_buffer_writes.csv
@@ -0,0 +1 @@
+9070000
diff --git a/server/src/main/resources/transport/definitions/unreferable/dead_batched_query_execution_delayable_writeable.csv b/server/src/main/resources/transport/definitions/unreferable/dead_batched_query_execution_delayable_writeable.csv
new file mode 100644
index 0000000000000..76a4159c4b236
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/unreferable/dead_batched_query_execution_delayable_writeable.csv
@@ -0,0 +1 @@
+9053000
diff --git a/server/src/main/resources/transport/definitions/unreferable/dead_esql_documents_found_and_values_loaded.csv b/server/src/main/resources/transport/definitions/unreferable/dead_esql_documents_found_and_values_loaded.csv
new file mode 100644
index 0000000000000..5e64dc23fb95d
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/unreferable/dead_esql_documents_found_and_values_loaded.csv
@@ -0,0 +1 @@
+9052000
diff --git a/server/src/main/resources/transport/definitions/unreferable/dead_esql_time_series_source_status.csv b/server/src/main/resources/transport/definitions/unreferable/dead_esql_time_series_source_status.csv
new file mode 100644
index 0000000000000..6c37e7cd37e77
--- /dev/null
+++ b/server/src/main/resources/transport/definitions/unreferable/dead_esql_time_series_source_status.csv
@@ -0,0 +1 @@
+9076000
diff --git a/server/src/test/java/org/elasticsearch/TransportVersionTests.java b/server/src/test/java/org/elasticsearch/TransportVersionTests.java
index 6f6e03bff18f5..c8a6e7cddc450 100644
--- a/server/src/test/java/org/elasticsearch/TransportVersionTests.java
+++ b/server/src/test/java/org/elasticsearch/TransportVersionTests.java
@@ -419,7 +419,7 @@ public void testTransportVersionsLocked() {
"TransportVersions.java is locked. Generate transport versions with TransportVersion.fromName "
+ "and generateTransportVersion gradle task",
TransportVersions.DEFINED_VERSIONS.getLast().id(),
- equalTo(9_085_0_00)
+ equalTo(8_840_0_00)
);
}
}
diff --git a/server/src/test/java/org/elasticsearch/action/synonyms/SynonymUpdateResponseSerializingTests.java b/server/src/test/java/org/elasticsearch/action/synonyms/SynonymUpdateResponseSerializingTests.java
index c1a5b85783e51..fda47ea4134ed 100644
--- a/server/src/test/java/org/elasticsearch/action/synonyms/SynonymUpdateResponseSerializingTests.java
+++ b/server/src/test/java/org/elasticsearch/action/synonyms/SynonymUpdateResponseSerializingTests.java
@@ -10,7 +10,6 @@
package org.elasticsearch.action.synonyms;
import org.elasticsearch.TransportVersion;
-import org.elasticsearch.TransportVersions;
import org.elasticsearch.action.admin.indices.analyze.ReloadAnalyzersResponse;
import org.elasticsearch.action.admin.indices.analyze.ReloadAnalyzersResponseTests;
import org.elasticsearch.common.Strings;
@@ -58,6 +57,8 @@ public class SynonymUpdateResponseSerializingTests extends AbstractBWCSerializat
);
}
+ private static final TransportVersion SYNONYMS_REFRESH_PARAM = TransportVersion.fromName("synonyms_refresh_param");
+
@Override
protected Writeable.Reader instanceReader() {
return SynonymUpdateResponse::new;
@@ -92,7 +93,7 @@ protected SynonymUpdateResponse mutateInstance(SynonymUpdateResponse instance) t
@Override
protected SynonymUpdateResponse mutateInstanceForVersion(SynonymUpdateResponse instance, TransportVersion version) {
- if (version.before(TransportVersions.SYNONYMS_REFRESH_PARAM) && instance.reloadAnalyzersResponse() == null) {
+ if (version.supports(SYNONYMS_REFRESH_PARAM) == false && instance.reloadAnalyzersResponse() == null) {
// Nulls will be written as empty reload analyzer responses for older versions
return new SynonymUpdateResponse(new SynonymsReloadResult(instance.updateStatus(), EMPTY_RELOAD_ANALYZER_RESPONSE));
}
diff --git a/server/src/test/java/org/elasticsearch/cluster/ClusterStateSerializationTests.java b/server/src/test/java/org/elasticsearch/cluster/ClusterStateSerializationTests.java
index f0731a4b03980..2324dd82d50fa 100644
--- a/server/src/test/java/org/elasticsearch/cluster/ClusterStateSerializationTests.java
+++ b/server/src/test/java/org/elasticsearch/cluster/ClusterStateSerializationTests.java
@@ -10,7 +10,6 @@
package org.elasticsearch.cluster;
import org.elasticsearch.TransportVersion;
-import org.elasticsearch.TransportVersions;
import org.elasticsearch.cluster.metadata.DataStreamTestHelper;
import org.elasticsearch.cluster.node.DiscoveryNode;
import org.elasticsearch.cluster.node.DiscoveryNodeUtils;
@@ -29,12 +28,14 @@
public class ClusterStateSerializationTests extends ESTestCase {
+ private static final TransportVersion MULTI_PROJECT = TransportVersion.fromName("multi_project");
+
public void testSerializationInCurrentVersion() throws IOException {
assertSerializationRoundTrip(TransportVersion.current());
}
public void testSerializationPreMultiProject() throws IOException {
- assertSerializationRoundTrip(TransportVersionUtils.getPreviousVersion(TransportVersions.MULTI_PROJECT));
+ assertSerializationRoundTrip(TransportVersionUtils.getPreviousVersion(MULTI_PROJECT));
}
private void assertSerializationRoundTrip(TransportVersion transportVersion) throws IOException {
diff --git a/server/src/test/java/org/elasticsearch/cluster/block/ClusterBlocksSerializationTests.java b/server/src/test/java/org/elasticsearch/cluster/block/ClusterBlocksSerializationTests.java
index a4a1134802f36..4b0aa8851c8cb 100644
--- a/server/src/test/java/org/elasticsearch/cluster/block/ClusterBlocksSerializationTests.java
+++ b/server/src/test/java/org/elasticsearch/cluster/block/ClusterBlocksSerializationTests.java
@@ -10,7 +10,6 @@
package org.elasticsearch.cluster.block;
import org.elasticsearch.TransportVersion;
-import org.elasticsearch.TransportVersions;
import org.elasticsearch.cluster.coordination.NoMasterBlockService;
import org.elasticsearch.cluster.metadata.IndexMetadata;
import org.elasticsearch.cluster.metadata.Metadata;
@@ -37,6 +36,8 @@
public class ClusterBlocksSerializationTests extends AbstractWireSerializingTestCase<
ClusterBlocksSerializationTests.ClusterBlocksTestWrapper> {
+ private static final TransportVersion MULTI_PROJECT = TransportVersion.fromName("multi_project");
+
@Override
protected Writeable.Reader instanceReader() {
return ClusterBlocksTestWrapper::new;
@@ -147,7 +148,7 @@ public void testWriteToBwc() throws IOException {
final ClusterBlocks clusterBlocks = builder.build();
final var out = new BytesStreamOutput();
- final TransportVersion bwcVersion = TransportVersionUtils.getPreviousVersion(TransportVersions.MULTI_PROJECT);
+ final TransportVersion bwcVersion = TransportVersionUtils.getPreviousVersion(MULTI_PROJECT);
out.setTransportVersion(bwcVersion);
clusterBlocks.writeTo(out);
@@ -171,7 +172,7 @@ public void testWriteToBwcFailure() {
final ClusterBlocks clusterBlocks = builder.build();
final var out = new BytesStreamOutput();
- final TransportVersion bwcVersion = TransportVersionUtils.getPreviousVersion(TransportVersions.MULTI_PROJECT);
+ final TransportVersion bwcVersion = TransportVersionUtils.getPreviousVersion(MULTI_PROJECT);
out.setTransportVersion(bwcVersion);
final IllegalStateException e = expectThrows(IllegalStateException.class, () -> clusterBlocks.writeTo(out));
assertThat(e.getMessage(), containsString("Cannot write multi-project blocks to a stream with version"));
@@ -223,7 +224,7 @@ public void testDiffBwc() throws IOException {
final var diff = current.diff(base);
final var out = new BytesStreamOutput();
- final TransportVersion bwcVersion = TransportVersionUtils.getPreviousVersion(TransportVersions.MULTI_PROJECT);
+ final TransportVersion bwcVersion = TransportVersionUtils.getPreviousVersion(MULTI_PROJECT);
out.setTransportVersion(bwcVersion);
diff.writeTo(out);
@@ -252,7 +253,7 @@ public void testDiffBwcFailure() {
final var diff = current.diff(base);
final var out = new BytesStreamOutput();
- final TransportVersion bwcVersion = TransportVersionUtils.getPreviousVersion(TransportVersions.MULTI_PROJECT);
+ final TransportVersion bwcVersion = TransportVersionUtils.getPreviousVersion(MULTI_PROJECT);
out.setTransportVersion(bwcVersion);
final IllegalStateException e = expectThrows(IllegalStateException.class, () -> diff.writeTo(out));
assertThat(e.getMessage(), containsString("Cannot write multi-project blocks diff to a stream with version"));
diff --git a/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataPersistentTasksTests.java b/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataPersistentTasksTests.java
index ac3644b6ecc8a..22143712d2069 100644
--- a/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataPersistentTasksTests.java
+++ b/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataPersistentTasksTests.java
@@ -10,7 +10,6 @@
package org.elasticsearch.cluster.metadata;
import org.elasticsearch.TransportVersion;
-import org.elasticsearch.TransportVersions;
import org.elasticsearch.cluster.ClusterModule;
import org.elasticsearch.cluster.Diff;
import org.elasticsearch.common.io.stream.BytesStreamOutput;
@@ -49,6 +48,8 @@
public class MetadataPersistentTasksTests extends ESTestCase {
+ private static final TransportVersion MULTI_PROJECT = TransportVersion.fromName("multi_project");
+
private Set assignedAllocationIds;
private NamedWriteableRegistry namedWriteableRegistry;
private NamedWriteableRegistry namedWriteableRegistryBwc;
@@ -134,7 +135,7 @@ public void testPersistentTasksSerializationBwc() throws IOException {
final Metadata orig = randomMetadataWithPersistentTasks();
final BytesStreamOutput out = new BytesStreamOutput();
- final var previousVersion = TransportVersionUtils.getPreviousVersion(TransportVersions.MULTI_PROJECT);
+ final var previousVersion = TransportVersionUtils.getPreviousVersion(MULTI_PROJECT);
out.setTransportVersion(previousVersion);
orig.writeTo(out);
@@ -168,7 +169,7 @@ public void testPersistentTasksDiffSerializationBwc() throws IOException {
final Diff diff = after.diff(before);
final BytesStreamOutput out = new BytesStreamOutput();
- final var previousVersion = TransportVersionUtils.getPreviousVersion(TransportVersions.MULTI_PROJECT);
+ final var previousVersion = TransportVersionUtils.getPreviousVersion(MULTI_PROJECT);
out.setTransportVersion(previousVersion);
diff.writeTo(out);
@@ -332,7 +333,7 @@ public String getWriteableName() {
@Override
public TransportVersion getMinimalSupportedVersion() {
- return TransportVersionUtils.getPreviousVersion(TransportVersions.MULTI_PROJECT);
+ return TransportVersionUtils.getPreviousVersion(MULTI_PROJECT);
}
@Override
@@ -363,7 +364,7 @@ public String getWriteableName() {
@Override
public TransportVersion getMinimalSupportedVersion() {
- return TransportVersionUtils.getPreviousVersion(TransportVersions.MULTI_PROJECT);
+ return TransportVersionUtils.getPreviousVersion(MULTI_PROJECT);
}
@Override
diff --git a/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataRepositoriesMetadataTests.java b/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataRepositoriesMetadataTests.java
index db501f740b64f..9178456255794 100644
--- a/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataRepositoriesMetadataTests.java
+++ b/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataRepositoriesMetadataTests.java
@@ -10,7 +10,6 @@
package org.elasticsearch.cluster.metadata;
import org.elasticsearch.TransportVersion;
-import org.elasticsearch.TransportVersions;
import org.elasticsearch.cluster.AbstractNamedDiffable;
import org.elasticsearch.cluster.ClusterModule;
import org.elasticsearch.cluster.Diff;
@@ -43,6 +42,8 @@
public class MetadataRepositoriesMetadataTests extends ESTestCase {
+ private static final TransportVersion MULTI_PROJECT = TransportVersion.fromName("multi_project");
+
private NamedWriteableRegistry namedWriteableRegistry;
private NamedWriteableRegistry namedWriteableRegistryBwc;
@@ -96,7 +97,7 @@ public void testRepositoriesMetadataDiffSerialization() throws IOException {
}
public void testRepositoriesMetadataSerializationBwc() throws IOException {
- final var oldVersion = TransportVersionUtils.getPreviousVersion(TransportVersions.MULTI_PROJECT);
+ final var oldVersion = TransportVersionUtils.getPreviousVersion(MULTI_PROJECT);
// Before multi-project, BWC is possible for a single project
final Metadata orig = randomMetadata(0, -1);
doTestRepositoriesMetadataSerializationBwc(orig, oldVersion);
@@ -126,7 +127,7 @@ private void simulateReadOnOldNodeAndAssert(BytesReference bytesReference, Trans
}
public void testRepositoriesMetadataDiffSerializationBwc() throws IOException {
- final var oldVersion = TransportVersionUtils.getPreviousVersion(TransportVersions.MULTI_PROJECT);
+ final var oldVersion = TransportVersionUtils.getPreviousVersion(MULTI_PROJECT);
// Before multi-project, BWC is possible for a single project
final Tuple tuple = randomMetadataAndUpdate(0, -1);
doTestRepositoriesMetadataDiffSerializationBwc(tuple, oldVersion);
diff --git a/server/src/test/java/org/elasticsearch/cluster/routing/GlobalRoutingTableTests.java b/server/src/test/java/org/elasticsearch/cluster/routing/GlobalRoutingTableTests.java
index fbaaf876116b8..e783ff0148321 100644
--- a/server/src/test/java/org/elasticsearch/cluster/routing/GlobalRoutingTableTests.java
+++ b/server/src/test/java/org/elasticsearch/cluster/routing/GlobalRoutingTableTests.java
@@ -10,7 +10,6 @@
package org.elasticsearch.cluster.routing;
import org.elasticsearch.TransportVersion;
-import org.elasticsearch.TransportVersions;
import org.elasticsearch.cluster.ClusterName;
import org.elasticsearch.cluster.ClusterState;
import org.elasticsearch.cluster.Diff;
@@ -55,9 +54,8 @@
public class GlobalRoutingTableTests extends AbstractWireSerializingTestCase {
- private static final TransportVersion PRE_MULTI_PROJECT_TRANSPORT_VERSION = TransportVersionUtils.getPreviousVersion(
- TransportVersions.MULTI_PROJECT
- );
+ private static final TransportVersion MULTI_PROJECT = TransportVersion.fromName("multi_project");
+ private static final TransportVersion PRE_MULTI_PROJECT_TRANSPORT_VERSION = TransportVersionUtils.getPreviousVersion(MULTI_PROJECT);
/**
* We intentionally don't want production code comparing two routing tables for equality.
diff --git a/server/src/test/java/org/elasticsearch/snapshots/SnapshotsInProgressSerializationTests.java b/server/src/test/java/org/elasticsearch/snapshots/SnapshotsInProgressSerializationTests.java
index 4e4c5adf5d758..3f53d111672a6 100644
--- a/server/src/test/java/org/elasticsearch/snapshots/SnapshotsInProgressSerializationTests.java
+++ b/server/src/test/java/org/elasticsearch/snapshots/SnapshotsInProgressSerializationTests.java
@@ -10,7 +10,6 @@
package org.elasticsearch.snapshots;
import org.elasticsearch.TransportVersion;
-import org.elasticsearch.TransportVersions;
import org.elasticsearch.cluster.ClusterModule;
import org.elasticsearch.cluster.ClusterName;
import org.elasticsearch.cluster.ClusterState;
@@ -65,6 +64,8 @@ public class SnapshotsInProgressSerializationTests extends SimpleDiffableWireSer
.putCompatibilityVersions("local", new CompatibilityVersions(TransportVersion.current(), Map.of()))
.build();
+ private static final TransportVersion PROJECT_ID_IN_SNAPSHOT = TransportVersion.fromName("project_id_in_snapshot");
+
@Override
protected Custom createTestInstance() {
return createTestInstance(() -> randomSnapshot(randomProjectIdOrDefault()));
@@ -88,7 +89,7 @@ private Custom createTestInstance(Supplier randomEntrySupplier) {
}
public void testSerializationBwc() throws IOException {
- final var oldVersion = TransportVersionUtils.getPreviousVersion(TransportVersions.PROJECT_ID_IN_SNAPSHOT);
+ final var oldVersion = TransportVersionUtils.getPreviousVersion(PROJECT_ID_IN_SNAPSHOT);
final BytesStreamOutput out = new BytesStreamOutput();
out.setTransportVersion(oldVersion);
final Custom original = createTestInstance(() -> randomSnapshot(ProjectId.DEFAULT));
@@ -101,7 +102,7 @@ public void testSerializationBwc() throws IOException {
}
public void testDiffSerializationBwc() throws IOException {
- final var oldVersion = TransportVersionUtils.getPreviousVersion(TransportVersions.PROJECT_ID_IN_SNAPSHOT);
+ final var oldVersion = TransportVersionUtils.getPreviousVersion(PROJECT_ID_IN_SNAPSHOT);
final BytesStreamOutput out = new BytesStreamOutput();
out.setTransportVersion(oldVersion);
diff --git a/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/slm/SnapshotLifecyclePolicy.java b/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/slm/SnapshotLifecyclePolicy.java
index 7290710d6d042..9e405b497f0c1 100644
--- a/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/slm/SnapshotLifecyclePolicy.java
+++ b/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/slm/SnapshotLifecyclePolicy.java
@@ -7,7 +7,7 @@
package org.elasticsearch.xpack.core.slm;
-import org.elasticsearch.TransportVersions;
+import org.elasticsearch.TransportVersion;
import org.elasticsearch.action.ActionRequestValidationException;
import org.elasticsearch.action.admin.cluster.snapshots.create.CreateSnapshotRequest;
import org.elasticsearch.cluster.SimpleDiffable;
@@ -91,6 +91,10 @@ public class SnapshotLifecyclePolicy implements SimpleDiffable implements Operator {
+ private static final TransportVersion ESQL_PROFILE_ASYNC_NANOS = TransportVersion.fromName("esql_profile_async_nanos");
+
private volatile SubscribableListener blockedFuture;
private final Map buffers = ConcurrentCollections.newConcurrentMap();
@@ -268,7 +270,7 @@ protected Status(long receivedPages, long completedPages, long processNanos) {
protected Status(StreamInput in) throws IOException {
this.receivedPages = in.readVLong();
this.completedPages = in.readVLong();
- this.processNanos = in.getTransportVersion().onOrAfter(TransportVersions.ESQL_PROFILE_ASYNC_NANOS)
+ this.processNanos = in.getTransportVersion().supports(ESQL_PROFILE_ASYNC_NANOS)
? in.readVLong()
: TimeValue.timeValueMillis(in.readVLong()).nanos();
}
@@ -278,7 +280,7 @@ public void writeTo(StreamOutput out) throws IOException {
out.writeVLong(receivedPages);
out.writeVLong(completedPages);
out.writeVLong(
- out.getTransportVersion().onOrAfter(TransportVersions.ESQL_PROFILE_ASYNC_NANOS)
+ out.getTransportVersion().supports(ESQL_PROFILE_ASYNC_NANOS)
? processNanos
: TimeValue.timeValueNanos(processNanos).millis()
);
diff --git a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/DriverProfile.java b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/DriverProfile.java
index 9f1a411a3756d..b84c99874186a 100644
--- a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/DriverProfile.java
+++ b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/DriverProfile.java
@@ -50,13 +50,14 @@ public record DriverProfile(
DriverSleeps sleeps
) implements Writeable, ChunkedToXContentObject {
+ private static final TransportVersion ESQL_DRIVER_NODE_DESCRIPTION = TransportVersion.fromName("esql_driver_node_description");
private static final TransportVersion ESQL_DRIVER_TASK_DESCRIPTION = TransportVersion.fromName("esql_driver_task_description");
public static DriverProfile readFrom(StreamInput in) throws IOException {
return new DriverProfile(
in.getTransportVersion().supports(ESQL_DRIVER_TASK_DESCRIPTION) ? in.readString() : "",
- in.getTransportVersion().onOrAfter(TransportVersions.ESQL_DRIVER_NODE_DESCRIPTION) ? in.readString() : "",
- in.getTransportVersion().onOrAfter(TransportVersions.ESQL_DRIVER_NODE_DESCRIPTION) ? in.readString() : "",
+ in.getTransportVersion().supports(ESQL_DRIVER_NODE_DESCRIPTION) ? in.readString() : "",
+ in.getTransportVersion().supports(ESQL_DRIVER_NODE_DESCRIPTION) ? in.readString() : "",
in.getTransportVersion().onOrAfter(TransportVersions.V_8_16_0) ? in.readVLong() : 0,
in.getTransportVersion().onOrAfter(TransportVersions.V_8_16_0) ? in.readVLong() : 0,
in.getTransportVersion().onOrAfter(TransportVersions.V_8_14_0) ? in.readVLong() : 0,
@@ -72,7 +73,7 @@ public void writeTo(StreamOutput out) throws IOException {
if (out.getTransportVersion().supports(ESQL_DRIVER_TASK_DESCRIPTION)) {
out.writeString(description);
}
- if (out.getTransportVersion().onOrAfter(TransportVersions.ESQL_DRIVER_NODE_DESCRIPTION)) {
+ if (out.getTransportVersion().supports(ESQL_DRIVER_NODE_DESCRIPTION)) {
out.writeString(clusterName);
out.writeString(nodeName);
}
diff --git a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/DriverSleeps.java b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/DriverSleeps.java
index 57aa7b16d4725..d316e34ce5326 100644
--- a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/DriverSleeps.java
+++ b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/DriverSleeps.java
@@ -7,6 +7,7 @@
package org.elasticsearch.compute.operator;
+import org.elasticsearch.TransportVersion;
import org.elasticsearch.TransportVersions;
import org.elasticsearch.common.io.stream.StreamInput;
import org.elasticsearch.common.io.stream.StreamOutput;
@@ -38,10 +39,15 @@ public record DriverSleeps(Map counts, List first, List groupings;
protected final List extends NamedExpression> aggregates;
@@ -66,7 +68,7 @@ public Aggregate(Source source, LogicalPlan child, List groupings, L
public Aggregate(StreamInput in) throws IOException {
super(Source.readFrom((PlanStreamInput) in), in.readNamedWriteable(LogicalPlan.class));
if (in.getTransportVersion().onOrAfter(TransportVersions.V_8_15_0)
- && in.getTransportVersion().before(TransportVersions.ESQL_REMOVE_AGGREGATE_TYPE)) {
+ && in.getTransportVersion().supports(ESQL_REMOVE_AGGREGATE_TYPE) == false) {
in.readString();
}
this.groupings = in.readNamedWriteableCollectionAsList(Expression.class);
@@ -78,7 +80,7 @@ public void writeTo(StreamOutput out) throws IOException {
Source.EMPTY.writeTo(out);
out.writeNamedWriteable(child());
if (out.getTransportVersion().onOrAfter(TransportVersions.V_8_15_0)
- && out.getTransportVersion().before(TransportVersions.ESQL_REMOVE_AGGREGATE_TYPE)) {
+ && out.getTransportVersion().supports(ESQL_REMOVE_AGGREGATE_TYPE) == false) {
out.writeString("STANDARD");
}
out.writeNamedWriteableCollection(groupings);
diff --git a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plan/physical/LimitExec.java b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plan/physical/LimitExec.java
index 614c2b0431ca8..0619a3b2fd77d 100644
--- a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plan/physical/LimitExec.java
+++ b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plan/physical/LimitExec.java
@@ -7,7 +7,7 @@
package org.elasticsearch.xpack.esql.plan.physical;
-import org.elasticsearch.TransportVersions;
+import org.elasticsearch.TransportVersion;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.io.stream.StreamInput;
import org.elasticsearch.common.io.stream.StreamOutput;
@@ -29,6 +29,8 @@ public class LimitExec extends UnaryExec implements EstimatesRowSize {
LimitExec::new
);
+ private static final TransportVersion ESQL_LIMIT_ROW_SIZE = TransportVersion.fromName("esql_limit_row_size");
+
private final Expression limit;
private final Integer estimatedRowSize;
@@ -43,7 +45,7 @@ private LimitExec(StreamInput in) throws IOException {
Source.readFrom((PlanStreamInput) in),
in.readNamedWriteable(PhysicalPlan.class),
in.readNamedWriteable(Expression.class),
- in.getTransportVersion().onOrAfter(TransportVersions.ESQL_LIMIT_ROW_SIZE) ? in.readOptionalVInt() : null
+ in.getTransportVersion().supports(ESQL_LIMIT_ROW_SIZE) ? in.readOptionalVInt() : null
);
}
@@ -52,7 +54,7 @@ public void writeTo(StreamOutput out) throws IOException {
Source.EMPTY.writeTo(out);
out.writeNamedWriteable(child());
out.writeNamedWriteable(limit());
- if (out.getTransportVersion().onOrAfter(TransportVersions.ESQL_LIMIT_ROW_SIZE)) {
+ if (out.getTransportVersion().supports(ESQL_LIMIT_ROW_SIZE)) {
out.writeOptionalVInt(estimatedRowSize);
}
}
diff --git a/x-pack/plugin/snapshot-repo-test-kit/src/main/java/org/elasticsearch/repositories/blobstore/testkit/analyze/BlobAnalyzeAction.java b/x-pack/plugin/snapshot-repo-test-kit/src/main/java/org/elasticsearch/repositories/blobstore/testkit/analyze/BlobAnalyzeAction.java
index e6a885b0f644a..c598804cb2e54 100644
--- a/x-pack/plugin/snapshot-repo-test-kit/src/main/java/org/elasticsearch/repositories/blobstore/testkit/analyze/BlobAnalyzeAction.java
+++ b/x-pack/plugin/snapshot-repo-test-kit/src/main/java/org/elasticsearch/repositories/blobstore/testkit/analyze/BlobAnalyzeAction.java
@@ -10,7 +10,7 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.elasticsearch.ExceptionsHelper;
-import org.elasticsearch.TransportVersions;
+import org.elasticsearch.TransportVersion;
import org.elasticsearch.action.ActionListener;
import org.elasticsearch.action.ActionListenerResponseHandler;
import org.elasticsearch.action.ActionRequestValidationException;
@@ -724,6 +724,9 @@ private WriteDetails(long bytesWritten, long elapsedNanos, long throttledNanos,
}
static class Request extends LegacyActionRequest {
+
+ private static final TransportVersion REPO_ANALYSIS_COPY_BLOB = TransportVersion.fromName("repo_analysis_copy_blob");
+
private final String repositoryName;
private final String blobPath;
private final String blobName;
@@ -783,7 +786,7 @@ static class Request extends LegacyActionRequest {
readEarly = in.readBoolean();
writeAndOverwrite = in.readBoolean();
abortWrite = in.readBoolean();
- if (in.getTransportVersion().onOrAfter(TransportVersions.REPO_ANALYSIS_COPY_BLOB)) {
+ if (in.getTransportVersion().supports(REPO_ANALYSIS_COPY_BLOB)) {
copyBlobName = in.readOptionalString();
} else {
copyBlobName = null;
@@ -804,7 +807,7 @@ public void writeTo(StreamOutput out) throws IOException {
out.writeBoolean(readEarly);
out.writeBoolean(writeAndOverwrite);
out.writeBoolean(abortWrite);
- if (out.getTransportVersion().onOrAfter(TransportVersions.REPO_ANALYSIS_COPY_BLOB)) {
+ if (out.getTransportVersion().supports(REPO_ANALYSIS_COPY_BLOB)) {
out.writeOptionalString(copyBlobName);
} else if (copyBlobName != null) {
assert false : out.getTransportVersion();
diff --git a/x-pack/plugin/snapshot-repo-test-kit/src/main/java/org/elasticsearch/repositories/blobstore/testkit/analyze/RepositoryAnalyzeAction.java b/x-pack/plugin/snapshot-repo-test-kit/src/main/java/org/elasticsearch/repositories/blobstore/testkit/analyze/RepositoryAnalyzeAction.java
index 5418a5081c443..3ea8d010ac408 100644
--- a/x-pack/plugin/snapshot-repo-test-kit/src/main/java/org/elasticsearch/repositories/blobstore/testkit/analyze/RepositoryAnalyzeAction.java
+++ b/x-pack/plugin/snapshot-repo-test-kit/src/main/java/org/elasticsearch/repositories/blobstore/testkit/analyze/RepositoryAnalyzeAction.java
@@ -365,6 +365,8 @@ private boolean invariant() {
public static class AsyncAction {
+ private static final TransportVersion REPO_ANALYSIS_COPY_BLOB = TransportVersion.fromName("repo_analysis_copy_blob");
+
private final TransportService transportService;
private final BlobStoreRepository repository;
private final CancellableTask task;
@@ -522,9 +524,7 @@ public void run() {
final long targetLength = blobSizes.get(i);
final boolean smallBlob = targetLength <= MAX_ATOMIC_WRITE_SIZE; // avoid the atomic API for larger blobs
final boolean abortWrite = smallBlob && request.isAbortWritePermitted() && rarely(random);
- final boolean doCopy = minClusterTransportVersion.onOrAfter(TransportVersions.REPO_ANALYSIS_COPY_BLOB)
- && rarely(random)
- && i > 0;
+ final boolean doCopy = minClusterTransportVersion.supports(REPO_ANALYSIS_COPY_BLOB) && rarely(random) && i > 0;
final String blobName = "test-blob-" + i + "-" + UUIDs.randomBase64UUID(random);
String copyBlobName = null;
if (doCopy) {