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
This commit is contained in:
javanna 2017-11-21 14:11:44 +01:00 committed by Luca Cavanna
parent cc78b24867
commit 3eeccb7791
5 changed files with 50 additions and 26 deletions

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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();

View File

@ -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)),

View File

@ -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:
remote.info: {}
- is_false: my_remote_cluster.skip_unavailable
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:
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