/** * Destroys the given session * @param id the ID of session * @param resultHandler will be called when complete * @return reference to this, for fluency */ public io.vertx.rxjava.ext.consul.ConsulClient destroySession(String id, Handler<AsyncResult<Void>> resultHandler) { delegate.destroySession(id, resultHandler); return this; }
@Override public ConsulService destroySession(String id, Handler<AsyncResult<Void>> resultHandler) { consulClient.destroySession(id, resultHandler); return this; }
/** * Destroys the given session * @param id the ID of session * @param resultHandler will be called when complete * @return reference to this, for fluency */ public io.vertx.rxjava.ext.consul.ConsulClient destroySession(String id, Handler<AsyncResult<Void>> resultHandler) { delegate.destroySession(id, resultHandler); return this; }
private void testSessionsBlocking(TestContext tc, BiConsumer<BlockingQueryOptions, Handler<AsyncResult<SessionList>>> request) { ctx.writeClient().createSession(tc.asyncAssertSuccess(id1 -> { ctx.readClient().listSessions(tc.asyncAssertSuccess(list1 -> { Async async = tc.async(); request.accept(new BlockingQueryOptions().setIndex(list1.getIndex()), h -> { List<String> ids = h.result().getList().stream().map(Session::getId).collect(Collectors.toList()); assertTrue(ids.contains(id1)); async.countDown(); }); vertx.setTimer(1000, l -> { assertEquals(async.count(), 1); ctx.writeClient().createSession(tc.asyncAssertSuccess(id2 -> { async.handler(a -> { ctx.writeClient().destroySession(id1, tc.asyncAssertSuccess(d1 -> { ctx.writeClient().destroySession(id2, tc.asyncAssertSuccess()); })); }); })); }); })); })); }
@Test public void createSessionWithOptionsWithDefaultLockDelay(TestContext tc) { SessionOptions opt = new SessionOptions() .setBehavior(SessionBehavior.DELETE) .setName("optName") .setTtl(442); ctx.writeClient().createSessionWithOptions(opt, tc.asyncAssertSuccess(id -> { ctx.writeClient().infoSession(id, tc.asyncAssertSuccess(session -> { List<String> checks = session.getChecks(); tc.assertEquals(1, checks.size()); tc.assertTrue("serfHealth".equals(checks.get(0))); tc.assertEquals(15L, session.getLockDelay()); tc.assertEquals(ctx.nodeName(), session.getNode()); ctx.writeClient().destroySession(id, tc.asyncAssertSuccess()); })); })); }
@Test public void createSessionWithOptionsWithZeroLockDelay(TestContext tc) { SessionOptions opt = new SessionOptions() .setBehavior(SessionBehavior.DELETE) .setLockDelay(0L) .setName("optName") .setTtl(442); ctx.writeClient().createSessionWithOptions(opt, tc.asyncAssertSuccess(id -> { ctx.writeClient().infoSession(id, tc.asyncAssertSuccess(session -> { List<String> checks = session.getChecks(); tc.assertEquals(1, checks.size()); tc.assertTrue("serfHealth".equals(checks.get(0))); tc.assertEquals(0L, session.getLockDelay()); tc.assertEquals(ctx.nodeName(), session.getNode()); ctx.writeClient().destroySession(id, tc.asyncAssertSuccess()); })); })); }
@Test public void createSessionWithOptions(TestContext tc) { SessionOptions opt = new SessionOptions() .setBehavior(SessionBehavior.DELETE) .setLockDelay(42) .setName("optName") .setTtl(442); ctx.writeClient().createSessionWithOptions(opt, tc.asyncAssertSuccess(id -> { ctx.writeClient().infoSession(id, tc.asyncAssertSuccess(session -> { List<String> checks = session.getChecks(); tc.assertEquals(1, checks.size()); tc.assertTrue("serfHealth".equals(checks.get(0))); tc.assertEquals(opt.getLockDelay(), session.getLockDelay()); tc.assertEquals(ctx.nodeName(), session.getNode()); ctx.writeClient().destroySession(id, tc.asyncAssertSuccess()); })); })); }
@Test public void listSessions(TestContext tc) { ctx.writeClient().createSession(tc.asyncAssertSuccess(id -> { ctx.writeClient().infoSession(id, tc.asyncAssertSuccess(session -> { ctx.writeClient().listSessions(tc.asyncAssertSuccess(list -> { tc.assertEquals(session.getId(), list.getList().get(0).getId()); ctx.writeClient().listNodeSessions(session.getNode(), tc.asyncAssertSuccess(nodeSesions -> { tc.assertEquals(session.getId(), nodeSesions.getList().get(0).getId()); ctx.writeClient().destroySession(id, tc.asyncAssertSuccess()); })); })); })); })); }
@Test public void createDefaultSession(TestContext tc) { ctx.writeClient().createSession(tc.asyncAssertSuccess(id -> { ctx.writeClient().infoSession(id, tc.asyncAssertSuccess(session -> { tc.assertEquals(id, session.getId()); tc.assertEquals(ctx.nodeName(), session.getNode()); ctx.writeClient().destroySession(id, tc.asyncAssertSuccess()); })); })); }
@Test public void sessionInfoBlocking(TestContext tc) { ctx.writeClient().createSession(tc.asyncAssertSuccess(id -> { ctx.readClient().infoSession(id, tc.asyncAssertSuccess(s1 -> { Async async = tc.async(); ctx.readClient().infoSessionWithOptions(id, new BlockingQueryOptions().setIndex(s1.getIndex()), h -> async.countDown()); vertx.setTimer(1000, l -> { assertEquals(async.count(), 1); ctx.writeClient().destroySession(id, tc.asyncAssertSuccess()); }); })); })); }
@Test public void deleteBehavior(TestContext tc) { ctx.writeClient().createSessionWithOptions(new SessionOptions().setTtl(442).setBehavior(SessionBehavior.DELETE), tc.asyncAssertSuccess(id -> { ctx.writeClient().putValueWithOptions("foo/bar", "value1", new KeyValueOptions().setAcquireSession(id), tc.asyncAssertSuccess(b -> { tc.assertTrue(b); ctx.writeClient().getValue("foo/bar", tc.asyncAssertSuccess(pair -> { tc.assertEquals("value1", pair.getValue()); tc.assertEquals(id, pair.getSession()); ctx.writeClient().destroySession(id, tc.asyncAssertSuccess(v -> { ctx.writeClient().getValue("foo/bar", tc.asyncAssertSuccess(notfound -> { tc.assertFalse(notfound.isPresent()); })); })); })); })); })); } }
@Test public void checkDefinition(TestContext tc) { ctx.writeClient().createSession(tc.asyncAssertSuccess(sessId -> { PreparedQueryDefinition expected = randomPreparedQueryDefinition() .setId("") .setTemplateType("name_prefix_match") .setTemplateRegexp("^find_(.+?)_(.+?)$") .setSession(sessId); ctx.writeClient().createPreparedQuery(expected, tc.asyncAssertSuccess(id -> { ctx.readClient().getPreparedQuery(id, tc.asyncAssertSuccess(actual -> { tc.assertEquals(expected.getService(), actual.getService()); tc.assertEquals(expected.getDcs(), actual.getDcs()); tc.assertEquals(expected.getDnsTtl(), actual.getDnsTtl()); tc.assertEquals(expected.getMeta(), actual.getMeta()); tc.assertEquals(expected.getName(), actual.getName()); tc.assertEquals(expected.getNearestN(), actual.getNearestN()); tc.assertEquals(expected.getPassing(), actual.getPassing()); tc.assertEquals(expected.getSession(), actual.getSession()); tc.assertEquals(expected.getTags(), actual.getTags()); tc.assertEquals(expected.getTemplateRegexp(), actual.getTemplateRegexp()); tc.assertEquals(expected.getTemplateType(), actual.getTemplateType()); ctx.writeClient().deletePreparedQuery(actual.getId(), tc.asyncAssertSuccess(v -> { ctx.writeClient().destroySession(expected.getSession(), tc.asyncAssertSuccess()); })); })); })); })); }