Browse Source

Update version check for CCS optional remote clusters

also fixed the remote.info yaml test to clean up the registered remote cluster once the test is completed.

Relates to #27182
javanna 8 năm trước cách đây
mục cha
commit
3eeccb7791

+ 2 - 4
core/src/main/java/org/elasticsearch/action/search/SearchResponse.java

@@ -361,8 +361,7 @@ public class SearchResponse extends ActionResponse implements StatusToXContentOb
                 shardFailures[i] = readShardSearchFailure(in);
             }
         }
-        //TODO update version once backported
-        if (in.getVersion().onOrAfter(Version.V_7_0_0_alpha1)) {
+        if (in.getVersion().onOrAfter(Version.V_6_1_0)) {
             clusters = new Clusters(in);
         } else {
             clusters = Clusters.EMPTY;
@@ -385,8 +384,7 @@ public class SearchResponse extends ActionResponse implements StatusToXContentOb
         for (ShardSearchFailure shardSearchFailure : shardFailures) {
             shardSearchFailure.writeTo(out);
         }
-        //TODO update version once backported
-        if (out.getVersion().onOrAfter(Version.V_7_0_0_alpha1)) {
+        if (out.getVersion().onOrAfter(Version.V_6_1_0)) {
             clusters.writeTo(out);
         }
         out.writeOptionalString(scrollId);

+ 2 - 4
core/src/main/java/org/elasticsearch/transport/RemoteConnectionInfo.java

@@ -64,8 +64,7 @@ public final class RemoteConnectionInfo implements ToXContentFragment, Writeable
         initialConnectionTimeout = new TimeValue(input);
         numNodesConnected = input.readVInt();
         clusterAlias = input.readString();
-        //TODO update version once backported
-        if (input.getVersion().onOrAfter(Version.V_7_0_0_alpha1)) {
+        if (input.getVersion().onOrAfter(Version.V_6_1_0)) {
             skipUnavailable = input.readBoolean();
         } else {
             skipUnavailable = false;
@@ -104,8 +103,7 @@ public final class RemoteConnectionInfo implements ToXContentFragment, Writeable
         initialConnectionTimeout.writeTo(out);
         out.writeVInt(numNodesConnected);
         out.writeString(clusterAlias);
-        //TODO update version once backported
-        if (out.getVersion().onOrAfter(Version.V_7_0_0_alpha1)) {
+        if (out.getVersion().onOrAfter(Version.V_6_1_0)) {
             out.writeBoolean(skipUnavailable);
         }
     }

+ 1 - 1
core/src/test/java/org/elasticsearch/action/search/SearchResponseTests.java

@@ -293,7 +293,7 @@ public class SearchResponseTests extends ESTestCase {
 
     public void testSerializationBwc() throws IOException {
         final byte[] data = Base64.getDecoder().decode("AAAAAAAAAAAAAgABBQUAAAoAAAAAAAAA");
-        final Version version = VersionUtils.randomVersionBetween(random(), Version.V_5_6_0, Version.V_6_0_0_rc2);
+        final Version version = VersionUtils.randomVersionBetween(random(), Version.V_5_6_5, Version.V_6_0_0);
         try (StreamInput in = new NamedWriteableAwareStreamInput(StreamInput.wrap(data), namedWriteableRegistry)) {
             in.setVersion(version);
             SearchResponse deserialized = new SearchResponse();

+ 1 - 1
core/src/test/java/org/elasticsearch/transport/RemoteClusterConnectionTests.java

@@ -777,7 +777,7 @@ public class RemoteClusterConnectionTests extends ESTestCase {
     }
 
     public void testRemoteConnectionInfoBwComp() throws IOException {
-        final Version version = VersionUtils.randomVersionBetween(random(), Version.V_5_6_0, Version.V_6_0_0_rc2);
+        final Version version = VersionUtils.randomVersionBetween(random(), Version.V_5_6_5, Version.V_6_0_0);
         RemoteConnectionInfo expected = new RemoteConnectionInfo("test_cluster",
                 Collections.singletonList(new TransportAddress(TransportAddress.META_ADDRESS, 1)),
                 Collections.singletonList(new TransportAddress(TransportAddress.META_ADDRESS, 80)),

+ 44 - 16
qa/multi-cluster-search/src/test/resources/rest-api-spec/test/multi_cluster/20_info.yml

@@ -56,52 +56,80 @@
   - match: { my_remote_cluster.initial_connect_timeout: "30s" }
   - match: { test_remote_cluster.initial_connect_timeout: "30s" }
 
+  - do:
+      cluster.put_settings:
+        body:
+          transient:
+            search.remote.test_remote_cluster.seeds: null
+
 ---
 "skip_unavailable is returned as part of _remote/info response":
   - skip:
-      #TODO update versions once backported
-      version: " - 7.0.0"
-      reason: "skip_unavailable is only returned from 7.0.0 on"
+      version: " - 6.0.99"
+      reason: "skip_unavailable is only returned from 6.1.0 on"
+
+  - do:
+      cluster.get_settings:
+        include_defaults: true
+
+  - set: { defaults.search.remote.my_remote_cluster.seeds.0: remote_ip }
+
+  - do:
+      cluster.put_settings:
+        flat_settings: true
+        body:
+          transient:
+            search.remote.remote1.seeds: $remote_ip
+
+  - match: {transient: {search.remote.remote1.seeds: $remote_ip}}
 
   - do:
-      remote.info: {}
-  - is_false: my_remote_cluster.skip_unavailable
+      cluster.remote_info: {}
+  - is_false: remote1.skip_unavailable
 
   - do:
       cluster.put_settings:
         body:
           transient:
-            search.remote.my_remote_cluster.skip_unavailable: true
+            search.remote.remote1.skip_unavailable: true
 
-  - is_true: transient.search.remote.my_remote_cluster.skip_unavailable
+  - is_true: transient.search.remote.remote1.skip_unavailable
 
   - do:
-      remote.info: {}
+      cluster.remote_info: {}
 
-  - is_true: my_remote_cluster.skip_unavailable
+  - is_true: remote1.skip_unavailable
 
   - do:
       cluster.put_settings:
         body:
           transient:
-            search.remote.my_remote_cluster.skip_unavailable: false
+            search.remote.remote1.skip_unavailable: false
 
-  - is_false: transient.search.remote.my_remote_cluster.skip_unavailable
+  - is_false: transient.search.remote.remote1.skip_unavailable
 
   - do:
-      remote.info: {}
+      cluster.remote_info: {}
 
-  - is_false: my_remote_cluster.skip_unavailable
+  - is_false: remote1.skip_unavailable
 
   - do:
       cluster.put_settings:
         body:
           transient:
-            search.remote.my_remote_cluster.skip_unavailable: null
+            search.remote.remote1.skip_unavailable: null
 
   - match: {transient: {}}
 
   - do:
-      remote.info: {}
+      cluster.remote_info: {}
+
+  - is_false: remote1.skip_unavailable
+
+  - do:
+      cluster.put_settings:
+        body:
+          transient:
+            search.remote.remote1.seeds: null
+            search.remote.remote1.skip_unavailable: null
 
-  - is_false: my_remote_cluster.skip_unavailable