/** * The asynchronous version of getChildren. * * @since 3.3.0 * * @see #getChildren(String, boolean, Stat) */ public void getChildren(String path, boolean watch, Children2Callback cb, Object ctx) { getChildren(path, watch ? watchManager.defaultWatcher : null, cb, ctx); }
/** * The asynchronous version of getChildren. * * @see #getChildren(String, boolean) */ public void getChildren(String path, boolean watch, ChildrenCallback cb, Object ctx) { getChildren(path, watch ? watchManager.defaultWatcher : null, cb, ctx); }
@Override public Iterable<String> getManagedLedgers() throws MetaStoreException { try { return zk.getChildren(prefixName, false); } catch (Exception e) { throw new MetaStoreException(e); } }
private void utestChildren(int port) throws IOException, InterruptedException, KeeperException { ZooKeeper zk = new ZooKeeper("127.0.0.1:" + port, CONNECTION_TIMEOUT, this); for (int i = 0; i < 10000; i++) { zk.getChildren("/" + i, true); } zk.close(); }
/** * @param path Path. * @param watcher Watcher. * @param cb Callback. */ void getChildrenAsync(String path, Watcher watcher, AsyncCallback.Children2Callback cb) { GetChildrenOperation op = new GetChildrenOperation(path, watcher, cb); zk.getChildren(path, watcher, new ChildrenCallbackWrapper(op), null); }
private void waitForOneWorkerToHaveUnackedTasks() throws Exception { while (remoteTaskRunner.getWorkersWithUnacknowledgedTask().size() < 1) { Thread.sleep(5); } ZooKeeper zk = rtrTestUtils.getCuratorFramework().getZookeeperClient().getZooKeeper(); while (zk.getChildren(rtrTestUtils.tasksPath + "/worker0", false).size() < 1 && zk.getChildren(rtrTestUtils.tasksPath + "/worker1", false).size() < 1) { Thread.sleep(5); } }
private void waitForBothWorkersToHaveUnackedTasks() throws Exception { while (remoteTaskRunner.getWorkersWithUnacknowledgedTask().size() < 2) { Thread.sleep(5); } ZooKeeper zk = rtrTestUtils.getCuratorFramework().getZookeeperClient().getZooKeeper(); while (zk.getChildren(rtrTestUtils.tasksPath + "/worker0", false).size() < 1 || zk.getChildren(rtrTestUtils.tasksPath + "/worker1", false).size() < 1) { Thread.sleep(5); } } }
private void doWatchNamespaceChanges() { try { zkc.get().getChildren(uri.getPath(), this, this, null); } catch (ZooKeeperClient.ZooKeeperConnectionException e) { scheduleTask(this, conf.getZKSessionTimeoutMilliseconds()); } catch (InterruptedException e) { logger.warn("Interrupted on watching namespace changes for {} : ", uri, e); scheduleTask(this, conf.getZKSessionTimeoutMilliseconds()); } }
private static List<String> getLockWaiters(ZooKeeperClient zkc, String lockPath) throws Exception { List<String> children = zkc.get().getChildren(lockPath, false); Collections.sort(children, ZKSessionLock.MEMBER_COMPARATOR); return children; }
private static List<String> getLockWaiters(ZooKeeperClient zkc, String lockPath) throws Exception { List<String> children = zkc.get().getChildren(lockPath, false); Collections.sort(children, ZKSessionLock.MEMBER_COMPARATOR); return children; }
@Override public void verify() { zk.getChildren(path, false, this, toString()); super.verify(); }
@Override public void verify() { zk.getChildren(path, false, this, toString()); super.verify(); }
public static Map<Long, LogSegmentMetadata> readLogSegments(ZooKeeperClient zkc, String ledgerPath) throws Exception { List<String> children = zkc.get().getChildren(ledgerPath, false); LOG.info("Children under {} : {}", ledgerPath, children); Map<Long, LogSegmentMetadata> segments = new HashMap<Long, LogSegmentMetadata>(children.size()); for (String child : children) { LogSegmentMetadata segment = FutureUtils.result(LogSegmentMetadata.read(zkc, ledgerPath + "/" + child)); LOG.info("Read segment {} : {}", child, segment); segments.put(segment.getLogSegmentSequenceNumber(), segment); } return segments; }
public void preAuth() throws Exception { ZooKeeper zk = createClient(); zk.addAuthInfo("key", "25".getBytes()); try { createNodePrintAcl(zk, "/pre", "testPreAuth"); zk.setACL("/", Ids.CREATOR_ALL_ACL, -1); zk.getChildren("/", false); zk.create("/abc", null, Ids.CREATOR_ALL_ACL, CreateMode.PERSISTENT); zk.setData("/abc", "testData1".getBytes(), -1); zk.create("/key", null, Ids.CREATOR_ALL_ACL, CreateMode.PERSISTENT); zk.setData("/key", "5".getBytes(), -1); Thread.sleep(1000); } catch (KeeperException e) { Assert.fail("test failed :" + e); } finally { zk.close(); } }
Future<List<String>> getLogSegmentNames(String logSegmentsPath, Watcher watcher) { Promise<List<String>> result = new Promise<List<String>>(); try { zkc.get().getChildren(logSegmentsPath, watcher, this, result); } catch (ZooKeeperClient.ZooKeeperConnectionException e) { result.setException(FutureUtils.zkException(e, logSegmentsPath)); } catch (InterruptedException e) { result.setException(FutureUtils.zkException(e, logSegmentsPath)); } return result; }
@Test public void testNodeChildrenChanged() throws Exception { String path = "/test-children-changed"; zk1.create(path, new byte[1], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); zk1.getChildren(path, watcher); qu.shutdown(1); zk2.create(path + "/children-1", new byte[2], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); qu.start(1); watcher.waitForConnected(TIMEOUT * 1000L); watcher.assertEvent(TIMEOUT, EventType.NodeChildrenChanged); } }
@Test public void testWatchesTriggered() throws KeeperException, InterruptedException { HasTriggeredWatcher watcher = new HasTriggeredWatcher(); zk.getChildren("/", watcher); multi(zk, Arrays.asList( Op.create("/t", new byte[0], Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT), Op.delete("/t", -1) )); assertTrue(watcher.triggered.await(CONNECTION_TIMEOUT, TimeUnit.MILLISECONDS)); }
@Test(timeout = 60000) public void testAclPermsZkAccessNoConflict() throws Exception { String namespace = "/" + runtime.getMethodName(); initDlogMeta(namespace, "test-un", "test-stream"); URI uri = createDLMURI(namespace); ZooKeeperClient zkc = TestZooKeeperClientBuilder.newBuilder() .name("unpriv") .uri(uri) .build(); zkc.get().getChildren(uri.getPath() + "/test-stream", false, new Stat()); zkc.get().getData(uri.getPath() + "/test-stream", false, new Stat()); }
private void rmAll(ZooKeeperClient client, String path) throws Exception { List<String> nodes = client.get().getChildren(path, false); for (String node : nodes) { String childPath = path + "/" + node; rmAll(client, childPath); } client.get().delete(path, 0); }
@Test public void testNoWatchesTriggeredForFailedMultiRequest() throws InterruptedException, KeeperException { HasTriggeredWatcher watcher = new HasTriggeredWatcher(); zk.getChildren("/", watcher); try { multi(zk, Arrays.asList( Op.create("/t", new byte[0], Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT), Op.delete("/nonexisting", -1) )); fail("expected previous multi op to fail!"); } catch (KeeperException.NoNodeException e) { // expected } SyncCallback cb = new SyncCallback(); zk.sync("/", cb, null); // by waiting for the callback we're assured that the event queue is flushed cb.done.await(CONNECTION_TIMEOUT, TimeUnit.MILLISECONDS); assertEquals(1, watcher.triggered.getCount()); }