Search in sources :

Example 1 with StringCallback

use of org.apache.zookeeper.AsyncCallback.StringCallback in project pulsar by yahoo.

the class MetaStoreImplZookeeper method getManagedLedgerInfo.

@Override
public void getManagedLedgerInfo(final String ledgerName, final MetaStoreCallback<ManagedLedgerInfo> callback) {
    // Try to get the content or create an empty node
    zk.getData(prefix + ledgerName, false, (rc, path, ctx, readData, stat) -> executor.submit(safeRun(() -> {
        if (rc == Code.OK.intValue()) {
            try {
                ManagedLedgerInfo info = parseManagedLedgerInfo(readData);
                info = updateMLInfoTimestamp(info);
                callback.operationComplete(info, new ZKStat(stat));
            } catch (ParseException | InvalidProtocolBufferException e) {
                callback.operationFailed(new MetaStoreException(e));
            }
        } else if (rc == Code.NONODE.intValue()) {
            log.info("Creating '{}{}'", prefix, ledgerName);
            StringCallback createcb = (rc1, path1, ctx1, name) -> {
                if (rc1 == Code.OK.intValue()) {
                    ManagedLedgerInfo info = ManagedLedgerInfo.getDefaultInstance();
                    callback.operationComplete(info, new ZKStat());
                } else {
                    callback.operationFailed(new MetaStoreException(KeeperException.create(Code.get(rc1))));
                }
            };
            ZkUtils.asyncCreateFullPathOptimistic(zk, prefix + ledgerName, new byte[0], Acl, CreateMode.PERSISTENT, createcb, null);
        } else {
            callback.operationFailed(new MetaStoreException(KeeperException.create(Code.get(rc))));
        }
    })), null);
}
Also used : MetaStoreException(org.apache.bookkeeper.mledger.ManagedLedgerException.MetaStoreException) InvalidProtocolBufferException(com.google.protobuf.InvalidProtocolBufferException) StringCallback(org.apache.zookeeper.AsyncCallback.StringCallback) ParseException(com.google.protobuf.TextFormat.ParseException) ManagedLedgerInfo(org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo)

Example 2 with StringCallback

use of org.apache.zookeeper.AsyncCallback.StringCallback in project zookeeper by apache.

the class LsCommand method exec.

@Override
public boolean exec() throws CliException {
    if (args.length < 2) {
        throw new MalformedCommandException(getUsageStr());
    }
    String path = args[1];
    boolean watch = cl.hasOption("w");
    boolean withStat = cl.hasOption("s");
    boolean recursive = cl.hasOption("R");
    try {
        if (recursive) {
            ZKUtil.visitSubTreeDFS(zk, path, watch, new StringCallback() {

                @Override
                public void processResult(int rc, String path, Object ctx, String name) {
                    out.println(path);
                }
            });
        } else {
            Stat stat = withStat ? new Stat() : null;
            List<String> children = zk.getChildren(path, watch, stat);
            printChildren(children, stat);
        }
    } catch (KeeperException | InterruptedException ex) {
        throw new CliWrapperException(ex);
    }
    return watch;
}
Also used : StringCallback(org.apache.zookeeper.AsyncCallback.StringCallback) Stat(org.apache.zookeeper.data.Stat) KeeperException(org.apache.zookeeper.KeeperException)

Example 3 with StringCallback

use of org.apache.zookeeper.AsyncCallback.StringCallback in project zookeeper by apache.

the class SyncCallTest method testSync.

@Test
public void testSync() throws Exception {
    try {
        LOG.info("Starting ZK:" + (new Date()).toString());
        opsCount = new CountDownLatch(limit);
        ZooKeeper zk = createClient();
        LOG.info("Beginning test:" + (new Date()).toString());
        for (int i = 0; i < 50; i++) zk.create("/test" + i, new byte[0], Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT, (StringCallback) this, results);
        for (int i = 50; i < 100; i++) {
            zk.create("/test" + i, new byte[0], Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT, (Create2Callback) this, results);
        }
        zk.sync("/test", this, results);
        for (int i = 0; i < 100; i++) zk.delete("/test" + i, 0, this, results);
        for (int i = 0; i < 100; i++) zk.getChildren("/", new NullWatcher(), (ChildrenCallback) this, results);
        for (int i = 0; i < 100; i++) zk.getChildren("/", new NullWatcher(), (Children2Callback) this, results);
        LOG.info("Submitted all operations:" + (new Date()).toString());
        if (!opsCount.await(10000, TimeUnit.MILLISECONDS))
            Assert.fail("Haven't received all confirmations" + opsCount.getCount());
        for (int i = 0; i < limit; i++) {
            Assert.assertEquals(0, (int) results.get(i));
        }
    } catch (IOException e) {
        System.out.println(e.toString());
    }
}
Also used : ZooKeeper(org.apache.zookeeper.ZooKeeper) ChildrenCallback(org.apache.zookeeper.AsyncCallback.ChildrenCallback) Children2Callback(org.apache.zookeeper.AsyncCallback.Children2Callback) StringCallback(org.apache.zookeeper.AsyncCallback.StringCallback) IOException(java.io.IOException) CountDownLatch(java.util.concurrent.CountDownLatch) Date(java.util.Date) Test(org.junit.Test)

Aggregations

StringCallback (org.apache.zookeeper.AsyncCallback.StringCallback)3 InvalidProtocolBufferException (com.google.protobuf.InvalidProtocolBufferException)1 ParseException (com.google.protobuf.TextFormat.ParseException)1 IOException (java.io.IOException)1 Date (java.util.Date)1 CountDownLatch (java.util.concurrent.CountDownLatch)1 MetaStoreException (org.apache.bookkeeper.mledger.ManagedLedgerException.MetaStoreException)1 ManagedLedgerInfo (org.apache.bookkeeper.mledger.proto.MLDataFormats.ManagedLedgerInfo)1 Children2Callback (org.apache.zookeeper.AsyncCallback.Children2Callback)1 ChildrenCallback (org.apache.zookeeper.AsyncCallback.ChildrenCallback)1 KeeperException (org.apache.zookeeper.KeeperException)1 ZooKeeper (org.apache.zookeeper.ZooKeeper)1 Stat (org.apache.zookeeper.data.Stat)1 Test (org.junit.Test)1