use of io.etcd.jetcd.Client in project jetcd by coreos.
the class ClusterClientTest method testMemberManagement.
@Test
public void testMemberManagement() throws ExecutionException, InterruptedException, TimeoutException {
final Client client = Client.builder().endpoints(n1.clientEndpoints()).build();
final Cluster clusterClient = client.getClusterClient();
Member m2 = clusterClient.addMember(n2.peerEndpoints()).get(5, TimeUnit.SECONDS).getMember();
assertThat(m2).isNotNull();
assertThat(clusterClient.listMember().get().getMembers()).hasSize(2);
/*
TODO: check
Member m3 = clusterClient.addMember(n3.peerEndpoints())
.get(5, TimeUnit.SECONDS)
.getMember();
assertThat(m3).isNotNull();
assertThat(clusterClient.listMember().get().getMembers()).hasSize(3);
*/
}
use of io.etcd.jetcd.Client in project jetcd by coreos.
the class LoadBalancerTest method testPickFirstBalancerFactory.
@Test
public void testPickFirstBalancerFactory() throws Exception {
final List<URI> endpoints = cluster.clientEndpoints();
final ClientBuilder builder = Client.builder().endpoints(endpoints).loadBalancerPolicy("pick_first");
try (Client client = builder.build();
KV kv = client.getKVClient()) {
long lastMemberId = 0;
final String allEndpoints = endpoints.stream().map(URI::toString).collect(Collectors.joining(","));
for (int i = 0; i < allEndpoints.length() * 2; i++) {
Response response = kv.put(TestUtil.randomByteSequence(), TestUtil.randomByteSequence()).get();
if (i == 0) {
lastMemberId = response.getHeader().getMemberId();
}
assertThat(response.getHeader().getMemberId()).isEqualTo(lastMemberId);
}
}
}
use of io.etcd.jetcd.Client in project jetcd by coreos.
the class LoadBalancerTest method testRoundRobinLoadBalancerFactory.
@Test
public void testRoundRobinLoadBalancerFactory() throws Exception {
final List<URI> endpoints = cluster.clientEndpoints();
final ClientBuilder builder = Client.builder().endpoints(endpoints).loadBalancerPolicy("round_robin");
try (Client client = builder.build();
KV kv = client.getKVClient()) {
long lastMemberId = 0;
long differences = 0;
final String allEndpoints = endpoints.stream().map(URI::toString).collect(Collectors.joining(","));
for (int i = 0; i < allEndpoints.length(); i++) {
PutResponse response = kv.put(TestUtil.randomByteSequence(), TestUtil.randomByteSequence()).get();
if (i > 0 && lastMemberId != response.getHeader().getMemberId()) {
differences++;
}
lastMemberId = response.getHeader().getMemberId();
}
assertThat(differences).isNotEqualTo(lastMemberId);
}
}
use of io.etcd.jetcd.Client in project jetcd by coreos.
the class MaintenanceTest method testMoveLeader.
// @Test
public void testMoveLeader() throws ExecutionException, InterruptedException {
URI leaderEndpoint = null;
List<Long> followers = new ArrayList<>();
for (URI ep : endpoints) {
StatusResponse statusResponse = maintenance.statusMember(ep).get();
long memberId = statusResponse.getHeader().getMemberId();
if (memberId == statusResponse.getLeader()) {
leaderEndpoint = ep;
continue;
}
followers.add(memberId);
}
if (leaderEndpoint == null) {
fail("leader not found");
}
try (Client client = Client.builder().endpoints(leaderEndpoint).build()) {
client.getMaintenanceClient().moveLeader(followers.get(0)).get();
}
}
use of io.etcd.jetcd.Client in project jetcd by coreos.
the class SslTest method testSimpleSllSetup.
@Test
public void testSimpleSllSetup() throws Exception {
final ByteSequence key = bytesOf(TestUtil.randomString());
final ByteSequence val = bytesOf(TestUtil.randomString());
final String capath = System.getProperty("ssl.cert.capath");
final String authority = System.getProperty("ssl.cert.authority", DEFAULT_SSL_AUTHORITY);
final URI endpoint = new URI(System.getProperty("ssl.cert.endpoints", cluster.clientEndpoints().get(0).toString()));
try (InputStream is = Objects.nonNull(capath) ? new FileInputStream(capath) : getClass().getResourceAsStream(DEFAULT_SSL_CA_PATH)) {
Client client = Client.builder().endpoints(endpoint).authority(authority).sslContext(b -> b.trustManager(is)).build();
KV kv = client.getKVClient();
kv.put(key, val).join();
assertThat(kv.get(key).join().getCount()).isEqualTo(1);
assertThat(kv.get(key).join().getKvs().get(0).getValue()).isEqualTo(val);
kv.close();
client.close();
}
}
Aggregations