Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[8.14] Update several references to TransportVersion.toString to use toReleaseVersion (#107902) #107935

Merged
merged 2 commits into from
Apr 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions docs/changelog/107902.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
pr: 107902
summary: Update several references to `TransportVersion.toString` to use `toReleaseVersion`
area: Infra/Core
type: bug
issues: []
Original file line number Diff line number Diff line change
Expand Up @@ -208,8 +208,8 @@ public void testCCSCheckCompatibility() throws Exception {
String expectedCause = Strings.format(
"[fail_before_current_version] was released first in version %s, failed compatibility "
+ "check trying to send it to node with version %s",
FailBeforeCurrentVersionQueryBuilder.FUTURE_VERSION,
TransportVersions.MINIMUM_CCS_VERSION
FailBeforeCurrentVersionQueryBuilder.FUTURE_VERSION.toReleaseVersion(),
TransportVersions.MINIMUM_CCS_VERSION.toReleaseVersion()
);
String actualCause = ex.getCause().getMessage();
assertEquals(expectedCause, actualCause);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
import static org.elasticsearch.xcontent.XContentFactory.jsonBuilder;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.matchesRegex;

/**
* Full integration test of the template query plugin.
Expand Down Expand Up @@ -441,10 +442,13 @@ public void testCCSCheckCompatibility() throws Exception {
);
assertThat(primary.getMessage(), containsString("'search.check_ccs_compatibility' setting is enabled."));

String expectedCause = "[fail_before_current_version] was released first in version XXXXXXX, failed compatibility check trying to"
+ " send it to node with version XXXXXXX";
String actualCause = underlying.getMessage().replaceAll("\\d{7,}", "XXXXXXX");
assertEquals(expectedCause, actualCause);
assertThat(
underlying.getMessage(),
matchesRegex(
"\\[fail_before_current_version] was released first in version .+,"
+ " failed compatibility check trying to send it to node with version .+"
)
);
}

public static void assertHitCount(SearchTemplateRequestBuilder requestBuilder, long expectedHitCount) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@

package org.elasticsearch.action.admin.cluster.snapshots.features;

import org.elasticsearch.TransportVersion;
import org.elasticsearch.TransportVersions;
import org.elasticsearch.action.ActionRequestValidationException;
import org.elasticsearch.action.support.master.MasterNodeRequest;
import org.elasticsearch.common.io.stream.StreamInput;
Expand All @@ -20,14 +18,7 @@
/** Request for resetting feature state */
public class ResetFeatureStateRequest extends MasterNodeRequest<ResetFeatureStateRequest> {

private static final TransportVersion FEATURE_RESET_ON_MASTER = TransportVersions.V_7_14_0;

public static ResetFeatureStateRequest fromStream(StreamInput in) throws IOException {
if (in.getTransportVersion().before(FEATURE_RESET_ON_MASTER)) {
throw new IllegalStateException(
"feature reset is not available in a cluster that have nodes with version before " + FEATURE_RESET_ON_MASTER
);
}
return new ResetFeatureStateRequest(in);
}

Expand All @@ -39,11 +30,6 @@ private ResetFeatureStateRequest(StreamInput in) throws IOException {

@Override
public void writeTo(StreamOutput out) throws IOException {
if (out.getTransportVersion().before(FEATURE_RESET_ON_MASTER)) {
throw new IllegalStateException(
"feature reset is not available in a cluster that have nodes with version before " + FEATURE_RESET_ON_MASTER
);
}
super.writeTo(out);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,9 @@ public ResolveClusterActionRequest(StreamInput in) throws IOException {
if (in.getTransportVersion().before(TransportVersions.RESOLVE_CLUSTER_ENDPOINT_ADDED)) {
throw new UnsupportedOperationException(
"ResolveClusterAction requires at least Transport Version "
+ TransportVersions.RESOLVE_CLUSTER_ENDPOINT_ADDED
+ TransportVersions.RESOLVE_CLUSTER_ENDPOINT_ADDED.toReleaseVersion()
+ " but was "
+ in.getTransportVersion()
+ in.getTransportVersion().toReleaseVersion()
);
}
this.names = in.readStringArray();
Expand All @@ -81,9 +81,9 @@ public void writeTo(StreamOutput out) throws IOException {
if (out.getTransportVersion().before(TransportVersions.RESOLVE_CLUSTER_ENDPOINT_ADDED)) {
throw new UnsupportedOperationException(
"ResolveClusterAction requires at least Transport Version "
+ TransportVersions.RESOLVE_CLUSTER_ENDPOINT_ADDED
+ TransportVersions.RESOLVE_CLUSTER_ENDPOINT_ADDED.toReleaseVersion()
+ " but was "
+ out.getTransportVersion()
+ out.getTransportVersion().toReleaseVersion()
);
}
out.writeStringArray(names);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,9 @@ public void writeTo(StreamOutput out) throws IOException {
if (out.getTransportVersion().before(TransportVersions.RESOLVE_CLUSTER_ENDPOINT_ADDED)) {
throw new UnsupportedOperationException(
"ResolveClusterAction requires at least Transport Version "
+ TransportVersions.RESOLVE_CLUSTER_ENDPOINT_ADDED
+ TransportVersions.RESOLVE_CLUSTER_ENDPOINT_ADDED.toReleaseVersion()
+ " but was "
+ out.getTransportVersion()
+ out.getTransportVersion().toReleaseVersion()
);
}
out.writeMap(infoMap, StreamOutput::writeWriteable);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,9 @@ public void writeTo(StreamOutput out) throws IOException {
if (out.getTransportVersion().before(TransportVersions.RESOLVE_CLUSTER_ENDPOINT_ADDED)) {
throw new UnsupportedOperationException(
"ResolveClusterAction requires at least Transport Version "
+ TransportVersions.RESOLVE_CLUSTER_ENDPOINT_ADDED
+ TransportVersions.RESOLVE_CLUSTER_ENDPOINT_ADDED.toReleaseVersion()
+ " but was "
+ out.getTransportVersion()
+ out.getTransportVersion().toReleaseVersion()
);
}
out.writeBoolean(connected);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ public void writeTo(StreamOutput out) throws IOException {
"support for maxConcurrentShardRequests=["
+ maxConcurrentShardRequests
+ "] was added in version [8.8.0], cannot send this request using transport version ["
+ out.getTransportVersion()
+ out.getTransportVersion().toReleaseVersion()
+ "]"
);
} // else just drop the value and use the default behaviour
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ public static void checkCCSVersionCompatibility(Writeable writeableRequest) {
"["
+ writeableRequest.getClass()
+ "] is not compatible with version "
+ TransportVersions.MINIMUM_CCS_VERSION
+ TransportVersions.MINIMUM_CCS_VERSION.toReleaseVersion()
+ " and the '"
+ SearchService.CCS_VERSION_CHECK_SETTING.getKey()
+ "' setting is enabled.",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,7 @@ public boolean runOnlyOnMaster() {
private static void blockForbiddenVersions(TransportVersion joiningTransportVersion) {
if (FORBIDDEN_VERSIONS.contains(joiningTransportVersion)) {
throw new IllegalStateException(
"A node with transport version " + joiningTransportVersion + " is forbidden from joining this cluster"
"A node with transport version " + joiningTransportVersion.toReleaseVersion() + " is forbidden from joining this cluster"
);
}
}
Expand Down Expand Up @@ -427,9 +427,9 @@ static void ensureTransportVersionBarrier(
if (joiningCompatibilityVersions.transportVersion().before(minClusterTransportVersion)) {
throw new IllegalStateException(
"node with transport version ["
+ joiningCompatibilityVersions.transportVersion()
+ joiningCompatibilityVersions.transportVersion().toReleaseVersion()
+ "] may not join a cluster with minimum transport version ["
+ minClusterTransportVersion
+ minClusterTransportVersion.toReleaseVersion()
+ "]"
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -456,7 +456,11 @@ private void sendClusterStateDiff(DiscoveryNode destination, ActionListener<Publ

final ReleasableBytesReference bytes = serializedDiffs.get(connection.getTransportVersion());
assert bytes != null
: "failed to find serialized diff for node " + destination + " of version [" + connection.getTransportVersion() + "]";
: "failed to find serialized diff for node "
+ destination
+ " of version ["
+ connection.getTransportVersion().toReleaseVersion()
+ "]";

// acquire a ref to the context just in case we need to try again with the full cluster state
if (tryIncRef() == false) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,9 @@ private void checkVersionCompatibility(VersionedNamedWriteable namedWriteable) {
"["
+ namedWriteable.getWriteableName()
+ "] was released first in version "
+ namedWriteable.getMinimalSupportedVersion()
+ namedWriteable.getMinimalSupportedVersion().toReleaseVersion()
+ ", failed compatibility check trying to send it to node with version "
+ getTransportVersion()
+ getTransportVersion().toReleaseVersion()
);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,7 @@ public void writeTo(StreamOutput out) throws IOException {
if (out.getTransportVersion().onOrAfter(TransportVersions.V_8_8_0)) {
out.writeVInt(rank);
} else if (rank != NO_RANK) {
throw new IllegalArgumentException("cannot serialize [rank] to version [" + out.getTransportVersion() + "]");
throw new IllegalArgumentException("cannot serialize [rank] to version [" + out.getTransportVersion().toReleaseVersion() + "]");
}
out.writeOptionalText(id);
if (out.getTransportVersion().before(TransportVersions.V_8_0_0)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,9 @@ public void writeTo(StreamOutput out) throws IOException {
if (out.getTransportVersion().onOrAfter(TransportVersions.V_8_9_X)) {
out.writeCollection(subSearchSourceBuilders);
} else if (out.getTransportVersion().before(TransportVersions.V_8_4_0) && subSearchSourceBuilders.size() >= 2) {
throw new IllegalArgumentException("cannot serialize [sub_searches] to version [" + out.getTransportVersion() + "]");
throw new IllegalArgumentException(
"cannot serialize [sub_searches] to version [" + out.getTransportVersion().toReleaseVersion() + "]"
);
} else {
out.writeOptionalNamedWriteable(query());
}
Expand Down Expand Up @@ -346,8 +348,10 @@ public void writeTo(StreamOutput out) throws IOException {
if (out.getTransportVersion().before(TransportVersions.V_8_7_0)) {
if (knnSearch.size() > 1) {
throw new IllegalArgumentException(
"Versions before 8070099 don't support multiple [knn] search clauses and search was sent to ["
+ out.getTransportVersion()
"Versions before ["
+ TransportVersions.V_8_7_0.toReleaseVersion()
+ "] don't support multiple [knn] search clauses and search was sent to ["
+ out.getTransportVersion().toReleaseVersion()
+ "]"
);
}
Expand All @@ -359,7 +363,7 @@ public void writeTo(StreamOutput out) throws IOException {
if (out.getTransportVersion().onOrAfter(TransportVersions.V_8_8_0)) {
out.writeOptionalNamedWriteable(rankBuilder);
} else if (rankBuilder != null) {
throw new IllegalArgumentException("cannot serialize [rank] to version [" + out.getTransportVersion() + "]");
throw new IllegalArgumentException("cannot serialize [rank] to version [" + out.getTransportVersion().toReleaseVersion() + "]");
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -141,8 +141,10 @@ public void writeTo(StreamOutput out) throws IOException {
if (knnResults != null && knnResults.size() > 1) {
throw new IllegalArgumentException(
"Cannot serialize multiple KNN results to nodes using previous transport version ["
+ out.getTransportVersion()
+ "], minimum required transport version is [8070099]"
+ out.getTransportVersion().toReleaseVersion()
+ "], minimum required transport version is ["
+ TransportVersions.V_8_7_0.toReleaseVersion()
+ "]"
);
}
out.writeOptionalWriteable(knnResults == null || knnResults.isEmpty() ? null : knnResults.get(0));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -456,7 +456,7 @@ public void writeToNoId(StreamOutput out) throws IOException {
if (out.getTransportVersion().onOrAfter(TransportVersions.V_8_8_0)) {
out.writeOptionalNamedWriteable(rankShardResult);
} else if (rankShardResult != null) {
throw new IllegalArgumentException("cannot serialize [rank] to version [" + out.getTransportVersion() + "]");
throw new IllegalArgumentException("cannot serialize [rank] to version [" + out.getTransportVersion().toReleaseVersion() + "]");
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -246,9 +246,9 @@ static void checkVersionCompatibility(TransportVersion remoteVersion) {
if (TransportVersion.isCompatible(remoteVersion) == false) {
throw new IllegalStateException(
"Received message from unsupported version: ["
+ remoteVersion
+ remoteVersion.toReleaseVersion()
+ "] minimal compatible version is: ["
+ TransportVersions.MINIMUM_COMPATIBLE
+ TransportVersions.MINIMUM_COMPATIBLE.toReleaseVersion()
+ "]"
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,9 @@ public void testCheckVersionCompatibility() throws IOException {
);
assertEquals(
"[test_writable] was released first in version "
+ TransportVersion.current()
+ TransportVersion.current().toReleaseVersion()
+ ", failed compatibility check trying to send it to node with version "
+ streamVersion,
+ streamVersion.toReleaseVersion(),
e.getMessage()
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -477,9 +477,9 @@ public void testCheckVersionCompatibility() {
} catch (IllegalStateException expected) {
assertEquals(
"Received message from unsupported version: ["
+ invalid
+ invalid.toReleaseVersion()
+ "] minimal compatible version is: ["
+ TransportVersions.MINIMUM_COMPATIBLE
+ TransportVersions.MINIMUM_COMPATIBLE.toReleaseVersion()
+ "]",
expected.getMessage()
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
public class FailBeforeCurrentVersionQueryBuilder extends DummyQueryBuilder {

public static final String NAME = "fail_before_current_version";
public static final int FUTURE_VERSION = TransportVersion.current().id() + 11_111;
public static final TransportVersion FUTURE_VERSION = TransportVersion.fromId(TransportVersion.current().id() + 11_111);

public FailBeforeCurrentVersionQueryBuilder(StreamInput in) throws IOException {
super(in);
Expand All @@ -49,6 +49,6 @@ protected QueryBuilder doRewrite(QueryRewriteContext queryRewriteContext) throws
public TransportVersion getMinimalSupportedVersion() {
// this is what causes the failure - it always reports a version in the future, so it is never compatible with
// current or minimum CCS TransportVersion
return new TransportVersion(FUTURE_VERSION);
return FUTURE_VERSION;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,7 @@ public final class SourceDestValidator {
+ "alias [{0}], license is not active";
public static final String REMOTE_SOURCE_INDICES_NOT_SUPPORTED = "remote source indices are not supported";
public static final String REMOTE_CLUSTERS_TRANSPORT_TOO_OLD =
"remote clusters are expected to run at least transport version [{0}] (reason: [{1}]),"
+ " but the following clusters were too old: [{2}]";
"remote clusters are expected to run at least version [{0}] (reason: [{1}])," + " but the following clusters were too old: [{2}]";
public static final String PIPELINE_MISSING = "Pipeline with id [{0}] could not be found";

private final IndexNameExpressionResolver indexNameExpressionResolver;
Expand Down Expand Up @@ -491,12 +490,12 @@ public void validate(Context context, ActionListener<Context> listener) {
if (oldRemoteClusterVersions.isEmpty() == false) {
context.addValidationError(
REMOTE_CLUSTERS_TRANSPORT_TOO_OLD,
minExpectedVersion,
minExpectedVersion.toReleaseVersion(),
reason,
oldRemoteClusterVersions.entrySet()
.stream()
.sorted(comparingByKey()) // sort to have a deterministic order among clusters in the resulting string
.map(e -> e.getKey() + " (" + e.getValue() + ")")
.map(e -> e.getKey() + " (" + e.getValue().toReleaseVersion() + ")")
.collect(joining(", "))
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,9 +111,9 @@ public void writeTo(StreamOutput out) throws IOException {
} else if (hasRemoteIndicesPrivileges()) {
throw new IllegalArgumentException(
"versions of Elasticsearch before ["
+ TransportVersions.V_8_8_0
+ TransportVersions.V_8_8_0.toReleaseVersion()
+ "] can't handle remote indices privileges and attempted to send to ["
+ out.getTransportVersion()
+ out.getTransportVersion().toReleaseVersion()
+ "]"
);
}
Expand Down
Loading