Repository: hbase Updated Branches: refs/heads/HBASE-7912 d0d1485f2 -> 7dab75096
HBASE-16655 hbase backup describe with incorrect backup id results in NPE - addendum allows progress command to retrieve on-going backup session Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/7dab7509 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/7dab7509 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/7dab7509 Branch: refs/heads/HBASE-7912 Commit: 7dab75096f8549b0d59338a07bffae7e594bd758 Parents: d0d1485 Author: tedyu <yuzhih...@gmail.com> Authored: Mon Sep 19 18:00:12 2016 -0700 Committer: tedyu <yuzhih...@gmail.com> Committed: Mon Sep 19 18:00:12 2016 -0700 ---------------------------------------------------------------------- .../apache/hadoop/hbase/backup/impl/BackupCommands.java | 9 +++++---- .../hadoop/hbase/backup/TestBackupCommandLineTool.java | 9 --------- .../apache/hadoop/hbase/backup/TestBackupDescribe.java | 10 ++++++++++ 3 files changed, 15 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/7dab7509/hbase-client/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupCommands.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupCommands.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupCommands.java index 3d40da2..6d93a7c 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupCommands.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupCommands.java @@ -78,6 +78,7 @@ public final class BackupCommands { public static final String PROGRESS_CMD_USAGE = "Usage: hbase backup progress <backupId>\n" + " backupId backup image id\n"; + public static final String NO_INFO_FOUND = "No info was found for backup id: "; public static final String DESCRIBE_CMD_USAGE = "Usage: hbase backup decsribe <backupId>\n" + " backupId backup image id\n"; @@ -353,24 +354,24 @@ public final class BackupCommands { super.execute(); if (cmdline == null || cmdline.getArgs() == null || - cmdline.getArgs().length != 2) { + cmdline.getArgs().length == 1) { System.err.println("No backup id was specified, " + "will retrieve the most recent (ongoing) sessions"); } String[] args = cmdline.getArgs(); - if (args.length != 2) { + if (args.length > 2) { System.err.println("ERROR: wrong number of arguments: " + args.length); printUsage(); throw new IOException(INCORRECT_USAGE); } - String backupId = args == null ? null : args[1]; + String backupId = (args == null || args.length <= 1) ? null : args[1]; Configuration conf = getConf() != null? getConf(): HBaseConfiguration.create(); try(final Connection conn = ConnectionFactory.createConnection(conf); final BackupAdmin admin = conn.getAdmin().getBackupAdmin();){ int progress = admin.getProgress(backupId); if(progress < 0){ - System.out.println("No info was found for backup id: "+backupId); + System.err.println(NO_INFO_FOUND + backupId); } else{ System.out.println(backupId+" progress=" + progress+"%"); } http://git-wip-us.apache.org/repos/asf/hbase/blob/7dab7509/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupCommandLineTool.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupCommandLineTool.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupCommandLineTool.java index 31a859d..1e267d2 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupCommandLineTool.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupCommandLineTool.java @@ -169,15 +169,6 @@ public class TestBackupCommandLineTool { output = baos.toString(); System.out.println(baos.toString()); assertTrue(output.indexOf("Usage: hbase backup progress") >= 0); - - baos = new ByteArrayOutputStream(); - System.setErr(new PrintStream(baos)); - args = new String[]{"progress" }; - ToolRunner.run(conf, new BackupDriver(), args); - - output = baos.toString(); - System.out.println(baos.toString()); - assertTrue(output.indexOf("Usage: hbase backup progress") >= 0); } @Test http://git-wip-us.apache.org/repos/asf/hbase/blob/7dab7509/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupDescribe.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupDescribe.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupDescribe.java index 8d8e0d3..0a2f2e1 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupDescribe.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupDescribe.java @@ -29,6 +29,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.backup.BackupInfo.BackupState; +import org.apache.hadoop.hbase.backup.impl.BackupCommands; import org.apache.hadoop.hbase.backup.impl.BackupSystemTable; import org.apache.hadoop.hbase.testclassification.LargeTests; import org.apache.hadoop.util.ToolRunner; @@ -54,6 +55,15 @@ public class TestBackupDescribe extends TestBackupBase { String[] args = new String[]{"describe", "backup_2" }; int ret = ToolRunner.run(conf1, new BackupDriver(), args); assertTrue(ret < 0); + + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + System.setErr(new PrintStream(baos)); + args = new String[]{"progress" }; + ToolRunner.run(TEST_UTIL.getConfiguration(), new BackupDriver(), args); + + String output = baos.toString(); + LOG.info("Output from progress: " + output); + assertTrue(output.indexOf(BackupCommands.NO_INFO_FOUND) >= 0); } @Test