Repository: hbase
Updated Branches:
  refs/heads/HBASE-7912 89e5b5508 -> 0c59d2368


HBASE-17154 Backup progress command usage small fix (Vladimir Rodionov)


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/0c59d236
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/0c59d236
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/0c59d236

Branch: refs/heads/HBASE-7912
Commit: 0c59d2368944ca8c0e2022400bedaaa92cb57083
Parents: 89e5b55
Author: tedyu <[email protected]>
Authored: Mon Dec 5 10:53:25 2016 -0800
Committer: tedyu <[email protected]>
Committed: Mon Dec 5 10:53:25 2016 -0800

----------------------------------------------------------------------
 .../hbase/backup/impl/BackupCommands.java       | 29 ++++++++++++++++----
 .../hadoop/hbase/backup/TestBackupDescribe.java | 24 ++++++++--------
 2 files changed, 36 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/0c59d236/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupCommands.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupCommands.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupCommands.java
index ed9b4c9..436f419 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupCommands.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupCommands.java
@@ -33,6 +33,7 @@ import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.backup.BackupInfo;
+import org.apache.hadoop.hbase.backup.BackupInfo.BackupState;
 import org.apache.hadoop.hbase.backup.BackupRequest;
 import org.apache.hadoop.hbase.backup.BackupRestoreConstants;
 import org.apache.hadoop.hbase.backup.BackupType;
@@ -74,8 +75,10 @@ public final class BackupCommands implements 
BackupRestoreConstants {
 
 
   public static final String PROGRESS_CMD_USAGE = "Usage: bin/hbase backup 
progress <backup_id>\n"
-      + "  backup_id       Backup image id\n";
+      + "  backup_id       Backup image id (optional). If no id specified, the 
command will show\n"+
+        "                  progress for currently running backup session.";
   public static final String NO_INFO_FOUND = "No info was found for backup id: 
";
+  public static final String NO_ACTIVE_SESSION_FOUND = "No active backup 
sessions found.";
 
   public static final String DESCRIBE_CMD_USAGE = "Usage: bin/hbase backup 
describe <backup_id>\n"
       + "  backup_id       Backup image id\n";
@@ -391,8 +394,8 @@ public final class BackupCommands implements 
BackupRestoreConstants {
 
       if (cmdline == null || cmdline.getArgs() == null ||
           cmdline.getArgs().length == 1) {
-        System.err.println("No backup id was specified, "
-            + "will retrieve the most recent (ongoing) sessions");
+        System.out.println("No backup id was specified, "
+            + "will retrieve the most recent (ongoing) session");
       }
       String[] args = cmdline == null ? null : cmdline.getArgs();
       if (args != null && args.length > 2) {
@@ -405,10 +408,26 @@ public final class BackupCommands implements 
BackupRestoreConstants {
       Configuration conf = getConf() != null? getConf(): 
HBaseConfiguration.create();
       try(final Connection conn = ConnectionFactory.createConnection(conf);
           final BackupSystemTable sysTable = new BackupSystemTable(conn);){
-        BackupInfo info = sysTable.readBackupInfo(backupId);
+        BackupInfo info = null;
+
+        if (backupId != null) {
+          info = sysTable.readBackupInfo(backupId);
+        } else {
+          List<BackupInfo> infos = 
sysTable.getBackupContexts(BackupState.RUNNING);
+          if(infos != null && infos.size() > 0) {
+            info = infos.get(0);
+            backupId = info.getBackupId();
+            System.out.println("Found ongoing session with backupId="+ 
backupId);
+          } else {
+          }
+        }
         int progress = info == null? -1: info.getProgress();
         if(progress < 0){
-          System.out.println(NO_INFO_FOUND + backupId);
+          if(backupId != null) {
+            System.out.println(NO_INFO_FOUND + backupId);
+          } else {
+            System.err.println(NO_ACTIVE_SESSION_FOUND);
+          }
         } else{
           System.out.println(backupId+" progress=" + progress+"%");
         }

http://git-wip-us.apache.org/repos/asf/hbase/blob/0c59d236/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 b7d41e0..57548fc 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
@@ -6,9 +6,9 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License. You may obtain a copy of the License at
- * 
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -51,24 +51,24 @@ public class TestBackupDescribe extends TestBackupBase {
   public void testBackupDescribe() throws Exception {
 
     LOG.info("test backup describe on a single table with data");
-    
-    String[] args = new String[]{"describe",  "backup_2" }; 
+
+    String[] args = new String[]{"describe",  "backup_2" };
     int ret = ToolRunner.run(conf1, new BackupDriver(), args);
     assertTrue(ret < 0);
 
     ByteArrayOutputStream baos = new ByteArrayOutputStream();
-    System.setOut(new PrintStream(baos));
+    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);
+    assertTrue(output.indexOf(BackupCommands.NO_ACTIVE_SESSION_FOUND) >= 0);
   }
 
   @Test
   public void testBackupSetCommandWithNonExistentTable() throws Exception {
-    String[] args = new String[]{"set", "add", "some_set", "table" }; 
+    String[] args = new String[]{"set", "add", "some_set", "table" };
     // Run backup
     int ret = ToolRunner.run(conf1, new BackupDriver(), args);
     assertNotEquals(ret, 0);
@@ -78,10 +78,10 @@ public class TestBackupDescribe extends TestBackupBase {
   public void testBackupDescribeCommand() throws Exception {
 
     LOG.info("test backup describe on a single table with data: command-line");
-    
+
     List<TableName> tableList = Lists.newArrayList(table1);
     String backupId = fullTableBackup(tableList);
-    
+
     LOG.info("backup complete");
     assertTrue(checkSucceeded(backupId));
 
@@ -91,7 +91,7 @@ public class TestBackupDescribe extends TestBackupBase {
     ByteArrayOutputStream baos = new ByteArrayOutputStream();
     System.setOut(new PrintStream(baos));
 
-    String[] args = new String[]{"describe",  backupId }; 
+    String[] args = new String[]{"describe",  backupId };
     // Run backup
     int ret = ToolRunner.run(conf1, new BackupDriver(), args);
     assertTrue(ret == 0);
@@ -106,6 +106,6 @@ public class TestBackupDescribe extends TestBackupBase {
     assertTrue(response.indexOf(desc) >= 0);
 
   }
-  
-  
+
+
 }

Reply via email to