From d61590abfb100ddd7070722e2e0a68fdf79c22db Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Tue, 18 Jul 2023 07:08:49 -0700 Subject: [PATCH 1/4] Remove transport version from main endpoint response This is a partial backport of #97675. The transport version is a low level detail of how a node behaves in a cluster. It was recently added to the main endpoint response, but is too low level and should be moved to another endpoint TBD. This commit removes it from the main response, though keeps it as part of the wire format for the MainResponse to avoid any need for a bwc change to the format. --- .../elasticsearch/rest/root/MainResponse.java | 21 ++++++------------- .../rest/root/TransportMainAction.java | 1 - .../rest/root/MainResponseTests.java | 18 ++++++---------- .../rest/root/RestMainActionTests.java | 6 ++---- 4 files changed, 14 insertions(+), 32 deletions(-) diff --git a/modules/rest-root/src/main/java/org/elasticsearch/rest/root/MainResponse.java b/modules/rest-root/src/main/java/org/elasticsearch/rest/root/MainResponse.java index 84f21129e02f3..5a2504b740756 100644 --- a/modules/rest-root/src/main/java/org/elasticsearch/rest/root/MainResponse.java +++ b/modules/rest-root/src/main/java/org/elasticsearch/rest/root/MainResponse.java @@ -28,7 +28,6 @@ public class MainResponse extends ActionResponse implements ToXContentObject { private String nodeName; private Version version; - private TransportVersion transportVersion; private ClusterName clusterName; private String clusterUuid; private Build build; @@ -39,7 +38,10 @@ public class MainResponse extends ActionResponse implements ToXContentObject { super(in); nodeName = in.readString(); version = Version.readVersion(in); - transportVersion = in.getTransportVersion().onOrAfter(TransportVersion.V_8_500_014) ? TransportVersion.readVersion(in) : null; + // ignoring transport version that was temporarily part of the response + if (in.getTransportVersion().onOrAfter(TransportVersion.V_8_500_014)) { + TransportVersion.readVersion(in); + } clusterName = new ClusterName(in); clusterUuid = in.readString(); build = Build.readBuild(in); @@ -48,14 +50,12 @@ public class MainResponse extends ActionResponse implements ToXContentObject { public MainResponse( String nodeName, Version version, - TransportVersion transportVersion, ClusterName clusterName, String clusterUuid, Build build ) { this.nodeName = nodeName; this.version = version; - this.transportVersion = transportVersion; this.clusterName = clusterName; this.clusterUuid = clusterUuid; this.build = build; @@ -69,10 +69,6 @@ public Version getVersion() { return version; } - public TransportVersion getTransportVersion() { - return transportVersion; - } - public ClusterName getClusterName() { return clusterName; } @@ -90,7 +86,7 @@ public void writeTo(StreamOutput out) throws IOException { out.writeString(nodeName); Version.writeVersion(version, out); if (out.getTransportVersion().onOrAfter(TransportVersion.V_8_500_019)) { - TransportVersion.writeVersion(transportVersion, out); + TransportVersion.writeVersion(TransportVersion.current(), out); } clusterName.writeTo(out); out.writeString(clusterUuid); @@ -113,7 +109,6 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws .field("lucene_version", version.luceneVersion().toString()) .field("minimum_wire_compatibility_version", version.minimumCompatibilityVersion().toString()) .field("minimum_index_compatibility_version", version.minimumIndexCompatibilityVersion().toString()) - .field("transport_version", transportVersion.toString()) .endObject(); builder.field("tagline", "You Know, for Search"); builder.endObject(); @@ -147,7 +142,6 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws response.version = Version.fromString( ((String) value.get("number")).replace("-SNAPSHOT", "").replaceFirst("-(alpha\\d+|beta\\d+|rc\\d+)", "") ); - response.transportVersion = TransportVersion.fromString(((String) value.get("transport_version"))); }, (parser, context) -> parser.map(), new ParseField("version")); } @@ -166,7 +160,6 @@ public boolean equals(Object o) { MainResponse other = (MainResponse) o; return Objects.equals(nodeName, other.nodeName) && Objects.equals(version, other.version) - && Objects.equals(transportVersion, other.transportVersion) && Objects.equals(clusterUuid, other.clusterUuid) && Objects.equals(build, other.build) && Objects.equals(clusterName, other.clusterName); @@ -174,7 +167,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(nodeName, version, transportVersion, clusterUuid, build, clusterName); + return Objects.hash(nodeName, version, clusterUuid, build, clusterName); } @Override @@ -185,8 +178,6 @@ public String toString() { + '\'' + ", version=" + version - + ", transportVersion=" - + transportVersion + ", clusterName=" + clusterName + ", clusterUuid='" diff --git a/modules/rest-root/src/main/java/org/elasticsearch/rest/root/TransportMainAction.java b/modules/rest-root/src/main/java/org/elasticsearch/rest/root/TransportMainAction.java index 633e3273e47f8..89f69c8d0741e 100644 --- a/modules/rest-root/src/main/java/org/elasticsearch/rest/root/TransportMainAction.java +++ b/modules/rest-root/src/main/java/org/elasticsearch/rest/root/TransportMainAction.java @@ -46,7 +46,6 @@ protected void doExecute(Task task, MainRequest request, ActionListener clusterUuid = clusterUuid + randomAlphaOfLength(5); case 1 -> nodeName = nodeName + randomAlphaOfLength(5); case 2 -> @@ -114,8 +109,7 @@ protected MainResponse mutateInstance(MainResponse mutateInstance) { build = new Build(Build.Type.UNKNOWN, build.hash(), build.date(), build.isSnapshot() == false, build.qualifiedVersion()); case 3 -> version = randomValueOtherThan(version, () -> VersionUtils.randomVersion(random())); case 4 -> clusterName = new ClusterName(clusterName + randomAlphaOfLength(5)); - case 5 -> transportVersion = randomValueOtherThan(transportVersion, () -> TransportVersionUtils.randomVersion(random())); } - return new MainResponse(nodeName, version, transportVersion, clusterName, clusterUuid, build); + return new MainResponse(nodeName, version, clusterName, clusterUuid, build); } } diff --git a/modules/rest-root/src/test/java/org/elasticsearch/rest/root/RestMainActionTests.java b/modules/rest-root/src/test/java/org/elasticsearch/rest/root/RestMainActionTests.java index 0c8c0dbd3a2fd..0991be5207283 100644 --- a/modules/rest-root/src/test/java/org/elasticsearch/rest/root/RestMainActionTests.java +++ b/modules/rest-root/src/test/java/org/elasticsearch/rest/root/RestMainActionTests.java @@ -35,10 +35,9 @@ public void testHeadResponse() throws Exception { final ClusterName clusterName = new ClusterName("cluster1"); final String clusterUUID = randomAlphaOfLengthBetween(10, 20); final Version version = Version.CURRENT; - final TransportVersion transportVersion = TransportVersion.current(); final Build build = Build.CURRENT; - final MainResponse mainResponse = new MainResponse(nodeName, version, transportVersion, clusterName, clusterUUID, build); + final MainResponse mainResponse = new MainResponse(nodeName, version, clusterName, clusterUUID, build); XContentBuilder builder = JsonXContent.contentBuilder(); RestRequest restRequest = new FakeRestRequest() { @Override @@ -60,11 +59,10 @@ public void testGetResponse() throws Exception { final ClusterName clusterName = new ClusterName("cluster1"); final String clusterUUID = randomAlphaOfLengthBetween(10, 20); final Version version = Version.CURRENT; - final TransportVersion transportVersion = TransportVersion.current(); final Build build = Build.CURRENT; final boolean prettyPrint = randomBoolean(); - final MainResponse mainResponse = new MainResponse(nodeName, version, transportVersion, clusterName, clusterUUID, build); + final MainResponse mainResponse = new MainResponse(nodeName, version, clusterName, clusterUUID, build); XContentBuilder builder = JsonXContent.contentBuilder(); Map params = new HashMap<>(); From 6524e6bd11d7e8f8e507f276b627c1eb8ae83289 Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Tue, 18 Jul 2023 07:36:29 -0700 Subject: [PATCH 2/4] iter --- .../java/org/elasticsearch/rest/root/RestMainActionTests.java | 1 - .../org/elasticsearch/xpack/sql/jdbc/WebServerTestCase.java | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/rest-root/src/test/java/org/elasticsearch/rest/root/RestMainActionTests.java b/modules/rest-root/src/test/java/org/elasticsearch/rest/root/RestMainActionTests.java index 0991be5207283..1cfebc887f058 100644 --- a/modules/rest-root/src/test/java/org/elasticsearch/rest/root/RestMainActionTests.java +++ b/modules/rest-root/src/test/java/org/elasticsearch/rest/root/RestMainActionTests.java @@ -9,7 +9,6 @@ package org.elasticsearch.rest.root; import org.elasticsearch.Build; -import org.elasticsearch.TransportVersion; import org.elasticsearch.Version; import org.elasticsearch.cluster.ClusterName; import org.elasticsearch.common.bytes.BytesReference; diff --git a/x-pack/plugin/sql/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/WebServerTestCase.java b/x-pack/plugin/sql/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/WebServerTestCase.java index 33d29ead479b5..1cdbe77299e28 100644 --- a/x-pack/plugin/sql/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/WebServerTestCase.java +++ b/x-pack/plugin/sql/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/WebServerTestCase.java @@ -50,8 +50,7 @@ MainResponse createMainResponse(Version version) { String nodeName = randomAlphaOfLength(10); final String date = new Date(randomNonNegativeLong()).toString(); Build build = new Build(Build.Type.UNKNOWN, randomAlphaOfLength(8), date, randomBoolean(), version.toString()); - TransportVersion transportVersion = TransportVersion.current(); - return new MainResponse(nodeName, version, transportVersion, clusterName, clusterUuid, build); + return new MainResponse(nodeName, version, clusterName, clusterUuid, build); } String webServerAddress() { From 4eae3799de2cab3ca08b2be86d963587e346f3c0 Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Tue, 18 Jul 2023 07:41:21 -0700 Subject: [PATCH 3/4] spotless --- .../java/org/elasticsearch/rest/root/MainResponse.java | 8 +------- .../org/elasticsearch/rest/root/TransportMainAction.java | 9 +-------- .../org/elasticsearch/rest/root/MainResponseTests.java | 2 -- .../elasticsearch/xpack/sql/jdbc/WebServerTestCase.java | 1 - 4 files changed, 2 insertions(+), 18 deletions(-) diff --git a/modules/rest-root/src/main/java/org/elasticsearch/rest/root/MainResponse.java b/modules/rest-root/src/main/java/org/elasticsearch/rest/root/MainResponse.java index 5a2504b740756..1df6efe3287bf 100644 --- a/modules/rest-root/src/main/java/org/elasticsearch/rest/root/MainResponse.java +++ b/modules/rest-root/src/main/java/org/elasticsearch/rest/root/MainResponse.java @@ -47,13 +47,7 @@ public class MainResponse extends ActionResponse implements ToXContentObject { build = Build.readBuild(in); } - public MainResponse( - String nodeName, - Version version, - ClusterName clusterName, - String clusterUuid, - Build build - ) { + public MainResponse(String nodeName, Version version, ClusterName clusterName, String clusterUuid, Build build) { this.nodeName = nodeName; this.version = version; this.clusterName = clusterName; diff --git a/modules/rest-root/src/main/java/org/elasticsearch/rest/root/TransportMainAction.java b/modules/rest-root/src/main/java/org/elasticsearch/rest/root/TransportMainAction.java index 89f69c8d0741e..a90e40fb5e628 100644 --- a/modules/rest-root/src/main/java/org/elasticsearch/rest/root/TransportMainAction.java +++ b/modules/rest-root/src/main/java/org/elasticsearch/rest/root/TransportMainAction.java @@ -9,7 +9,6 @@ package org.elasticsearch.rest.root; import org.elasticsearch.Build; -import org.elasticsearch.TransportVersion; import org.elasticsearch.Version; import org.elasticsearch.action.ActionListener; import org.elasticsearch.action.support.ActionFilters; @@ -43,13 +42,7 @@ public TransportMainAction( protected void doExecute(Task task, MainRequest request, ActionListener listener) { ClusterState clusterState = clusterService.state(); listener.onResponse( - new MainResponse( - nodeName, - Version.CURRENT, - clusterState.getClusterName(), - clusterState.metadata().clusterUUID(), - Build.CURRENT - ) + new MainResponse(nodeName, Version.CURRENT, clusterState.getClusterName(), clusterState.metadata().clusterUUID(), Build.CURRENT) ); } } diff --git a/modules/rest-root/src/test/java/org/elasticsearch/rest/root/MainResponseTests.java b/modules/rest-root/src/test/java/org/elasticsearch/rest/root/MainResponseTests.java index b4f8de7874c39..99ad051f2dfbe 100644 --- a/modules/rest-root/src/test/java/org/elasticsearch/rest/root/MainResponseTests.java +++ b/modules/rest-root/src/test/java/org/elasticsearch/rest/root/MainResponseTests.java @@ -9,14 +9,12 @@ package org.elasticsearch.rest.root; import org.elasticsearch.Build; -import org.elasticsearch.TransportVersion; import org.elasticsearch.Version; import org.elasticsearch.cluster.ClusterName; import org.elasticsearch.common.Strings; import org.elasticsearch.common.io.stream.Writeable; import org.elasticsearch.common.xcontent.XContentHelper; import org.elasticsearch.test.AbstractXContentSerializingTestCase; -import org.elasticsearch.test.TransportVersionUtils; import org.elasticsearch.test.VersionUtils; import org.elasticsearch.xcontent.ToXContent; import org.elasticsearch.xcontent.XContentBuilder; diff --git a/x-pack/plugin/sql/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/WebServerTestCase.java b/x-pack/plugin/sql/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/WebServerTestCase.java index 1cdbe77299e28..f152b6756bd35 100644 --- a/x-pack/plugin/sql/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/WebServerTestCase.java +++ b/x-pack/plugin/sql/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/WebServerTestCase.java @@ -8,7 +8,6 @@ package org.elasticsearch.xpack.sql.jdbc; import org.elasticsearch.Build; -import org.elasticsearch.TransportVersion; import org.elasticsearch.Version; import org.elasticsearch.cluster.ClusterName; import org.elasticsearch.rest.root.MainResponse; From 8dc7a994cd8387c561b7446db80863153466262b Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Tue, 18 Jul 2023 11:42:25 -0700 Subject: [PATCH 4/4] fix docs --- docs/reference/setup/install/check-running.asciidoc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/reference/setup/install/check-running.asciidoc b/docs/reference/setup/install/check-running.asciidoc index 3633b81805ca5..726de3ed9a0e4 100644 --- a/docs/reference/setup/install/check-running.asciidoc +++ b/docs/reference/setup/install/check-running.asciidoc @@ -41,8 +41,7 @@ GET / "build_snapshot" : false, "lucene_version" : "{lucene_version}", "minimum_wire_compatibility_version" : "1.2.3", - "minimum_index_compatibility_version" : "1.2.3", - "transport_version" : "123456" + "minimum_index_compatibility_version" : "1.2.3" }, "tagline" : "You Know, for Search" } @@ -55,5 +54,4 @@ GET / // TESTRESPONSE[s/"build_snapshot" : false,/"build_snapshot" : $body.version.build_snapshot,/] // TESTRESPONSE[s/"minimum_wire_compatibility_version" : "1.2.3"/"minimum_wire_compatibility_version" : $body.version.minimum_wire_compatibility_version/] // TESTRESPONSE[s/"minimum_index_compatibility_version" : "1.2.3"/"minimum_index_compatibility_version" : $body.version.minimum_index_compatibility_version/] -// TESTRESPONSE[s/"transport_version" : "123456"/"transport_version" : $body.version.transport_version/] // So much s/// but at least we test that the layout is close to matching....