Skip to content

Commit 2013f10

Browse files
committed
Move PeerFinder machinery to discovery package
1 parent 3608505 commit 2013f10

File tree

7 files changed

+121
-84
lines changed

7 files changed

+121
-84
lines changed

server/src/main/java/org/elasticsearch/common/settings/ClusterSettings.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import org.elasticsearch.cluster.InternalClusterInfoService;
3131
import org.elasticsearch.cluster.NodeConnectionsService;
3232
import org.elasticsearch.cluster.action.index.MappingUpdatedAction;
33-
import org.elasticsearch.cluster.coordination.PeerFinder;
3433
import org.elasticsearch.cluster.metadata.IndexGraveyard;
3534
import org.elasticsearch.cluster.metadata.MetaData;
3635
import org.elasticsearch.cluster.routing.OperationRouting;
@@ -55,6 +54,7 @@
5554
import org.elasticsearch.common.util.concurrent.ThreadContext;
5655
import org.elasticsearch.discovery.DiscoveryModule;
5756
import org.elasticsearch.discovery.DiscoverySettings;
57+
import org.elasticsearch.discovery.PeerFinder;
5858
import org.elasticsearch.discovery.zen.ElectMasterService;
5959
import org.elasticsearch.discovery.zen.FaultDetection;
6060
import org.elasticsearch.discovery.zen.SettingsBasedHostsProvider;

server/src/main/java/org/elasticsearch/discovery/ConfiguredHostsResolver.java

-1
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,3 @@ public interface ConfiguredHostsResolver {
3333
*/
3434
void resolveConfiguredHosts(Consumer<List<TransportAddress>> consumer);
3535
}
36-

server/src/main/java/org/elasticsearch/cluster/coordination/PeerFinder.java renamed to server/src/main/java/org/elasticsearch/discovery/PeerFinder.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@
1717
* under the License.
1818
*/
1919

20-
package org.elasticsearch.cluster.coordination;
20+
package org.elasticsearch.discovery;
2121

2222
import com.carrotsearch.hppc.cursors.ObjectCursor;
2323
import org.apache.logging.log4j.message.ParameterizedMessage;
2424
import org.apache.lucene.util.SetOnce;
2525
import org.elasticsearch.action.ActionListener;
26+
import org.elasticsearch.cluster.coordination.FutureExecutor;
27+
import org.elasticsearch.cluster.coordination.PeersResponse;
2628
import org.elasticsearch.cluster.node.DiscoveryNode;
2729
import org.elasticsearch.cluster.node.DiscoveryNodes;
2830
import org.elasticsearch.common.Nullable;
@@ -33,7 +35,6 @@
3335
import org.elasticsearch.common.transport.TransportAddress;
3436
import org.elasticsearch.common.unit.TimeValue;
3537
import org.elasticsearch.common.util.concurrent.AbstractRunnable;
36-
import org.elasticsearch.discovery.ConfiguredHostsResolver;
3738
import org.elasticsearch.threadpool.ThreadPool.Names;
3839
import org.elasticsearch.transport.TransportException;
3940
import org.elasticsearch.transport.TransportResponseHandler;

server/src/main/java/org/elasticsearch/cluster/coordination/PeersRequest.java renamed to server/src/main/java/org/elasticsearch/discovery/PeersRequest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* under the License.
1818
*/
1919

20-
package org.elasticsearch.cluster.coordination;
20+
package org.elasticsearch.discovery;
2121

2222
import org.elasticsearch.cluster.node.DiscoveryNode;
2323
import org.elasticsearch.common.io.stream.StreamInput;

server/src/test/java/org/elasticsearch/cluster/coordination/MessagesTests.java

+1-75
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,6 @@
2525
import org.elasticsearch.test.ESTestCase;
2626
import org.elasticsearch.test.EqualsHashCodeTestUtils;
2727

28-
import java.util.ArrayList;
29-
import java.util.Arrays;
30-
import java.util.Collection;
31-
import java.util.List;
32-
import java.util.Optional;
33-
import java.util.stream.Collectors;
34-
35-
import static java.util.Collections.emptyList;
36-
import static java.util.Collections.singletonList;
37-
3828
public class MessagesTests extends ESTestCase {
3929

4030
private DiscoveryNode createNode(String id) {
@@ -155,69 +145,5 @@ public ClusterState randomClusterState() {
155145
new ClusterState.VotingConfiguration(Sets.newHashSet(generateRandomStringArray(10, 10, false))),
156146
randomLong());
157147
}
158-
159-
private List<DiscoveryNode> modifyDiscoveryNodesList(Collection<DiscoveryNode> originalNodes, boolean allowEmpty) {
160-
final List<DiscoveryNode> discoveryNodes = new ArrayList<>(originalNodes);
161-
if (discoveryNodes.isEmpty() == false && randomBoolean() && (allowEmpty || discoveryNodes.size() > 1)) {
162-
discoveryNodes.remove(randomIntBetween(0, discoveryNodes.size() - 1));
163-
} else if (discoveryNodes.isEmpty() == false && randomBoolean()) {
164-
discoveryNodes.set(randomIntBetween(0, discoveryNodes.size() - 1), createNode(randomAlphaOfLength(10)));
165-
} else {
166-
discoveryNodes.add(createNode(randomAlphaOfLength(10)));
167-
}
168-
return discoveryNodes;
169-
}
170-
171-
public void testPeersRequestEqualsHashCodeSerialization() {
172-
final PeersRequest initialPeersRequest = new PeersRequest(createNode(randomAlphaOfLength(10)),
173-
Arrays.stream(generateRandomStringArray(10, 10, false)).map(this::createNode).collect(Collectors.toList()));
174-
175-
EqualsHashCodeTestUtils.checkEqualsAndHashCode(initialPeersRequest,
176-
publishRequest -> copyWriteable(publishRequest, writableRegistry(), PeersRequest::new),
177-
in -> {
178-
final List<DiscoveryNode> discoveryNodes = new ArrayList<>(in.getKnownPeers());
179-
if (randomBoolean()) {
180-
return new PeersRequest(createNode(randomAlphaOfLength(10)), discoveryNodes);
181-
} else {
182-
return new PeersRequest(in.getSourceNode(), modifyDiscoveryNodesList(in.getKnownPeers(), true));
183-
}
184-
});
185-
}
186-
187-
public void testPeersResponseEqualsHashCodeSerialization() {
188-
final long initialTerm = randomNonNegativeLong();
189-
final PeersResponse initialPeersResponse;
190-
191-
if (randomBoolean()) {
192-
initialPeersResponse = new PeersResponse(Optional.of(createNode(randomAlphaOfLength(10))), emptyList(), initialTerm);
193-
} else {
194-
initialPeersResponse = new PeersResponse(Optional.empty(),
195-
Arrays.stream(generateRandomStringArray(10, 10, false, false)).map(this::createNode).collect(Collectors.toList()),
196-
initialTerm);
197-
}
198-
199-
EqualsHashCodeTestUtils.checkEqualsAndHashCode(initialPeersResponse,
200-
publishResponse -> copyWriteable(publishResponse, writableRegistry(), PeersResponse::new),
201-
in -> {
202-
final long term = in.getTerm();
203-
if (randomBoolean()) {
204-
return new PeersResponse(in.getMasterNode(), in.getKnownPeers(),
205-
randomValueOtherThan(term, ESTestCase::randomNonNegativeLong));
206-
} else {
207-
if (in.getMasterNode().isPresent()) {
208-
if (randomBoolean()) {
209-
return new PeersResponse(Optional.of(createNode(randomAlphaOfLength(10))), in.getKnownPeers(), term);
210-
} else {
211-
return new PeersResponse(Optional.empty(), singletonList(createNode(randomAlphaOfLength(10))), term);
212-
}
213-
} else {
214-
if (randomBoolean()) {
215-
return new PeersResponse(Optional.of(createNode(randomAlphaOfLength(10))), emptyList(), term);
216-
} else {
217-
return new PeersResponse(in.getMasterNode(), modifyDiscoveryNodesList(in.getKnownPeers(), false), term);
218-
}
219-
}
220-
}
221-
});
222-
}
223148
}
149+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
/*
2+
* Licensed to Elasticsearch under one or more contributor
3+
* license agreements. See the NOTICE file distributed with
4+
* this work for additional information regarding copyright
5+
* ownership. Elasticsearch licenses this file to you under
6+
* the Apache License, Version 2.0 (the "License"); you may
7+
* not use this file except in compliance with the License.
8+
* You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing,
13+
* software distributed under the License is distributed on an
14+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
* KIND, either express or implied. See the License for the
16+
* specific language governing permissions and limitations
17+
* under the License.
18+
*/
19+
20+
package org.elasticsearch.discovery;
21+
22+
import org.elasticsearch.Version;
23+
import org.elasticsearch.cluster.coordination.PeersResponse;
24+
import org.elasticsearch.cluster.node.DiscoveryNode;
25+
import org.elasticsearch.test.ESTestCase;
26+
import org.elasticsearch.test.EqualsHashCodeTestUtils;
27+
28+
import java.util.ArrayList;
29+
import java.util.Arrays;
30+
import java.util.Collection;
31+
import java.util.List;
32+
import java.util.Optional;
33+
import java.util.stream.Collectors;
34+
35+
import static java.util.Collections.emptyList;
36+
import static java.util.Collections.singletonList;
37+
38+
public class PeerFinderMessagesTests extends ESTestCase {
39+
private DiscoveryNode createNode(String id) {
40+
return new DiscoveryNode(id, buildNewFakeTransportAddress(), Version.CURRENT);
41+
}
42+
43+
public void testPeersRequestEqualsHashCodeSerialization() {
44+
final PeersRequest initialPeersRequest = new PeersRequest(createNode(randomAlphaOfLength(10)),
45+
Arrays.stream(generateRandomStringArray(10, 10, false)).map(this::createNode).collect(Collectors.toList()));
46+
47+
EqualsHashCodeTestUtils.checkEqualsAndHashCode(initialPeersRequest,
48+
publishRequest -> copyWriteable(publishRequest, writableRegistry(), PeersRequest::new),
49+
in -> {
50+
final List<DiscoveryNode> discoveryNodes = new ArrayList<>(in.getKnownPeers());
51+
if (randomBoolean()) {
52+
return new PeersRequest(createNode(randomAlphaOfLength(10)), discoveryNodes);
53+
} else {
54+
return new PeersRequest(in.getSourceNode(), modifyDiscoveryNodesList(in.getKnownPeers(), true));
55+
}
56+
});
57+
}
58+
59+
public void testPeersResponseEqualsHashCodeSerialization() {
60+
final long initialTerm = randomNonNegativeLong();
61+
final PeersResponse initialPeersResponse;
62+
63+
if (randomBoolean()) {
64+
initialPeersResponse = new PeersResponse(Optional.of(createNode(randomAlphaOfLength(10))), emptyList(), initialTerm);
65+
} else {
66+
initialPeersResponse = new PeersResponse(Optional.empty(),
67+
Arrays.stream(generateRandomStringArray(10, 10, false, false)).map(this::createNode).collect(Collectors.toList()),
68+
initialTerm);
69+
}
70+
71+
EqualsHashCodeTestUtils.checkEqualsAndHashCode(initialPeersResponse,
72+
publishResponse -> copyWriteable(publishResponse, writableRegistry(), PeersResponse::new),
73+
in -> {
74+
final long term = in.getTerm();
75+
if (randomBoolean()) {
76+
return new PeersResponse(in.getMasterNode(), in.getKnownPeers(),
77+
randomValueOtherThan(term, ESTestCase::randomNonNegativeLong));
78+
} else {
79+
if (in.getMasterNode().isPresent()) {
80+
if (randomBoolean()) {
81+
return new PeersResponse(Optional.of(createNode(randomAlphaOfLength(10))), in.getKnownPeers(), term);
82+
} else {
83+
return new PeersResponse(Optional.empty(), singletonList(createNode(randomAlphaOfLength(10))), term);
84+
}
85+
} else {
86+
if (randomBoolean()) {
87+
return new PeersResponse(Optional.of(createNode(randomAlphaOfLength(10))), emptyList(), term);
88+
} else {
89+
return new PeersResponse(in.getMasterNode(), modifyDiscoveryNodesList(in.getKnownPeers(), false), term);
90+
}
91+
}
92+
}
93+
});
94+
}
95+
96+
97+
private List<DiscoveryNode> modifyDiscoveryNodesList(Collection<DiscoveryNode> originalNodes, boolean allowEmpty) {
98+
final List<DiscoveryNode> discoveryNodes = new ArrayList<>(originalNodes);
99+
if (discoveryNodes.isEmpty() == false && randomBoolean() && (allowEmpty || discoveryNodes.size() > 1)) {
100+
discoveryNodes.remove(randomIntBetween(0, discoveryNodes.size() - 1));
101+
} else if (discoveryNodes.isEmpty() == false && randomBoolean()) {
102+
discoveryNodes.set(randomIntBetween(0, discoveryNodes.size() - 1), createNode(randomAlphaOfLength(10)));
103+
} else {
104+
discoveryNodes.add(createNode(randomAlphaOfLength(10)));
105+
}
106+
return discoveryNodes;
107+
}
108+
}

server/src/test/java/org/elasticsearch/cluster/coordination/PeerFinderTests.java renamed to server/src/test/java/org/elasticsearch/discovery/PeerFinderTests.java

+7-4
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,20 @@
1717
* under the License.
1818
*/
1919

20-
package org.elasticsearch.cluster.coordination;
20+
package org.elasticsearch.discovery;
2121

2222
import org.elasticsearch.ElasticsearchException;
2323
import org.elasticsearch.Version;
2424
import org.elasticsearch.action.ActionListener;
25-
import org.elasticsearch.cluster.coordination.PeerFinder.TransportAddressConnector;
25+
import org.elasticsearch.cluster.coordination.DeterministicTaskQueue;
26+
import org.elasticsearch.cluster.coordination.FutureExecutor;
27+
import org.elasticsearch.cluster.coordination.PeersResponse;
2628
import org.elasticsearch.cluster.node.DiscoveryNode;
2729
import org.elasticsearch.cluster.node.DiscoveryNodes;
2830
import org.elasticsearch.cluster.node.DiscoveryNodes.Builder;
2931
import org.elasticsearch.common.settings.Settings;
3032
import org.elasticsearch.common.transport.TransportAddress;
33+
import org.elasticsearch.discovery.PeerFinder.TransportAddressConnector;
3134
import org.elasticsearch.test.ESTestCase;
3235
import org.elasticsearch.test.transport.CapturingTransport;
3336
import org.elasticsearch.test.transport.CapturingTransport.CapturedRequest;
@@ -58,7 +61,7 @@
5861
import static java.util.Collections.emptyMap;
5962
import static java.util.Collections.emptySet;
6063
import static java.util.Collections.singletonList;
61-
import static org.elasticsearch.cluster.coordination.PeerFinder.REQUEST_PEERS_ACTION_NAME;
64+
import static org.elasticsearch.discovery.PeerFinder.REQUEST_PEERS_ACTION_NAME;
6265
import static org.elasticsearch.node.Node.NODE_NAME_SETTING;
6366
import static org.hamcrest.Matchers.contains;
6467
import static org.hamcrest.Matchers.empty;
@@ -436,7 +439,7 @@ public void testReceivesRequestsFromTransportService() {
436439

437440
final AtomicBoolean responseReceived = new AtomicBoolean();
438441

439-
transportService.sendRequest(localNode, PeerFinder.REQUEST_PEERS_ACTION_NAME, new PeersRequest(sourceNode, Collections.emptyList()),
442+
transportService.sendRequest(localNode, REQUEST_PEERS_ACTION_NAME, new PeersRequest(sourceNode, Collections.emptyList()),
440443
new TransportResponseHandler<PeersResponse>() {
441444
@Override
442445
public void handleResponse(PeersResponse response) {

0 commit comments

Comments
 (0)