当前位置: 首页>>代码示例>>Java>>正文


Java SnapshotDescription.Builder方法代码示例

本文整理汇总了Java中org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription.Builder方法的典型用法代码示例。如果您正苦于以下问题:Java SnapshotDescription.Builder方法的具体用法?Java SnapshotDescription.Builder怎么用?Java SnapshotDescription.Builder使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription的用法示例。


在下文中一共展示了SnapshotDescription.Builder方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: toSnapshotDescription

import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription; //导入方法依赖的package包/类
private SnapshotDescription toSnapshotDescription(ProcedureDescription desc)
    throws IOException {
  SnapshotDescription.Builder builder = SnapshotDescription.newBuilder();
  if (!desc.hasInstance()) {
    throw new IOException("Snapshot name is not defined: " + desc.toString());
  }
  String snapshotName = desc.getInstance();
  List<NameStringPair> props = desc.getConfigurationList();
  String table = null;
  for (NameStringPair prop : props) {
    if ("table".equalsIgnoreCase(prop.getName())) {
      table = prop.getValue();
    }
  }
  if (table == null) {
    throw new IOException("Snapshot table is not defined: " + desc.toString());
  }
  TableName tableName = TableName.valueOf(table);
  builder.setTable(tableName.getNameAsString());
  builder.setName(snapshotName);
  builder.setType(SnapshotDescription.Type.FLUSH);
  return builder.build();
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:24,代码来源:SnapshotManager.java

示例2: validate

import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription; //导入方法依赖的package包/类
/**
 * Convert the passed snapshot description into a 'full' snapshot description based on default
 * parameters, if none have been supplied. This resolves any 'optional' parameters that aren't
 * supplied to their default values.
 * @param snapshot general snapshot descriptor
 * @param conf Configuration to read configured snapshot defaults if snapshot is not complete
 * @return a valid snapshot description
 * @throws IllegalArgumentException if the {@link SnapshotDescription} is not a complete
 *           {@link SnapshotDescription}.
 */
public static SnapshotDescription validate(SnapshotDescription snapshot, Configuration conf)
    throws IllegalArgumentException {
  if (!snapshot.hasTable()) {
    throw new IllegalArgumentException(
      "Descriptor doesn't apply to a table, so we can't build it.");
  }

  // set the creation time, if one hasn't been set
  long time = snapshot.getCreationTime();
  if (time == SnapshotDescriptionUtils.NO_SNAPSHOT_START_TIME_SPECIFIED) {
    time = EnvironmentEdgeManager.currentTime();
    LOG.debug("Creation time not specified, setting to:" + time + " (current time:"
        + EnvironmentEdgeManager.currentTime() + ").");
    SnapshotDescription.Builder builder = snapshot.toBuilder();
    builder.setCreationTime(time);
    snapshot = builder.build();
  }
  return snapshot;
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:30,代码来源:SnapshotDescriptionUtils.java

示例3: testSnapshot

import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription; //导入方法依赖的package包/类
@Test (timeout=180000)
public void testSnapshot() throws Exception {
  Admin admin = TEST_UTIL.getHBaseAdmin();
  final HTableDescriptor htd = admin.getTableDescriptor(TEST_TABLE);
  SnapshotDescription.Builder builder = SnapshotDescription.newBuilder();
  builder.setName(TEST_TABLE.getNameAsString() + "-snapshot");
  builder.setTable(TEST_TABLE.getNameAsString());
  final SnapshotDescription snapshot = builder.build();
  AccessTestAction snapshotAction = new AccessTestAction() {
    @Override
    public Object run() throws Exception {
      ACCESS_CONTROLLER.preSnapshot(ObserverContext.createAndPrepare(CP_ENV, null),
        snapshot, htd);
      return null;
    }
  };

  AccessTestAction deleteAction = new AccessTestAction() {
    @Override
    public Object run() throws Exception {
      ACCESS_CONTROLLER.preDeleteSnapshot(ObserverContext.createAndPrepare(CP_ENV, null),
        snapshot);
      return null;
    }
  };

  AccessTestAction restoreAction = new AccessTestAction() {
    @Override
    public Object run() throws Exception {
      ACCESS_CONTROLLER.preRestoreSnapshot(ObserverContext.createAndPrepare(CP_ENV, null),
        snapshot, htd);
      return null;
    }
  };

  AccessTestAction cloneAction = new AccessTestAction() {
    @Override
    public Object run() throws Exception {
      ACCESS_CONTROLLER.preCloneSnapshot(ObserverContext.createAndPrepare(CP_ENV, null),
        null, null);
      return null;
    }
  };

  verifyAllowed(snapshotAction, SUPERUSER, USER_ADMIN, USER_OWNER, USER_GROUP_ADMIN);
  verifyDenied(snapshotAction, USER_CREATE, USER_RW, USER_RO, USER_NONE, USER_GROUP_READ,
    USER_GROUP_WRITE, USER_GROUP_CREATE);

  verifyAllowed(cloneAction, SUPERUSER, USER_ADMIN, USER_GROUP_ADMIN);
  verifyDenied(deleteAction, USER_CREATE, USER_RW, USER_RO, USER_NONE, USER_OWNER,
    USER_GROUP_READ, USER_GROUP_WRITE, USER_GROUP_CREATE);

  verifyAllowed(restoreAction, SUPERUSER, USER_ADMIN, USER_GROUP_ADMIN);
  verifyDenied(restoreAction, USER_CREATE, USER_RW, USER_RO, USER_NONE, USER_OWNER,
    USER_GROUP_READ, USER_GROUP_WRITE, USER_GROUP_CREATE);

  verifyAllowed(deleteAction, SUPERUSER, USER_ADMIN, USER_GROUP_ADMIN);
  verifyDenied(cloneAction, USER_CREATE, USER_RW, USER_RO, USER_NONE, USER_OWNER,
    USER_GROUP_READ, USER_GROUP_WRITE, USER_GROUP_CREATE);
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:61,代码来源:TestAccessController.java

示例4: testSnapshotWithOwner

import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription; //导入方法依赖的package包/类
@Test (timeout=180000)
public void testSnapshotWithOwner() throws Exception {
  Admin admin = TEST_UTIL.getHBaseAdmin();
  final HTableDescriptor htd = admin.getTableDescriptor(TEST_TABLE);
  SnapshotDescription.Builder builder = SnapshotDescription.newBuilder();
  builder.setName(TEST_TABLE.getNameAsString() + "-snapshot");
  builder.setTable(TEST_TABLE.getNameAsString());
  builder.setOwner(USER_OWNER.getName());
  final SnapshotDescription snapshot = builder.build();
  AccessTestAction snapshotAction = new AccessTestAction() {
    @Override
    public Object run() throws Exception {
      ACCESS_CONTROLLER.preSnapshot(ObserverContext.createAndPrepare(CP_ENV, null),
        snapshot, htd);
      return null;
    }
  };
  verifyAllowed(snapshotAction, SUPERUSER, USER_ADMIN, USER_OWNER, USER_GROUP_ADMIN);
  verifyDenied(snapshotAction, USER_CREATE, USER_RW, USER_RO, USER_NONE, USER_GROUP_READ,
    USER_GROUP_WRITE, USER_GROUP_CREATE);

  AccessTestAction deleteAction = new AccessTestAction() {
    @Override
    public Object run() throws Exception {
      ACCESS_CONTROLLER.preDeleteSnapshot(ObserverContext.createAndPrepare(CP_ENV, null),
        snapshot);
      return null;
    }
  };
  verifyAllowed(deleteAction, SUPERUSER, USER_ADMIN, USER_OWNER, USER_GROUP_ADMIN);
  verifyDenied(deleteAction, USER_CREATE, USER_RW, USER_RO, USER_NONE, USER_GROUP_READ,
    USER_GROUP_WRITE, USER_GROUP_CREATE);

  AccessTestAction restoreAction = new AccessTestAction() {
    @Override
    public Object run() throws Exception {
      ACCESS_CONTROLLER.preRestoreSnapshot(ObserverContext.createAndPrepare(CP_ENV, null),
        snapshot, htd);
      return null;
    }
  };
  verifyAllowed(restoreAction, SUPERUSER, USER_ADMIN, USER_OWNER, USER_GROUP_ADMIN);
  verifyDenied(restoreAction, USER_CREATE, USER_RW, USER_RO, USER_NONE, USER_GROUP_READ,
    USER_GROUP_WRITE, USER_GROUP_CREATE);

  AccessTestAction cloneAction = new AccessTestAction() {
    @Override
    public Object run() throws Exception {
      ACCESS_CONTROLLER.preCloneSnapshot(ObserverContext.createAndPrepare(CP_ENV, null),
        null, null);
      return null;
    }
  };
  // Clone by snapshot owner is not allowed , because clone operation creates a new table,
  // which needs global admin permission.
  verifyAllowed(cloneAction, SUPERUSER, USER_ADMIN, USER_GROUP_ADMIN);
  verifyDenied(cloneAction, USER_CREATE, USER_RW, USER_RO, USER_NONE, USER_OWNER,
    USER_GROUP_READ, USER_GROUP_WRITE, USER_GROUP_CREATE);
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:60,代码来源:TestAccessController.java

示例5: testValidateSnapshotName

import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription; //导入方法依赖的package包/类
/**
 * Make sure that we validate the snapshot name and the table name before we pass anything across
 * the wire
 * @throws Exception on failure
 */
@Test
public void testValidateSnapshotName() throws Exception {
  ConnectionManager.HConnectionImplementation mockConnection = Mockito
      .mock(ConnectionManager.HConnectionImplementation.class);
  Configuration conf = HBaseConfiguration.create();
  Mockito.when(mockConnection.getConfiguration()).thenReturn(conf);
  // we need a real retrying caller
  RpcRetryingCallerFactory callerFactory = new RpcRetryingCallerFactory(conf);
  RpcControllerFactory controllerFactory = Mockito.mock(RpcControllerFactory.class);
  Mockito.when(controllerFactory.newController()).thenReturn(
    Mockito.mock(PayloadCarryingRpcController.class));
  Mockito.when(mockConnection.getRpcRetryingCallerFactory()).thenReturn(callerFactory);
  Mockito.when(mockConnection.getRpcControllerFactory()).thenReturn(controllerFactory);
  Admin admin = new HBaseAdmin(mockConnection);
  SnapshotDescription.Builder builder = SnapshotDescription.newBuilder();
  // check that invalid snapshot names fail
  failSnapshotStart(admin, builder.setName(HConstants.SNAPSHOT_DIR_NAME).build());
  failSnapshotStart(admin, builder.setName("-snapshot").build());
  failSnapshotStart(admin, builder.setName("snapshot fails").build());
  failSnapshotStart(admin, builder.setName("snap$hot").build());
  failSnapshotStart(admin, builder.setName("snap:hot").build());
  // check the table name also get verified
  failSnapshotStart(admin, builder.setName("snapshot").setTable(".table").build());
  failSnapshotStart(admin, builder.setName("snapshot").setTable("-table").build());
  failSnapshotStart(admin, builder.setName("snapshot").setTable("table fails").build());
  failSnapshotStart(admin, builder.setName("snapshot").setTable("tab%le").build());

  // mock the master connection
  MasterKeepAliveConnection master = Mockito.mock(MasterKeepAliveConnection.class);
  Mockito.when(mockConnection.getKeepAliveMasterService()).thenReturn(master);
  SnapshotResponse response = SnapshotResponse.newBuilder().setExpectedTimeout(0).build();
  Mockito.when(
    master.snapshot((RpcController) Mockito.any(), Mockito.any(SnapshotRequest.class)))
      .thenReturn(response);
  IsSnapshotDoneResponse doneResponse = IsSnapshotDoneResponse.newBuilder().setDone(true).build();
  Mockito.when(
    master.isSnapshotDone((RpcController) Mockito.any(),
        Mockito.any(IsSnapshotDoneRequest.class))).thenReturn(doneResponse);

    // make sure that we can use valid names
  admin.snapshot(builder.setName("snapshot").setTable("table").build());
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:48,代码来源:TestSnapshotFromAdmin.java

示例6: snapshot

import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription; //导入方法依赖的package包/类
/**
 * Create typed snapshot of the table.
 * <p>
 * Snapshots are considered unique based on <b>the name of the snapshot</b>. Attempts to take a
 * snapshot with the same name (even a different type or with different parameters) will fail with
 * a {@link SnapshotCreationException} indicating the duplicate naming.
 * <p>
 * Snapshot names follow the same naming constraints as tables in HBase. See
 * {@link org.apache.hadoop.hbase.TableName#isLegalFullyQualifiedTableName(byte[])}.
 * <p>
 * @param snapshotName name to give the snapshot on the filesystem. Must be unique from all other
 *          snapshots stored on the cluster
 * @param tableName name of the table to snapshot
 * @param type type of snapshot to take
 * @throws IOException we fail to reach the master
 * @throws SnapshotCreationException if snapshot creation failed
 * @throws IllegalArgumentException if the snapshot request is formatted incorrectly
 */
@Override
public void snapshot(final String snapshotName,
                     final TableName tableName,
                    SnapshotDescription.Type type) throws IOException, SnapshotCreationException,
    IllegalArgumentException {
  SnapshotDescription.Builder builder = SnapshotDescription.newBuilder();
  builder.setTable(tableName.getNameAsString());
  builder.setName(snapshotName);
  builder.setType(type);
  snapshot(builder.build());
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:30,代码来源:HBaseAdmin.java


注:本文中的org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription.Builder方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。