Java 类org.apache.hadoop.hbase.protobuf.generated.AccessControlProtos.RevokeRequest 实例源码

项目:HIndex    文件:AccessControlClient.java   
/**
 * Revokes the permission on the table
 * @param conf
 * @param username
 * @param tableName
 * @param family
 * @param qualifier
 * @param actions
 * @return RevokeResponse
 * @throws Throwable
 */
public static RevokeResponse revoke(Configuration conf, final String username,
    final TableName tableName, final byte[] family, final byte[] qualifier,
    final AccessControlProtos.Permission.Action... actions) throws Throwable {
  HTable ht = null;
  try {
    TableName aclTableName = TableName.valueOf(NamespaceDescriptor.SYSTEM_NAMESPACE_NAME_STR,
        "acl");
    ht = new HTable(conf, aclTableName.getName());
    Batch.Call<AccessControlService, AccessControlProtos.RevokeResponse> callable =
        new Batch.Call<AccessControlService, AccessControlProtos.RevokeResponse>() {
      ServerRpcController controller = new ServerRpcController();
      BlockingRpcCallback<AccessControlProtos.RevokeResponse> rpcCallback =
          new BlockingRpcCallback<AccessControlProtos.RevokeResponse>();

      @Override
      public RevokeResponse call(AccessControlService service) throws IOException {
        AccessControlProtos.Permission.Builder ret =
            AccessControlProtos.Permission.newBuilder();
        AccessControlProtos.TablePermission.Builder permissionBuilder =
            AccessControlProtos.TablePermission.newBuilder();
        for (AccessControlProtos.Permission.Action a : actions) {
          permissionBuilder.addAction(a);
        }
        if (tableName != null) {
          permissionBuilder.setTableName(ProtobufUtil.toProtoTableName(tableName));
        }
        if (family != null) {
          permissionBuilder.setFamily(HBaseZeroCopyByteString.wrap(family));
        }
        if (qualifier != null) {
          permissionBuilder.setQualifier(HBaseZeroCopyByteString.wrap(qualifier));
        }
        ret.setType(AccessControlProtos.Permission.Type.Table).setTablePermission(
            permissionBuilder);
        RevokeRequest builder = AccessControlProtos.RevokeRequest
            .newBuilder()
            .setUserPermission(
                AccessControlProtos.UserPermission.newBuilder()
                    .setUser(ByteString.copyFromUtf8(username)).setPermission(ret)).build();
        service.revoke(controller, builder, rpcCallback);
        return rpcCallback.get();
      }
    };
    Map<byte[], RevokeResponse> result = ht.coprocessorService(AccessControlService.class,
        HConstants.EMPTY_BYTE_ARRAY, HConstants.EMPTY_BYTE_ARRAY, callable);
    return result.values().iterator().next();

  } finally {
    if (ht != null) {
      ht.close();
    }
  }
}
项目:hbase    文件:TestMasterCoprocessorServices.java   
@Override
public void revoke(RpcController controller, RevokeRequest request,
    RpcCallback<RevokeResponse> done) {}
项目:PyroDB    文件:AccessControlClient.java   
/**
 * Revokes the permission on the table
 * @param conf
 * @param username
 * @param tableName
 * @param family
 * @param qualifier
 * @param actions
 * @return RevokeResponse
 * @throws Throwable
 */
public static RevokeResponse revoke(Configuration conf, final String username,
    final TableName tableName, final byte[] family, final byte[] qualifier,
    final AccessControlProtos.Permission.Action... actions) throws Throwable {
  HTable ht = null;
  try {
    TableName aclTableName = TableName.valueOf(NamespaceDescriptor.SYSTEM_NAMESPACE_NAME_STR,
        "acl");
    ht = new HTable(conf, aclTableName.getName());
    Batch.Call<AccessControlService, AccessControlProtos.RevokeResponse> callable =
        new Batch.Call<AccessControlService, AccessControlProtos.RevokeResponse>() {
      ServerRpcController controller = new ServerRpcController();
      BlockingRpcCallback<AccessControlProtos.RevokeResponse> rpcCallback =
          new BlockingRpcCallback<AccessControlProtos.RevokeResponse>();

      @Override
      public RevokeResponse call(AccessControlService service) throws IOException {
        AccessControlProtos.Permission.Builder ret =
            AccessControlProtos.Permission.newBuilder();
        AccessControlProtos.TablePermission.Builder permissionBuilder =
            AccessControlProtos.TablePermission.newBuilder();
        for (AccessControlProtos.Permission.Action a : actions) {
          permissionBuilder.addAction(a);
        }
        if (tableName != null) {
          permissionBuilder.setTableName(ProtobufUtil.toProtoTableName(tableName));
        }
        if (family != null) {
          permissionBuilder.setFamily(HBaseZeroCopyByteString.wrap(family));
        }
        if (qualifier != null) {
          permissionBuilder.setQualifier(HBaseZeroCopyByteString.wrap(qualifier));
        }
        ret.setType(AccessControlProtos.Permission.Type.Table).setTablePermission(
            permissionBuilder);
        RevokeRequest builder = AccessControlProtos.RevokeRequest
            .newBuilder()
            .setUserPermission(
                AccessControlProtos.UserPermission.newBuilder()
                    .setUser(ByteString.copyFromUtf8(username)).setPermission(ret)).build();
        service.revoke(controller, builder, rpcCallback);
        return rpcCallback.get();
      }
    };
    Map<byte[], RevokeResponse> result = ht.coprocessorService(AccessControlService.class,
        HConstants.EMPTY_BYTE_ARRAY, HConstants.EMPTY_BYTE_ARRAY, callable);
    return result.values().iterator().next();

  } finally {
    if (ht != null) {
      ht.close();
    }
  }
}