本文整理了Java中com.twitter.distributedlog.acl.ZKAccessControl
类的一些代码示例,展示了ZKAccessControl
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZKAccessControl
类的具体详情如下:
包路径:com.twitter.distributedlog.acl.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;
}
内容来源于网络,如有侵权,请联系作者删除!