HBASE-19157 IntegrationTestBackupRestore should warn about missing config

Signed-off-by: tedyu <yuzhihong@gmail.com>
This commit is contained in:
Artem Ervits 2018-02-23 22:12:13 -05:00 committed by tedyu
parent 9a7645360b
commit bbbfeae25e
1 changed files with 44 additions and 8 deletions

View File

@ -52,7 +52,6 @@ import org.junit.Test;
import org.junit.experimental.categories.Category; import org.junit.experimental.categories.Category;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.apache.hbase.thirdparty.com.google.common.base.Objects;
import org.apache.hbase.thirdparty.com.google.common.collect.Lists; import org.apache.hbase.thirdparty.com.google.common.collect.Lists;
/** /**
@ -133,7 +132,6 @@ public class IntegrationTestBackupRestore extends IntegrationTestBase {
runTest(); runTest();
} }
private void createTable(TableName tableName) throws Exception { private void createTable(TableName tableName) throws Exception {
long startTime, endTime; long startTime, endTime;
HTableDescriptor desc = new HTableDescriptor(tableName); HTableDescriptor desc = new HTableDescriptor(tableName);
@ -160,6 +158,13 @@ public class IntegrationTestBackupRestore extends IntegrationTestBase {
} }
private void runTest() throws IOException { private void runTest() throws IOException {
// Check if backup is enabled
if (!BackupManager.isBackupEnabled(getConf())) {
LOG.error(BackupRestoreConstants.ENABLE_BACKUP);
System.exit(EXIT_FAILURE);
}
LOG.info(BackupRestoreConstants.VERIFY_BACKUP);
try (Connection conn = util.getConnection(); try (Connection conn = util.getConnection();
Admin admin = conn.getAdmin(); Admin admin = conn.getAdmin();
@ -180,12 +185,14 @@ public class IntegrationTestBackupRestore extends IntegrationTestBase {
// #2 - insert some data to table // #2 - insert some data to table
loadData(TABLE_NAME1, rowsInBatch); loadData(TABLE_NAME1, rowsInBatch);
loadData(TABLE_NAME2, rowsInBatch); loadData(TABLE_NAME2, rowsInBatch);
HTable t1 = (HTable) conn.getTable(TABLE_NAME1);
Assert.assertEquals(util.countRows(t1), rowsInBatch * 2); try (HTable t1 = (HTable) conn.getTable(TABLE_NAME1)) {
t1.close(); Assert.assertEquals(util.countRows(t1), rowsInBatch * 2);
HTable t2 = (HTable) conn.getTable(TABLE_NAME2); }
Assert.assertEquals(util.countRows(t2), rowsInBatch * 2); try (HTable t2 = (HTable) conn.getTable(TABLE_NAME2)) {
t2.close(); Assert.assertEquals(util.countRows(t2), rowsInBatch * 2);
}
// #3 - incremental backup for tables // #3 - incremental backup for tables
tables = Lists.newArrayList(TABLE_NAME1, TABLE_NAME2); tables = Lists.newArrayList(TABLE_NAME1, TABLE_NAME2);
builder = new BackupRequest.Builder(); builder = new BackupRequest.Builder();
@ -221,6 +228,11 @@ public class IntegrationTestBackupRestore extends IntegrationTestBase {
} }
} }
/**
*
* @param backupId pass backup ID to check status of
* @return status of backup
*/
protected boolean checkSucceeded(String backupId) throws IOException { protected boolean checkSucceeded(String backupId) throws IOException {
BackupInfo status = getBackupInfo(backupId); BackupInfo status = getBackupInfo(backupId);
if (status == null) return false; if (status == null) return false;
@ -235,6 +247,14 @@ public class IntegrationTestBackupRestore extends IntegrationTestBase {
/** /**
* Get restore request. * Get restore request.
*
* @param backupRootDir directory where backup is located
* @param backupId backup ID
* @param check check the backup
* @param fromTables table names to restore from
* @param toTables new table names to restore to
* @param isOverwrite overwrite the table(s)
* @return an instance of RestoreRequest
*/ */
public RestoreRequest createRestoreRequest(String backupRootDir, String backupId, boolean check, public RestoreRequest createRestoreRequest(String backupRootDir, String backupId, boolean check,
TableName[] fromTables, TableName[] toTables, boolean isOverwrite) { TableName[] fromTables, TableName[] toTables, boolean isOverwrite) {
@ -256,8 +276,20 @@ public class IntegrationTestBackupRestore extends IntegrationTestBase {
LOG.debug("Done initializing/checking cluster"); LOG.debug("Done initializing/checking cluster");
} }
/**
*
* @return status of CLI execution
*/
@Override @Override
public int runTestFromCommandLine() throws Exception { public int runTestFromCommandLine() throws Exception {
// Check if backup is enabled
if (!BackupManager.isBackupEnabled(getConf())) {
System.err.println(BackupRestoreConstants.ENABLE_BACKUP);
return -1;
}
System.out.println(BackupRestoreConstants.VERIFY_BACKUP);
testBackupRestore(); testBackupRestore();
return 0; return 0;
} }
@ -302,6 +334,10 @@ public class IntegrationTestBackupRestore extends IntegrationTestBase {
.toString()); .toString());
} }
/**
*
* @param args argument list
*/
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {
Configuration conf = HBaseConfiguration.create(); Configuration conf = HBaseConfiguration.create();
IntegrationTestingUtility.setUseDistributedCluster(conf); IntegrationTestingUtility.setUseDistributedCluster(conf);