gpt4 book ai didi

com.twitter.distributedlog.acl.ZKAccessControl类的使用及代码示例

转载 作者:知者 更新时间:2024-03-13 11:10:12 25 4
gpt4 key购买 nike

本文整理了Java中com.twitter.distributedlog.acl.ZKAccessControl类的一些代码示例,展示了ZKAccessControl类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZKAccessControl类的具体详情如下:
包路径:com.twitter.distributedlog.acl.ZKAccessControl
类名称:ZKAccessControl

ZKAccessControl介绍

暂无

代码示例

代码示例来源:origin: twitter/distributedlog

protected ZKAccessControl getZKAccessControl(ZooKeeperClient zkc, String zkPath) throws Exception {
  ZKAccessControl accessControl;
  try {
    accessControl = Await.result(ZKAccessControl.read(zkc, zkPath, null));
  } catch (KeeperException.NoNodeException nne) {
    accessControl = new ZKAccessControl(new AccessControlEntry(), zkPath);
  }
  return accessControl;
}

代码示例来源:origin: twitter/distributedlog

protected void setZKAccessControl(ZooKeeperClient zkc, ZKAccessControl accessControl) throws Exception {
  String zkPath = accessControl.getZKPath();
  if (null == zkc.get().exists(zkPath, false)) {
    accessControl.create(zkc);
  } else {
    accessControl.update(zkc);
  }
}

代码示例来源:origin: twitter/distributedlog

protected AccessControlEntry getAccessControlEntry(String stream) {
  ZKAccessControl entry = streamEntries.get(stream);
  entry = null == entry ? defaultAccessControl : entry;
  return entry.getAccessControlEntry();
}

代码示例来源:origin: twitter/distributedlog

@Test(timeout = 60000)
public void testDeleteZKAccessControl() throws Exception {
  String zkPath = "/delete-zk-access-control";
  AccessControlEntry ace = new AccessControlEntry();
  ace.setDenyDelete(true);
  ZKAccessControl zkac = new ZKAccessControl(ace, zkPath);
  Await.result(zkac.create(zkc));
  ZKAccessControl readZKAC = Await.result(ZKAccessControl.read(zkc, zkPath, null));
  assertEquals(zkac, readZKAC);
  Await.result(ZKAccessControl.delete(zkc, zkPath));
  try {
    Await.result(ZKAccessControl.read(zkc, zkPath, null));
  } catch (KeeperException.NoNodeException nne) {
    // expected.
  }
  Await.result(ZKAccessControl.delete(zkc, zkPath));
}

代码示例来源:origin: twitter/distributedlog

@Test(timeout = 60000)
  public void testUpdateZKAccessControl() throws Exception {
    String zkPath = "/update-zk-access-control";

    AccessControlEntry ace = new AccessControlEntry();
    ace.setDenyDelete(true);

    ZKAccessControl zkac = new ZKAccessControl(ace, zkPath);
    Await.result(zkac.create(zkc));

    ZKAccessControl readZKAC = Await.result(ZKAccessControl.read(zkc, zkPath, null));
    assertEquals(zkac, readZKAC);

    ace.setDenyRelease(true);
    ZKAccessControl newZKAC = new ZKAccessControl(ace, zkPath);
    Await.result(newZKAC.update(zkc));
    ZKAccessControl readZKAC2 = Await.result(ZKAccessControl.read(zkc, zkPath, null));
    assertEquals(newZKAC, readZKAC2);

    try {
      Await.result(readZKAC.update(zkc));
    } catch (KeeperException.BadVersionException bve) {
      // expected
    }
    readZKAC2.accessControlEntry.setDenyTruncate(true);
    Await.result(readZKAC2.update(zkc));
    ZKAccessControl readZKAC3 = Await.result(ZKAccessControl.read(zkc, zkPath, null));
    assertEquals(readZKAC2, readZKAC3);
  }
}

代码示例来源:origin: twitter/distributedlog

@Test(timeout = 60000)
public void testCreateZKAccessControl() throws Exception {
  AccessControlEntry ace = new AccessControlEntry();
  ace.setDenyWrite(true);
  String zkPath = "/create-zk-access-control";
  ZKAccessControl zkac = new ZKAccessControl(ace, zkPath);
  Await.result(zkac.create(zkc));
  ZKAccessControl readZKAC = Await.result(ZKAccessControl.read(zkc, zkPath, null));
  assertEquals(zkac, readZKAC);
  ZKAccessControl another = new ZKAccessControl(ace, zkPath);
  try {
    Await.result(another.create(zkc));
  } catch (KeeperException.NodeExistsException ke) {
    // expected
  }
}

代码示例来源:origin: twitter/distributedlog

ZKAccessControl accessControl = streamEntries.remove(s);
  if (null != accessControl) {
    logger.info("Removed Access Control Entry for stream {} : {}", s, accessControl.getAccessControlEntry());
for (String s : streamsReceived) {
  final String streamName = s;
  ZKAccessControl.read(zkc, zkRootPath + "/" + streamName, null)
      .addEventListener(new FutureEventListener<ZKAccessControl>() {

代码示例来源:origin: twitter/distributedlog

AccessControlEntry ace1 = new AccessControlEntry();
ace1.setDenyDelete(true);
ZKAccessControl accessControl1 = new ZKAccessControl(ace1, zkPath1);
setACL(accessControl1);
logger.info("Create ACL for stream {} : {}", stream1, accessControl1);
accessControl1 = new ZKAccessControl(ace1, zkPath1);
setACL(accessControl1);
logger.info("Update ACL for stream {} : {}", stream1, accessControl1);
AccessControlEntry ace2 = new AccessControlEntry();
ace2.setDenyTruncate(true);
ZKAccessControl accessControl2 = new ZKAccessControl(ace2, zkPath2);
setACL(accessControl2);
logger.info("Create ACL for stream {} : {}", stream2, accessControl2);
Await.result(ZKAccessControl.delete(zkc, zkPath2));
logger.info("Delete ACL for stream {}", stream2);
while (!zkcm.allowTruncate(stream2)) {
accessControl1 = new ZKAccessControl(ace1, zkPath1);
setACL(accessControl1);
logger.info("Update ACL for stream {} : {}", stream1, accessControl1);
accessControl2 = new ZKAccessControl(ace2, zkPath2);
setACL(accessControl2);
logger.info("Created ACL for stream {} again : {}", stream2, accessControl2);

代码示例来源:origin: twitter/distributedlog

@Override
  public void processResult(int rc, String path, Object ctx, byte[] data, Stat stat) {
    if (KeeperException.Code.OK.intValue() == rc) {
      try {
        AccessControlEntry ace = deserialize(zkPath, data);
        promise.setValue(new ZKAccessControl(ace, zkPath, stat.getVersion()));
      } catch (IOException ioe) {
        promise.setException(ioe);
      }
    } else {
      promise.setException(KeeperException.create(KeeperException.Code.get(rc)));
    }
  }
}, null);

代码示例来源:origin: twitter/distributedlog

private void fetchDefaultAccessControlEntry(final Promise<ZKAccessControl> promise) {
  ZKAccessControl.read(zkc, zkRootPath, this)
    .addEventListener(new FutureEventListener<ZKAccessControl>() {
      @Override
      public void onSuccess(ZKAccessControl accessControl) {
        logger.info("Default Access Control will be changed from {} to {}",
              ZKAccessControlManager.this.defaultAccessControl,
              accessControl);
        ZKAccessControlManager.this.defaultAccessControl = accessControl;
        promise.setValue(accessControl);
      }
      @Override
      public void onFailure(Throwable cause) {
        if (cause instanceof KeeperException.NoNodeException) {
          logger.info("Default Access Control is missing, creating one for {} ...", zkRootPath);
          createDefaultAccessControlEntryIfNeeded(promise);
        } else {
          promise.setException(cause);
        }
      }
    });
}

代码示例来源:origin: twitter/distributedlog

@Override
protected int runCmd() throws Exception {
  BKDLConfig bkdlConfig = BKDLConfig.resolveDLConfig(getZooKeeperClient(), getUri());
  if (null == bkdlConfig.getACLRootPath()) {
    // acl isn't enabled for this namespace.
    System.err.println("ACL isn't enabled for namespace " + getUri());
    return -1;
  }
  String zkPath = getUri() + "/" + bkdlConfig.getACLRootPath() + "/" + stream;
  ZKAccessControl.delete(getZooKeeperClient(), zkPath);
  return 0;
}

代码示例来源:origin: twitter/distributedlog

public Future<ZKAccessControl> create(ZooKeeperClient zkc) {
  final Promise<ZKAccessControl> promise = new Promise<ZKAccessControl>();
  try {
    zkc.get().create(zkPath, serialize(accessControlEntry), zkc.getDefaultACL(), CreateMode.PERSISTENT,
        new AsyncCallback.StringCallback() {
          @Override
          public void processResult(int rc, String path, Object ctx, String name) {
            if (KeeperException.Code.OK.intValue() == rc) {
              ZKAccessControl.this.zkVersion = 0;
              promise.setValue(ZKAccessControl.this);
            } else {
              promise.setException(KeeperException.create(KeeperException.Code.get(rc)));
            }
          }
        }, null);
  } catch (ZooKeeperClient.ZooKeeperConnectionException e) {
    promise.setException(e);
  } catch (InterruptedException e) {
    promise.setException(e);
  } catch (IOException e) {
    promise.setException(e);
  }
  return promise;
}

代码示例来源:origin: twitter/distributedlog

@Test(timeout = 60000)
public void testEmptyZKAccessControl() throws Exception {
  String zkPath = "/empty-access-control";
  zkc.get().create(zkPath, new byte[0], zkc.getDefaultACL(), CreateMode.PERSISTENT);
  ZKAccessControl readZKAC = Await.result(ZKAccessControl.read(zkc, zkPath, null));
  assertEquals(zkPath, readZKAC.zkPath);
  assertEquals(ZKAccessControl.DEFAULT_ACCESS_CONTROL_ENTRY, readZKAC.getAccessControlEntry());
  assertTrue(ZKAccessControl.DEFAULT_ACCESS_CONTROL_ENTRY == readZKAC.getAccessControlEntry());
}

代码示例来源:origin: twitter/distributedlog

@Test(timeout = 60000)
public void testCorruptedZKAccessControl() throws Exception {
  String zkPath = "/corrupted-zk-access-control";
  zkc.get().create(zkPath, "corrupted-data".getBytes(UTF_8), zkc.getDefaultACL(), CreateMode.PERSISTENT);
  try {
    Await.result(ZKAccessControl.read(zkc, zkPath, null));
  } catch (ZKAccessControl.CorruptedAccessControlException cace) {
    // expected
  }
}

代码示例来源:origin: twitter/distributedlog

public Future<ZKAccessControl> update(ZooKeeperClient zkc) {
  final Promise<ZKAccessControl> promise = new Promise<ZKAccessControl>();
  try {
    zkc.get().setData(zkPath, serialize(accessControlEntry), zkVersion, new AsyncCallback.StatCallback() {
      @Override
      public void processResult(int rc, String path, Object ctx, Stat stat) {
        if (KeeperException.Code.OK.intValue() == rc) {
          ZKAccessControl.this.zkVersion = stat.getVersion();
          promise.setValue(ZKAccessControl.this);
        } else {
          promise.setException(KeeperException.create(KeeperException.Code.get(rc)));
        }
      }
    }, null);
  } catch (ZooKeeperClient.ZooKeeperConnectionException e) {
    promise.setException(e);
  } catch (InterruptedException e) {
    promise.setException(e);
  } catch (IOException e) {
    promise.setException(e);
  }
  return promise;
}

代码示例来源:origin: twitter/distributedlog

void setACL(ZKAccessControl accessControl) throws Exception {
  String zkPath = accessControl.getZKPath();
  if (null == zkc.get().exists(zkPath, false)) {
    accessControl.create(zkc);
  } else {
    accessControl.update(zkc);
  }
}

代码示例来源:origin: twitter/distributedlog

@Override
protected int runCmd() throws Exception {
  BKDLConfig bkdlConfig = BKDLConfig.resolveDLConfig(getZooKeeperClient(), getUri());
  if (null == bkdlConfig.getACLRootPath()) {
    // acl isn't enabled for this namespace.
    System.err.println("ACL isn't enabled for namespace " + getUri());
    return -1;
  }
  String zkPath = getZKPath(getUri().getPath() + "/" + bkdlConfig.getACLRootPath());
  ZKAccessControl accessControl = getZKAccessControl(getZooKeeperClient(), zkPath);
  AccessControlEntry acl = accessControl.getAccessControlEntry();
  acl.setDenyWrite(denyWrite);
  acl.setDenyTruncate(denyTruncate);
  acl.setDenyDelete(denyDelete);
  acl.setDenyAcquire(denyAcquire);
  acl.setDenyRelease(denyRelease);
  setZKAccessControl(getZooKeeperClient(), accessControl);
  return 0;
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com