case "status": if (member.getValue() instanceof String) { obj.setStatus(io.vertx.ext.consul.CheckStatus.valueOf((String)member.getValue()));
@Test(timeout = 3 * 60 * 1000) public void deregisterAfter(TestContext tc) { if (System.getProperty("skipDeregisterAfter") != null) { System.out.println("skip"); return; } CheckOptions opts = new CheckOptions() .setDeregisterAfter("1m") .setStatus(CheckStatus.PASSING) .setTtl("10s") .setName("checkName"); Async async = tc.async(); createCheck(tc, opts, checkId -> { getCheckInfo(tc, checkId, passing -> { tc.assertEquals(CheckStatus.PASSING, passing.getStatus()); vertx.setTimer(30000, l1 -> { getCheckInfo(tc, checkId, critical -> { tc.assertEquals(CheckStatus.CRITICAL, critical.getStatus()); vertx.setTimer(90000, l2 -> { ctx.writeClient().localChecks(tc.asyncAssertSuccess(checks -> { tc.assertEquals(checks.stream().filter(c -> c.getName().equals("checkName")).count(), (long) 0); async.complete(); })); }); }); }); }); }); }
@Test public void bindCheckToService() { String serviceName = "serviceName"; ServiceOptions service = new ServiceOptions() .setName(serviceName) .setAddress("10.0.0.1") .setPort(8080); runAsync(h -> ctx.writeClient().registerService(service, h)); List<Service> services = getAsync(h -> ctx.writeClient().localServices(h)); Service s = services.stream().filter(i -> "serviceName".equals(i.getName())).findFirst().get(); String serviceId = s.getId(); assertEquals(s.getAddress(), "10.0.0.1"); assertEquals(s.getPort(), 8080); CheckOptions check = new CheckOptions() .setId("checkId") .setName("checkName") .setNotes("checkNotes") .setServiceId(serviceId) .setStatus(CheckStatus.PASSING) .setTtl("10s"); runAsync(h -> ctx.writeClient().registerCheck(check, h)); List<Check> checks = getAsync(h -> ctx.writeClient().localChecks(h)); Check c = checks.stream().filter(i -> "checkId".equals(i.getId())).findFirst().get(); assertEquals(c.getServiceId(), serviceId); assertEquals(c.getStatus(), CheckStatus.PASSING); assertEquals(c.getNotes(), "checkNotes"); runAsync(h -> ctx.writeClient().deregisterService(serviceId, h)); }
runAsync(h -> ctx.writeClient().registerService(new ServiceOptions() .setName("service").setId("id1").setTags(Collections.singletonList("tag1")) .setCheckOptions(new CheckOptions().setTtl("5s").setStatus(CheckStatus.PASSING)), h)); runAsync(h -> ctx.writeClient().registerService(new ServiceOptions() .setName("service").setId("id2").setTags(Collections.singletonList("tag2")) .setCheckOptions(new CheckOptions().setTtl("5s").setStatus(CheckStatus.PASSING)), h));
@Test public void watchService() throws InterruptedException { StateConsumer<String> consumer = new StateConsumer<>(); ServiceOptions service = new ServiceOptions() .setCheckOptions(new CheckOptions() .setStatus(CheckStatus.PASSING) .setTtl("4s") .setName(randomAlphaString(10))) .setId(randomAlphaString(10)) .setName(randomAlphaString(10)); Watch<ServiceEntryList> watch = Watch.service(service.getName(), vertx, ctx.readClientOptions()) .setHandler(list -> { if (list.succeeded()) { consumer.consume(list.nextResult().getList() .stream().filter(s -> s.getService().getName().equals(service.getName())) .map(e -> e.getService().getName() + "/" + e.getChecks().stream() .filter(c -> c.getId().equals("service:" + service.getId())) .map(c -> c.getStatus().name()).findFirst().orElse("")) .findFirst().orElse("")); } }) .start(); consumer.await(""); runAsync(h -> ctx.writeClient().registerService(service, h)); consumer.await(service.getName() + "/" + CheckStatus.PASSING.name()); consumer.await(service.getName() + "/" + CheckStatus.CRITICAL.name()); consumer.check(); watch.stop(); runAsync(h -> ctx.writeClient().deregisterService(service.getId(), h)); }
public static CheckOptions randomCheckOptions() { return new CheckOptions() .setId(randomAlphaString(10)) .setName(randomAlphaString(10)) .setNotes(randomAlphaString(10)) .setServiceId(randomAlphaString(10)) .setStatus(randomElement(CheckStatus.values())) .setTtl(randomSeconds()); }