Ejemplo n.º 1
0
        public async Task testChRootCreateDelete()
        {
            var zk = await createClient();

            // creating the subtree for chRoot clients.
            string chRoot = await createNameSpace();

            // Creating child using chRoot client.
            var zk_chroot = await createClient(chRoot);

            Op createChild = Op.create("/myid", new byte[0],
                                       ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);

            await multiAsync(zk_chroot, Arrays.asList(createChild));

            Assert.assertNotNull("zNode is not created under chroot:" + chRoot, await zk
                                 .existsAsync(chRoot + "/myid", false));
            Assert.assertNotNull("zNode is not created under chroot:" + chRoot, await
                                 zk_chroot.existsAsync("/myid", false));
            Assert.assertNull("zNode is created directly under '/', ignored configured chroot",
                              await zk.existsAsync("/myid", false));

            // Deleting child using chRoot client.
            Op deleteChild = Op.delete("/myid", 0);

            await multiAsync(zk_chroot, Arrays.asList(deleteChild));

            Assert.assertNull("zNode exists under chroot:" + chRoot, await zk.existsAsync(
                                  chRoot + "/myid", false));
            Assert.assertNull("zNode exists under chroot:" + chRoot, await zk_chroot
                              .existsAsync("/myid", false));
        }
Ejemplo n.º 2
0
        public async Task testChRootTransaction()
        {
            var zk = await createClient();

            // creating the subtree for chRoot clients.
            string chRoot = await createNameSpace();

            // checking the child version using chRoot client.
            var zk_chroot = await createClient(chRoot);

            const string childPath   = "/myid";
            Transaction  transaction = zk_chroot.transaction();

            transaction.create(childPath, new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE,
                               CreateMode.PERSISTENT);
            transaction.check(childPath, 0);
            transaction.setData(childPath, childPath.UTF8getBytes(), 0);
            await commitAsync(transaction);

            Assert.assertNotNull("zNode is not created under chroot:" + chRoot, await zk
                                 .existsAsync(chRoot + childPath, false));
            Assert.assertNotNull("zNode is not created under chroot:" + chRoot, await
                                 zk_chroot.existsAsync(childPath, false));
            Assert.assertNull("zNode is created directly under '/', ignored configured chroot",
                              await zk.existsAsync(childPath, false));
            Assert.assertEquals("zNode data not matching", childPath
                                .UTF8getBytes(), (await zk_chroot.getDataAsync(childPath, false)).Data);

            transaction = zk_chroot.transaction();
            // Deleting child using chRoot client.
            transaction.delete(childPath, 1);
            await commitAsync(transaction);

            Assert.assertNull("chroot:" + chRoot + " exists after delete", await zk
                              .existsAsync(chRoot + "/myid", false));
            Assert.assertNull("chroot:" + chRoot + " exists after delete", await
                              zk_chroot.existsAsync("/myid", false));
        }
Ejemplo n.º 3
0
        public async Task TestGetResults()
        {
            var zk = await createClient();

            /* Delete of a node folowed by an update of the (now) deleted node */
            var ops = Arrays.asList(
                Op.create("/multi", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT),
                Op.delete("/multi", 0),
                Op.setData("/multi", "Y".UTF8getBytes(), 0),
                Op.create("/foo", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT)
                );
            List <OpResult> results = null;

            try
            {
                await zk.multiAsync(ops);

                Assert.fail("/multi should have been deleted so setData should have failed");
            }
            catch (KeeperException e)
            {
                // '/multi' should never have been created as entire op should fail
                Assert.assertNull(await zk.existsAsync("/multi", null));
                results = e.getResults();
            }

            Assert.assertNotNull(results);
            foreach (OpResult r in results)
            {
                LOG.info("RESULT==> " + r);
                if (r is OpResult.ErrorResult)
                {
                    OpResult.ErrorResult er = (OpResult.ErrorResult)r;
                    LOG.info("ERROR RESULT: " + er + " ERR=>" + EnumUtil <KeeperException.Code> .DefinedCast(er.getErr()));
                }
            }
        }
Ejemplo n.º 4
0
        public async Task testTransactionBuilder()
        {
            var zk = await createClient();

            List <OpResult> results = await commitAsync(zk.transaction()
                                                        .create("/t1", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT)
                                                        .create("/t1/child", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT)
                                                        .create("/t2", null, ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL));

            Assert.assertEquals(3, results.Count);
            foreach (OpResult r in results)
            {
                OpResult.CreateResult c = (OpResult.CreateResult)r;
                Assert.assertTrue(c.getPath().StartsWith("/t"));
                Assert.assertNotNull(c.ToString());
            }
            Assert.assertNotNull(await zk.existsAsync("/t1", false));
            Assert.assertNotNull(await zk.existsAsync("/t1/child", false));
            Assert.assertNotNull(await zk.existsAsync("/t2", false));

            results = await commitAsync(zk.transaction()
                                        .check("/t1", 0)
                                        .check("/t1/child", 0)
                                        .check("/t2", 0));

            Assert.assertEquals(3, results.Count);
            foreach (OpResult r in results)
            {
                OpResult.CheckResult c = (OpResult.CheckResult)r;
                Assert.assertNotNull(c.ToString());
            }

            try
            {
                await commitAsync(zk.transaction()
                                  .check("/t1", 0)
                                  .check("/t1/child", 0)
                                  .check("/t2", 1));

                Assert.fail();
            }
            catch (KeeperException.BadVersionException)
            {
                // expected
            }

            results = await commitAsync(zk.transaction()
                                        .check("/t1", 0)
                                        .setData("/t1", new byte[0], 0));

            Assert.assertEquals(2, results.Count);
            foreach (OpResult r in results)
            {
                Assert.assertNotNull(r.ToString());
            }

            try
            {
                results = await commitAsync(zk.transaction()
                                            .check("/t1", 1)
                                            .setData("/t1", new byte[0], 2));

                Assert.fail();
            }
            catch (KeeperException.BadVersionException)
            {
                // expected
            }

            results = await commitAsync(zk.transaction()
                                        .check("/t1", 1)
                                        .check("/t1/child", 0)
                                        .check("/t2", 0));

            Assert.assertEquals(3, results.Count);

            results = await commitAsync(zk.transaction()
                                        .delete("/t2", -1)
                                        .delete("/t1/child", -1));

            Assert.assertEquals(2, results.Count);
            foreach (OpResult r in results)
            {
                OpResult.DeleteResult d = (OpResult.DeleteResult)r;
                Assert.assertNotNull(d.ToString());
            }
            Assert.assertNotNull(await zk.existsAsync("/t1", false));
            Assert.assertNull(await zk.existsAsync("/t1/child", false));
            Assert.assertNull(await zk.existsAsync("/t2", false));
        }