Search in sources :

Example 6 with CreateMode

use of org.apache.zookeeper.CreateMode in project zookeeper by apache.

the class CreateTTLTest method testBadUsage.

@Test
public void testBadUsage() throws KeeperException, InterruptedException {
    for (CreateMode createMode : CreateMode.values()) {
        try {
            zk.create("/foo", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, createMode, new Stat(), createMode.isTTL() ? 0 : 100);
            Assert.fail("should have thrown IllegalArgumentException");
        } catch (IllegalArgumentException dummy) {
        // correct
        }
    }
    for (CreateMode createMode : CreateMode.values()) {
        AsyncCallback.Create2Callback callback = new AsyncCallback.Create2Callback() {

            @Override
            public void processResult(int rc, String path, Object ctx, String name, Stat stat) {
            // NOP
            }
        };
        try {
            zk.create("/foo", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, createMode, callback, null, createMode.isTTL() ? 0 : 100);
            Assert.fail("should have thrown IllegalArgumentException");
        } catch (IllegalArgumentException dummy) {
        // correct
        }
    }
    try {
        Op op = Op.create("/foo", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_WITH_TTL, 0);
        zk.multi(Collections.singleton(op));
        Assert.fail("should have thrown IllegalArgumentException");
    } catch (IllegalArgumentException dummy) {
    // correct
    }
    try {
        Op op = Op.create("/foo", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL_WITH_TTL, 0);
        zk.multi(Collections.singleton(op));
        Assert.fail("should have thrown IllegalArgumentException");
    } catch (IllegalArgumentException dummy) {
    // correct
    }
}
Also used : Op(org.apache.zookeeper.Op) Stat(org.apache.zookeeper.data.Stat) CreateMode(org.apache.zookeeper.CreateMode) AsyncCallback(org.apache.zookeeper.AsyncCallback) Test(org.junit.Test)

Example 7 with CreateMode

use of org.apache.zookeeper.CreateMode in project zookeeper by apache.

the class InstanceContainer method mknod.

private void mknod(String path, CreateMode mode) throws KeeperException, InterruptedException {
    String[] subpath = path.split("/");
    StringBuilder sb = new StringBuilder();
    // We start at 1 because / will create an empty part first
    for (int i = 1; i < subpath.length; i++) {
        sb.append("/");
        sb.append(subpath[i]);
        CreateMode m = CreateMode.PERSISTENT;
        if (i == subpath.length - 1) {
            m = mode;
        }
        mknod_inner(sb.toString(), m);
    }
}
Also used : CreateMode(org.apache.zookeeper.CreateMode)

Example 8 with CreateMode

use of org.apache.zookeeper.CreateMode in project zookeeper by apache.

the class ZNodeResource method createZNodeAsOctet.

@POST
@Produces(MediaType.APPLICATION_OCTET_STREAM)
@Consumes(MediaType.APPLICATION_OCTET_STREAM)
public Response createZNodeAsOctet(@PathParam("path") String path, @DefaultValue("create") @QueryParam("op") String op, @QueryParam("name") String name, @DefaultValue("false") @QueryParam("null") String setNull, @DefaultValue("false") @QueryParam("sequence") String sequence, @Context UriInfo ui, byte[] data) throws InterruptedException, KeeperException {
    ensurePathNotNull(path);
    if (path.equals("/")) {
        path += name;
    } else {
        path += "/" + name;
    }
    if (!op.equals("create")) {
        throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity(new ZError(ui.getRequestUri().toString(), path + " bad operaton " + op)).build());
    }
    if (setNull.equals("true")) {
        data = null;
    }
    CreateMode createMode;
    if (sequence.equals("true")) {
        createMode = CreateMode.PERSISTENT_SEQUENTIAL;
    } else {
        createMode = CreateMode.PERSISTENT;
    }
    String newPath = zk.create(path, data, Ids.OPEN_ACL_UNSAFE, createMode);
    URI uri = ui.getAbsolutePathBuilder().path(newPath).build();
    return Response.created(uri).entity(new ZPath(newPath, ui.getAbsolutePath().toString())).build();
}
Also used : WebApplicationException(javax.ws.rs.WebApplicationException) CreateMode(org.apache.zookeeper.CreateMode) ZPath(org.apache.zookeeper.server.jersey.jaxb.ZPath) ZError(org.apache.zookeeper.server.jersey.jaxb.ZError) URI(java.net.URI) POST(javax.ws.rs.POST) Produces(javax.ws.rs.Produces) Consumes(javax.ws.rs.Consumes)

Example 9 with CreateMode

use of org.apache.zookeeper.CreateMode in project zookeeper by apache.

the class ZNodeResource method createZNode.

@POST
@Produces({ MediaType.APPLICATION_JSON, "application/javascript", MediaType.APPLICATION_XML })
@Consumes(MediaType.APPLICATION_OCTET_STREAM)
public Response createZNode(@PathParam("path") String path, @QueryParam("callback") String callback, @DefaultValue("create") @QueryParam("op") String op, @QueryParam("name") String name, @DefaultValue("base64") @QueryParam("dataformat") String dataformat, @DefaultValue("false") @QueryParam("null") String setNull, @DefaultValue("false") @QueryParam("sequence") String sequence, @DefaultValue("false") @QueryParam("ephemeral") String ephemeral, @Context UriInfo ui, byte[] data) throws InterruptedException, KeeperException {
    ensurePathNotNull(path);
    if (path.equals("/")) {
        path += name;
    } else {
        path += "/" + name;
    }
    if (!op.equals("create")) {
        throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity(new ZError(ui.getRequestUri().toString(), path + " bad operaton " + op)).build());
    }
    if (setNull.equals("true")) {
        data = null;
    }
    CreateMode createMode;
    if (sequence.equals("true")) {
        if (ephemeral.equals("false")) {
            createMode = CreateMode.PERSISTENT_SEQUENTIAL;
        } else {
            createMode = CreateMode.EPHEMERAL_SEQUENTIAL;
        }
    } else if (ephemeral.equals("false")) {
        createMode = CreateMode.PERSISTENT;
    } else {
        createMode = CreateMode.EPHEMERAL;
    }
    String newPath = zk.create(path, data, Ids.OPEN_ACL_UNSAFE, createMode);
    URI uri = ui.getAbsolutePathBuilder().path(newPath).build();
    return Response.created(uri).entity(new JSONWithPadding(new ZPath(newPath, ui.getAbsolutePath().toString()))).build();
}
Also used : JSONWithPadding(com.sun.jersey.api.json.JSONWithPadding) WebApplicationException(javax.ws.rs.WebApplicationException) CreateMode(org.apache.zookeeper.CreateMode) ZPath(org.apache.zookeeper.server.jersey.jaxb.ZPath) ZError(org.apache.zookeeper.server.jersey.jaxb.ZError) URI(java.net.URI) POST(javax.ws.rs.POST) Produces(javax.ws.rs.Produces) Consumes(javax.ws.rs.Consumes)

Example 10 with CreateMode

use of org.apache.zookeeper.CreateMode in project camel by apache.

the class ZooKeeperProducer method createNode.

private OperationResult<String> createNode(ProductionContext ctx) throws Exception {
    CreateOperation create = new CreateOperation(ctx.connection, ctx.node);
    create.setPermissions(getAclListFromMessage(ctx.exchange.getIn()));
    CreateMode mode = null;
    String modeString = configuration.getCreateMode();
    if (modeString != null) {
        try {
            mode = getCreateModeFromString(modeString, CreateMode.EPHEMERAL);
        } catch (Exception e) {
        }
    } else {
        mode = getCreateMode(ctx.exchange.getIn(), CreateMode.EPHEMERAL);
    }
    create.setCreateMode(mode == null ? CreateMode.EPHEMERAL : mode);
    create.setData(ctx.payload);
    return create.get();
}
Also used : CreateOperation(org.apache.camel.component.zookeeper.operations.CreateOperation) CreateMode(org.apache.zookeeper.CreateMode) ZooKeeperUtils.getCreateMode(org.apache.camel.component.zookeeper.ZooKeeperUtils.getCreateMode) ZooKeeperUtils.getCreateModeFromString(org.apache.camel.component.zookeeper.ZooKeeperUtils.getCreateModeFromString)

Aggregations

CreateMode (org.apache.zookeeper.CreateMode)16 Test (org.junit.Test)4 KeeperException (org.apache.zookeeper.KeeperException)3 Op (org.apache.zookeeper.Op)3 Stat (org.apache.zookeeper.data.Stat)3 URI (java.net.URI)2 Consumes (javax.ws.rs.Consumes)2 POST (javax.ws.rs.POST)2 Produces (javax.ws.rs.Produces)2 WebApplicationException (javax.ws.rs.WebApplicationException)2 AsyncCallback (org.apache.zookeeper.AsyncCallback)2 NodeExistsException (org.apache.zookeeper.KeeperException.NodeExistsException)2 ACL (org.apache.zookeeper.data.ACL)2 CreateRequest (org.apache.zookeeper.proto.CreateRequest)2 ZError (org.apache.zookeeper.server.jersey.jaxb.ZError)2 ZPath (org.apache.zookeeper.server.jersey.jaxb.ZPath)2 JSONWithPadding (com.sun.jersey.api.json.JSONWithPadding)1 LogExistsException (com.twitter.distributedlog.exceptions.LogExistsException)1 LogNotFoundException (com.twitter.distributedlog.exceptions.LogNotFoundException)1 ZKException (com.twitter.distributedlog.exceptions.ZKException)1