Search in sources :

Example 16 with CreateBuilder

use of org.apache.flink.shaded.curator5.org.apache.curator.framework.api.CreateBuilder in project incubator-atlas by apache.

the class SetupStepsTest method shouldCreateSetupInProgressNode.

@Test
public void shouldCreateSetupInProgressNode() throws Exception {
    Set<SetupStep> steps = new LinkedHashSet<>();
    SetupStep setupStep1 = mock(SetupStep.class);
    steps.add(setupStep1);
    when(configuration.getString(HAConfiguration.ATLAS_SERVER_HA_ZK_ROOT_KEY, HAConfiguration.ATLAS_SERVER_ZK_ROOT_DEFAULT)).thenReturn(HAConfiguration.ATLAS_SERVER_ZK_ROOT_DEFAULT);
    when(configuration.getString(HAConfiguration.HA_ZOOKEEPER_ACL)).thenReturn("digest:user:pwd");
    List<ACL> aclList = Arrays.asList(new ACL(ZooDefs.Perms.ALL, new Id("digest", "user:pwd")));
    setupServerIdSelectionMocks();
    CreateBuilder createBuilder = setupSetupInProgressPathMocks(aclList).getLeft();
    InterProcessMutex lock = mock(InterProcessMutex.class);
    when(curatorFactory.lockInstance(HAConfiguration.ATLAS_SERVER_ZK_ROOT_DEFAULT)).thenReturn(lock);
    SetupSteps setupSteps = new SetupSteps(steps, curatorFactory, configuration);
    setupSteps.runSetup();
    verify(createBuilder).withACL(aclList);
    verify(createBuilder).forPath(HAConfiguration.ATLAS_SERVER_ZK_ROOT_DEFAULT + SetupSteps.SETUP_IN_PROGRESS_NODE, "id2".getBytes(Charsets.UTF_8));
}
Also used : LinkedHashSet(java.util.LinkedHashSet) CreateBuilder(org.apache.curator.framework.api.CreateBuilder) ACL(org.apache.zookeeper.data.ACL) SetupStep(org.apache.atlas.setup.SetupStep) Id(org.apache.zookeeper.data.Id) InterProcessMutex(org.apache.curator.framework.recipes.locks.InterProcessMutex) Test(org.testng.annotations.Test)

Example 17 with CreateBuilder

use of org.apache.flink.shaded.curator5.org.apache.curator.framework.api.CreateBuilder in project hadoop by apache.

the class CuratorService method zkMkPath.

/**
   * Create a directory. It is not an error if it already exists
   * @param path path to create
   * @param mode mode for path
   * @param createParents flag to trigger parent creation
   * @param acls ACL for path
   * @throws IOException any problem
   */
public boolean zkMkPath(String path, CreateMode mode, boolean createParents, List<ACL> acls) throws IOException {
    checkServiceLive();
    path = createFullPath(path);
    if (acls == null || acls.isEmpty()) {
        throw new NoPathPermissionsException(path, "Empty ACL list");
    }
    try {
        RegistrySecurity.AclListInfo aclInfo = new RegistrySecurity.AclListInfo(acls);
        if (LOG.isDebugEnabled()) {
            LOG.debug("Creating path {} with mode {} and ACL {}", path, mode, aclInfo);
        }
        CreateBuilder createBuilder = curator.create();
        createBuilder.withMode(mode).withACL(acls);
        if (createParents) {
            createBuilder.creatingParentsIfNeeded();
        }
        createBuilder.forPath(path);
    } catch (KeeperException.NodeExistsException e) {
        if (LOG.isDebugEnabled()) {
            LOG.debug("path already present: {}", path, e);
        }
        return false;
    } catch (Exception e) {
        throw operationFailure(path, "mkdir() ", e, acls);
    }
    return true;
}
Also used : NoPathPermissionsException(org.apache.hadoop.registry.client.exceptions.NoPathPermissionsException) CreateBuilder(org.apache.curator.framework.api.CreateBuilder) KeeperException(org.apache.zookeeper.KeeperException) NoChildrenForEphemeralsException(org.apache.hadoop.registry.client.exceptions.NoChildrenForEphemeralsException) AuthenticationFailedException(org.apache.hadoop.registry.client.exceptions.AuthenticationFailedException) FileAlreadyExistsException(org.apache.hadoop.fs.FileAlreadyExistsException) KeeperException(org.apache.zookeeper.KeeperException) PathNotFoundException(org.apache.hadoop.fs.PathNotFoundException) IOException(java.io.IOException) RegistryIOException(org.apache.hadoop.registry.client.exceptions.RegistryIOException) PathIsNotEmptyDirectoryException(org.apache.hadoop.fs.PathIsNotEmptyDirectoryException) ServiceStateException(org.apache.hadoop.service.ServiceStateException) NoPathPermissionsException(org.apache.hadoop.registry.client.exceptions.NoPathPermissionsException)

Example 18 with CreateBuilder

use of org.apache.flink.shaded.curator5.org.apache.curator.framework.api.CreateBuilder in project pravega by pravega.

the class ZKStoreHelper method createZNodeIfNotExist.

CompletableFuture<Void> createZNodeIfNotExist(final String path, final byte[] data, final boolean createParent) {
    final CompletableFuture<Void> result = new CompletableFuture<>();
    try {
        CreateBuilder createBuilder = client.create();
        BackgroundCallback callback = callback(x -> result.complete(null), e -> {
            if (e instanceof StoreException.DataExistsException) {
                result.complete(null);
            } else {
                result.completeExceptionally(e);
            }
        }, path);
        if (createParent) {
            createBuilder.creatingParentsIfNeeded().inBackground(callback, executor).forPath(path, data);
        } else {
            createBuilder.inBackground(callback, executor).forPath(path, data);
        }
    } catch (Exception e) {
        result.completeExceptionally(StoreException.create(StoreException.Type.UNKNOWN, e, path));
    }
    return result;
}
Also used : CompletableFuture(java.util.concurrent.CompletableFuture) CreateBuilder(org.apache.curator.framework.api.CreateBuilder) BackgroundCallback(org.apache.curator.framework.api.BackgroundCallback) KeeperException(org.apache.zookeeper.KeeperException)

Example 19 with CreateBuilder

use of org.apache.flink.shaded.curator5.org.apache.curator.framework.api.CreateBuilder in project atlas by apache.

the class SetupStepsTest method setupSetupInProgressPathMocks.

private Pair<CreateBuilder, DeleteBuilder> setupSetupInProgressPathMocks(List<ACL> acls, Stat stat) throws Exception {
    when(curatorFactory.clientInstance()).thenReturn(client);
    CreateBuilder createBuilder = mock(CreateBuilder.class);
    when(createBuilder.withACL(acls)).thenReturn(createBuilder);
    when(client.create()).thenReturn(createBuilder);
    DeleteBuilder deleteBuilder = mock(DeleteBuilder.class);
    when(client.delete()).thenReturn(deleteBuilder);
    Pair<CreateBuilder, DeleteBuilder> pair = Pair.of(createBuilder, deleteBuilder);
    ExistsBuilder existsBuilder = mock(ExistsBuilder.class);
    when(client.checkExists()).thenReturn(existsBuilder);
    when(existsBuilder.forPath(HAConfiguration.ATLAS_SERVER_ZK_ROOT_DEFAULT + SetupSteps.SETUP_IN_PROGRESS_NODE)).thenReturn(stat);
    return pair;
}
Also used : CreateBuilder(org.apache.curator.framework.api.CreateBuilder) ExistsBuilder(org.apache.curator.framework.api.ExistsBuilder) DeleteBuilder(org.apache.curator.framework.api.DeleteBuilder)

Example 20 with CreateBuilder

use of org.apache.flink.shaded.curator5.org.apache.curator.framework.api.CreateBuilder in project atlas by apache.

the class SetupStepsTest method shouldCreateSetupInProgressNode.

@Test
public void shouldCreateSetupInProgressNode() throws Exception {
    Set<SetupStep> steps = new LinkedHashSet<>();
    SetupStep setupStep1 = mock(SetupStep.class);
    steps.add(setupStep1);
    when(configuration.getString(HAConfiguration.ATLAS_SERVER_HA_ZK_ROOT_KEY, HAConfiguration.ATLAS_SERVER_ZK_ROOT_DEFAULT)).thenReturn(HAConfiguration.ATLAS_SERVER_ZK_ROOT_DEFAULT);
    when(configuration.getString(HAConfiguration.HA_ZOOKEEPER_ACL)).thenReturn("digest:user:pwd");
    List<ACL> aclList = Arrays.asList(new ACL(ZooDefs.Perms.ALL, new Id("digest", "user:pwd")));
    setupServerIdSelectionMocks();
    CreateBuilder createBuilder = setupSetupInProgressPathMocks(aclList).getLeft();
    InterProcessMutex lock = mock(InterProcessMutex.class);
    when(curatorFactory.lockInstance(HAConfiguration.ATLAS_SERVER_ZK_ROOT_DEFAULT)).thenReturn(lock);
    SetupSteps setupSteps = new SetupSteps(steps, curatorFactory, configuration);
    setupSteps.runSetup();
    verify(createBuilder).withACL(aclList);
    verify(createBuilder).forPath(HAConfiguration.ATLAS_SERVER_ZK_ROOT_DEFAULT + SetupSteps.SETUP_IN_PROGRESS_NODE, "id2".getBytes(Charsets.UTF_8));
}
Also used : LinkedHashSet(java.util.LinkedHashSet) CreateBuilder(org.apache.curator.framework.api.CreateBuilder) ACL(org.apache.zookeeper.data.ACL) SetupStep(org.apache.atlas.setup.SetupStep) Id(org.apache.zookeeper.data.Id) InterProcessMutex(org.apache.curator.framework.recipes.locks.InterProcessMutex) Test(org.testng.annotations.Test)

Aggregations

CreateBuilder (org.apache.curator.framework.api.CreateBuilder)24 KeeperException (org.apache.zookeeper.KeeperException)12 CompletableFuture (java.util.concurrent.CompletableFuture)9 BackgroundCallback (org.apache.curator.framework.api.BackgroundCallback)9 StoreException (io.pravega.controller.store.stream.StoreException)6 ExistsBuilder (org.apache.curator.framework.api.ExistsBuilder)6 Test (org.testng.annotations.Test)6 ACL (org.apache.zookeeper.data.ACL)5 CuratorFramework (org.apache.curator.framework.CuratorFramework)4 SetDataBuilder (org.apache.curator.framework.api.SetDataBuilder)4 CreateMode (org.apache.zookeeper.CreateMode)4 Id (org.apache.zookeeper.data.Id)4 Test (org.junit.Test)4 BeforeTest (org.testng.annotations.BeforeTest)4 TimeUnit (java.util.concurrent.TimeUnit)3 ACLBackgroundPathAndBytesable (org.apache.curator.framework.api.ACLBackgroundPathAndBytesable)3 Matchers.anyBoolean (org.mockito.Matchers.anyBoolean)3 IOException (java.io.IOException)2 LinkedHashSet (java.util.LinkedHashSet)2 SetupStep (org.apache.atlas.setup.SetupStep)2