From 48492ec7fd72a89ac67b2ef834ccfa8021fbadd5 Mon Sep 17 00:00:00 2001 From: Apekshit Sharma Date: Tue, 28 Jun 2016 17:30:23 -0700 Subject: [PATCH] Revert HBASE-15965 and HBASE-15849. While it's fine to introduce these format changes in minor version, reverting it from branch-1 after discussion on HBASE-16044. --- hbase-shell/src/main/ruby/hbase/admin.rb | 40 ++-- hbase-shell/src/main/ruby/hbase/table.rb | 1 - hbase-shell/src/main/ruby/shell.rb | 19 +- hbase-shell/src/main/ruby/shell/commands.rb | 29 ++- .../ruby/shell/commands/abort_procedure.rb | 6 +- .../main/ruby/shell/commands/add_labels.rb | 4 +- .../src/main/ruby/shell/commands/add_peer.rb | 4 +- .../src/main/ruby/shell/commands/alter.rb | 4 +- .../main/ruby/shell/commands/alter_async.rb | 4 +- .../ruby/shell/commands/alter_namespace.rb | 4 +- .../src/main/ruby/shell/commands/append.rb | 10 +- .../shell/commands/append_peer_tableCFs.rb | 4 +- .../src/main/ruby/shell/commands/assign.rb | 4 +- .../ruby/shell/commands/balance_switch.rb | 6 +- .../src/main/ruby/shell/commands/balancer.rb | 14 +- .../ruby/shell/commands/balancer_enabled.rb | 6 +- .../shell/commands/catalogjanitor_enabled.rb | 6 +- .../ruby/shell/commands/catalogjanitor_run.rb | 4 +- .../shell/commands/catalogjanitor_switch.rb | 6 +- .../main/ruby/shell/commands/clear_auths.rb | 4 +- .../ruby/shell/commands/clone_snapshot.rb | 4 +- .../main/ruby/shell/commands/close_region.rb | 4 +- .../src/main/ruby/shell/commands/compact.rb | 4 +- .../main/ruby/shell/commands/compact_rs.rb | 4 +- .../src/main/ruby/shell/commands/count.rb | 4 +- .../src/main/ruby/shell/commands/create.rb | 9 +- .../ruby/shell/commands/create_namespace.rb | 4 +- .../src/main/ruby/shell/commands/delete.rb | 13 +- .../shell/commands/delete_all_snapshot.rb | 6 +- .../ruby/shell/commands/delete_snapshot.rb | 4 +- .../shell/commands/delete_table_snapshots.rb | 19 +- .../src/main/ruby/shell/commands/deleteall.rb | 5 +- .../src/main/ruby/shell/commands/describe.rb | 4 +- .../ruby/shell/commands/describe_namespace.rb | 3 + .../src/main/ruby/shell/commands/disable.rb | 4 +- .../main/ruby/shell/commands/disable_peer.rb | 4 +- .../commands/disable_table_replication.rb | 6 +- .../src/main/ruby/shell/commands/drop.rb | 4 +- .../ruby/shell/commands/drop_namespace.rb | 4 +- .../src/main/ruby/shell/commands/enable.rb | 4 +- .../main/ruby/shell/commands/enable_peer.rb | 4 +- .../commands/enable_table_replication.rb | 6 +- .../src/main/ruby/shell/commands/exists.rb | 8 +- .../src/main/ruby/shell/commands/flush.rb | 4 +- .../src/main/ruby/shell/commands/get.rb | 4 +- .../src/main/ruby/shell/commands/get_auths.rb | 9 +- .../ruby/shell/commands/get_peer_config.rb | 8 +- .../src/main/ruby/shell/commands/get_table.rb | 4 +- .../src/main/ruby/shell/commands/grant.rb | 9 +- .../src/main/ruby/shell/commands/incr.rb | 12 +- .../main/ruby/shell/commands/is_disabled.rb | 8 +- .../main/ruby/shell/commands/is_enabled.rb | 8 +- .../src/main/ruby/shell/commands/list.rb | 3 +- .../main/ruby/shell/commands/list_labels.rb | 8 +- .../ruby/shell/commands/list_namespace.rb | 3 +- .../shell/commands/list_namespace_tables.rb | 4 +- .../ruby/shell/commands/list_peer_configs.rb | 19 +- .../main/ruby/shell/commands/list_peers.rb | 4 +- .../ruby/shell/commands/list_procedures.rb | 3 +- .../main/ruby/shell/commands/list_quotas.rb | 3 +- .../shell/commands/list_replicated_tables.rb | 4 +- .../ruby/shell/commands/list_snapshots.rb | 3 +- .../shell/commands/list_table_snapshots.rb | 3 +- .../main/ruby/shell/commands/locate_region.rb | 5 +- .../main/ruby/shell/commands/major_compact.rb | 4 +- .../main/ruby/shell/commands/merge_region.rb | 4 +- .../src/main/ruby/shell/commands/move.rb | 4 +- .../src/main/ruby/shell/commands/normalize.rb | 6 +- .../ruby/shell/commands/normalizer_enabled.rb | 6 +- .../ruby/shell/commands/normalizer_switch.rb | 6 +- .../src/main/ruby/shell/commands/put.rb | 5 +- .../main/ruby/shell/commands/remove_peer.rb | 4 +- .../shell/commands/remove_peer_tableCFs.rb | 4 +- .../ruby/shell/commands/restore_snapshot.rb | 4 +- .../src/main/ruby/shell/commands/revoke.rb | 4 +- .../src/main/ruby/shell/commands/scan.rb | 5 +- .../src/main/ruby/shell/commands/set_auths.rb | 4 +- .../ruby/shell/commands/set_peer_tableCFs.rb | 4 +- .../ruby/shell/commands/set_visibility.rb | 4 +- .../main/ruby/shell/commands/show_filters.rb | 1 + .../ruby/shell/commands/show_peer_tableCFs.rb | 4 +- .../src/main/ruby/shell/commands/snapshot.rb | 4 +- .../src/main/ruby/shell/commands/split.rb | 4 +- .../shell/commands/splitormerge_enabled.rb | 8 +- .../shell/commands/splitormerge_switch.rb | 8 +- .../src/main/ruby/shell/commands/trace.rb | 4 +- .../src/main/ruby/shell/commands/truncate.rb | 5 +- .../ruby/shell/commands/truncate_preserve.rb | 5 +- .../src/main/ruby/shell/commands/unassign.rb | 4 +- .../ruby/shell/commands/update_all_config.rb | 4 +- .../main/ruby/shell/commands/update_config.rb | 4 +- .../ruby/shell/commands/update_peer_config.rb | 4 +- .../ruby/shell/commands/user_permission.rb | 4 +- .../src/main/ruby/shell/commands/wal_roll.rb | 5 +- hbase-shell/src/main/ruby/shell/formatter.rb | 11 +- .../hbase/client/TestReplicationShell.java | 2 +- hbase-shell/src/test/ruby/hbase/admin_test.rb | 221 +++++++++--------- .../test/ruby/hbase/replication_admin_test.rb | 120 +++++----- .../hbase/visibility_labels_admin_test.rb | 20 +- .../src/test/ruby/shell/formatter_test.rb | 2 +- hbase-shell/src/test/ruby/shell/shell_test.rb | 12 +- hbase-shell/src/test/ruby/test_helper.rb | 25 +- 102 files changed, 564 insertions(+), 423 deletions(-) diff --git a/hbase-shell/src/main/ruby/hbase/admin.rb b/hbase-shell/src/main/ruby/hbase/admin.rb index db2edd1c457..21e0652c467 100644 --- a/hbase-shell/src/main/ruby/hbase/admin.rb +++ b/hbase-shell/src/main/ruby/hbase/admin.rb @@ -423,26 +423,25 @@ module Hbase #---------------------------------------------------------------------------------------------- # Truncates table (deletes all records by recreating the table) - def truncate(table_name_str) - puts "Truncating '#{table_name_str}' table (it may take a while):" - table_name = TableName.valueOf(table_name_str) - table_description = @admin.getTableDescriptor(table_name) + def truncate(table_name, conf = @conf) + table_description = @admin.getTableDescriptor(TableName.valueOf(table_name)) raise ArgumentError, "Table #{table_name} is not enabled. Enable it first." unless enabled?(table_name) - puts 'Disabling table...' + yield 'Disabling table...' if block_given? @admin.disableTable(table_name) + begin - puts 'Truncating table...' - @admin.truncateTable(table_name, false) + yield 'Truncating table...' if block_given? + @admin.truncateTable(org.apache.hadoop.hbase.TableName.valueOf(table_name), false) rescue => e # Handle the compatibility case, where the truncate method doesn't exists on the Master raise e unless e.respond_to?(:cause) && e.cause != nil rootCause = e.cause if rootCause.kind_of?(org.apache.hadoop.hbase.DoNotRetryIOException) then # Handle the compatibility case, where the truncate method doesn't exists on the Master - puts 'Dropping table...' - @admin.deleteTable(table_name) + yield 'Dropping table...' if block_given? + @admin.deleteTable(org.apache.hadoop.hbase.TableName.valueOf(table_name)) - puts 'Creating table...' + yield 'Creating table...' if block_given? @admin.createTable(table_description) else raise e @@ -452,10 +451,9 @@ module Hbase #---------------------------------------------------------------------------------------------- # Truncates table while maintaing region boundaries (deletes all records by recreating the table) - def truncate_preserve(table_name_str) - puts "Truncating '#{table_name_str}' table (it may take a while):" - table_name = TableName.valueOf(table_name_str) - locator = @connection.getRegionLocator(table_name) + def truncate_preserve(table_name, conf = @conf) + h_table = @connection.getTable(TableName.valueOf(table_name)) + locator = @connection.getRegionLocator(TableName.valueOf(table_name)) begin splits = locator.getAllRegionLocations(). map{|i| Bytes.toString(i.getRegionInfo().getStartKey)}. @@ -464,23 +462,23 @@ module Hbase locator.close() end - table_description = @admin.getTableDescriptor(table_name) - puts 'Disabling table...' + table_description = @admin.getTableDescriptor(TableName.valueOf(table_name)) + yield 'Disabling table...' if block_given? disable(table_name) begin - puts 'Truncating table...' - @admin.truncateTable(table_name, true) + yield 'Truncating table...' if block_given? + @admin.truncateTable(org.apache.hadoop.hbase.TableName.valueOf(table_name), true) rescue => e # Handle the compatibility case, where the truncate method doesn't exists on the Master raise e unless e.respond_to?(:cause) && e.cause != nil rootCause = e.cause if rootCause.kind_of?(org.apache.hadoop.hbase.DoNotRetryIOException) then # Handle the compatibility case, where the truncate method doesn't exists on the Master - puts 'Dropping table...' - @admin.deleteTable(table_name) + yield 'Dropping table...' if block_given? + @admin.deleteTable(org.apache.hadoop.hbase.TableName.valueOf(table_name)) - puts 'Creating table with region boundaries...' + yield 'Creating table with region boundaries...' if block_given? @admin.createTable(table_description, splits) else raise e diff --git a/hbase-shell/src/main/ruby/hbase/table.rb b/hbase-shell/src/main/ruby/hbase/table.rb index 8ea1706e2e2..7c47dc430ae 100644 --- a/hbase-shell/src/main/ruby/hbase/table.rb +++ b/hbase-shell/src/main/ruby/hbase/table.rb @@ -710,7 +710,6 @@ EOF map{|i| Bytes.toStringBinary(i.getRegionInfo().getStartKey)}.delete_if{|k| k == ""} locator.close() puts("Total number of splits = %s" % [splits.size + 1]) - puts splits return splits end end diff --git a/hbase-shell/src/main/ruby/shell.rb b/hbase-shell/src/main/ruby/shell.rb index 415e9894937..a39b6175b0c 100644 --- a/hbase-shell/src/main/ruby/shell.rb +++ b/hbase-shell/src/main/ruby/shell.rb @@ -81,9 +81,8 @@ module Shell self.interactive = interactive end - # Returns Admin class from admin.rb - def admin - @admin ||= hbase.admin() + def hbase_admin + @hbase_admin ||= hbase.admin() end def hbase_taskmonitor @@ -130,17 +129,9 @@ module Shell ::Shell.commands[command.to_s].new(self) end - # call the method 'command' on the specified command - # If interactive is enabled, then we suppress the return value. The command should have - # printed relevant output. - # Return value is only useful in non-interactive mode, for e.g. tests. + #call the method 'command' on the specified command def command(command, *args) - ret = internal_command(command, :command, *args) - if self.interactive - return nil - else - return ret - end + internal_command(command, :command, *args) end # call a specific internal method in the command instance @@ -148,7 +139,7 @@ module Shell # method_name - name of the method on the command to call. Defaults to just 'command' # args - to be passed to the named method def internal_command(command, method_name= :command, *args) - command_instance(command).command_safe(self.debug, method_name, *args) + command_instance(command).command_safe(self.debug,method_name, *args) end def print_banner diff --git a/hbase-shell/src/main/ruby/shell/commands.rb b/hbase-shell/src/main/ruby/shell/commands.rb index e4c029e6307..d580f5e7952 100644 --- a/hbase-shell/src/main/ruby/shell/commands.rb +++ b/hbase-shell/src/main/ruby/shell/commands.rb @@ -17,8 +17,6 @@ # limitations under the License. # -require 'shell/formatter' - module Shell module Commands class Command @@ -31,12 +29,9 @@ module Shell # cmd - command name to execute # args - arguments to pass to the command def command_safe(debug, cmd = :command, *args) - # Commands can overwrite start_time to skip time used in some kind of setup. - # See count.rb for example. - @start_time = Time.now # send is internal ruby method to call 'cmd' with *args #(everything is a message, so this is just the formal semantics to support that idiom) - translate_hbase_exceptions(*args) { send(cmd, *args) } + translate_hbase_exceptions(*args) { send(cmd,*args) } rescue => e rootCause = e while rootCause != nil && rootCause.respond_to?(:cause) && rootCause.cause != nil @@ -53,16 +48,13 @@ module Shell else raise rootCause end - ensure - # If end_time is not already set by the command, use current time. - @end_time ||= Time.now - formatter.output_str("Took %.4f seconds" % [@end_time - @start_time]) end # Convenience functions to get different admins + # Returns HBase::Admin ruby class. def admin - @shell.admin + @shell.hbase_admin end def taskmonitor @@ -95,6 +87,21 @@ module Shell @formatter ||= ::Shell::Formatter::Console.new end + def format_simple_command + now = Time.now + yield + formatter.header + formatter.footer(now) + end + + def format_and_return_simple_command + now = Time.now + ret = yield + formatter.header + formatter.footer(now) + return ret + end + def translate_hbase_exceptions(*args) yield rescue => e diff --git a/hbase-shell/src/main/ruby/shell/commands/abort_procedure.rb b/hbase-shell/src/main/ruby/shell/commands/abort_procedure.rb index e69e1339c4a..6f77ab7059c 100644 --- a/hbase-shell/src/main/ruby/shell/commands/abort_procedure.rb +++ b/hbase-shell/src/main/ruby/shell/commands/abort_procedure.rb @@ -40,7 +40,11 @@ EOF end def command(proc_id, may_interrupt_if_running=nil) - formatter.row([admin.abort_procedure?(proc_id, may_interrupt_if_running).to_s]) + format_simple_command do + formatter.row([ + admin.abort_procedure?(proc_id, may_interrupt_if_running).to_s + ]) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/add_labels.rb b/hbase-shell/src/main/ruby/shell/commands/add_labels.rb index 7bde5fb1c50..65a1140f240 100644 --- a/hbase-shell/src/main/ruby/shell/commands/add_labels.rb +++ b/hbase-shell/src/main/ruby/shell/commands/add_labels.rb @@ -31,7 +31,9 @@ EOF end def command(*args) - visibility_labels_admin.add_labels(args) + format_simple_command do + visibility_labels_admin.add_labels(args) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/add_peer.rb b/hbase-shell/src/main/ruby/shell/commands/add_peer.rb index b8e8bb26e81..0fcdd3df3d9 100644 --- a/hbase-shell/src/main/ruby/shell/commands/add_peer.rb +++ b/hbase-shell/src/main/ruby/shell/commands/add_peer.rb @@ -58,7 +58,9 @@ EOF end def command(id, args = {}, peer_tableCFs = nil) - replication_admin.add_peer(id, args, peer_tableCFs) + format_simple_command do + replication_admin.add_peer(id, args, peer_tableCFs) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/alter.rb b/hbase-shell/src/main/ruby/shell/commands/alter.rb index 91b3e2e4cdb..2c3aa6f872b 100644 --- a/hbase-shell/src/main/ruby/shell/commands/alter.rb +++ b/hbase-shell/src/main/ruby/shell/commands/alter.rb @@ -92,7 +92,9 @@ EOF end def command(table, *args) - admin.alter(table, true, *args) + format_simple_command do + admin.alter(table, true, *args) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/alter_async.rb b/hbase-shell/src/main/ruby/shell/commands/alter_async.rb index e0f6debb2aa..bddff010a28 100644 --- a/hbase-shell/src/main/ruby/shell/commands/alter_async.rb +++ b/hbase-shell/src/main/ruby/shell/commands/alter_async.rb @@ -56,7 +56,9 @@ EOF end def command(table, *args) - admin.alter(table, false, *args) + format_simple_command do + admin.alter(table, false, *args) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/alter_namespace.rb b/hbase-shell/src/main/ruby/shell/commands/alter_namespace.rb index 0051c7f11ef..a16e10d8ffa 100644 --- a/hbase-shell/src/main/ruby/shell/commands/alter_namespace.rb +++ b/hbase-shell/src/main/ruby/shell/commands/alter_namespace.rb @@ -35,7 +35,9 @@ EOF end def command(namespace, *args) - admin.alter_namespace(namespace, *args) + format_simple_command do + admin.alter_namespace(namespace, *args) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/append.rb b/hbase-shell/src/main/ruby/shell/commands/append.rb index 93a43174365..a0ef36d28e0 100644 --- a/hbase-shell/src/main/ruby/shell/commands/append.rb +++ b/hbase-shell/src/main/ruby/shell/commands/append.rb @@ -35,14 +35,14 @@ t to table 't1', the corresponding command would be: EOF end - def command(table_name, row, column, value, args={}) - table = table(table_name) - @start_time = Time.now - append(table, row, column, value, args) + def command(table, row, column, value, args={}) + append(table(table), row, column, value, args) end def append(table, row, column, value, args={}) - table._append_internal(row, column, value, args) + format_simple_command do + table._append_internal(row, column, value, args) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/append_peer_tableCFs.rb b/hbase-shell/src/main/ruby/shell/commands/append_peer_tableCFs.rb index 3fe5befe06c..3919b203170 100644 --- a/hbase-shell/src/main/ruby/shell/commands/append_peer_tableCFs.rb +++ b/hbase-shell/src/main/ruby/shell/commands/append_peer_tableCFs.rb @@ -32,7 +32,9 @@ EOF end def command(id, table_cfs) - replication_admin.append_peer_tableCFs(id, table_cfs) + format_simple_command do + replication_admin.append_peer_tableCFs(id, table_cfs) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/assign.rb b/hbase-shell/src/main/ruby/shell/commands/assign.rb index 1220bf1e060..448a5460b4e 100644 --- a/hbase-shell/src/main/ruby/shell/commands/assign.rb +++ b/hbase-shell/src/main/ruby/shell/commands/assign.rb @@ -32,7 +32,9 @@ EOF end def command(region_name) - admin.assign(region_name) + format_simple_command do + admin.assign(region_name) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/balance_switch.rb b/hbase-shell/src/main/ruby/shell/commands/balance_switch.rb index 107d26748fa..4d7778daa41 100644 --- a/hbase-shell/src/main/ruby/shell/commands/balance_switch.rb +++ b/hbase-shell/src/main/ruby/shell/commands/balance_switch.rb @@ -31,7 +31,11 @@ EOF end def command(enableDisable) - formatter.row([admin.balance_switch(enableDisable)? "true" : "false"]) + format_simple_command do + formatter.row([ + admin.balance_switch(enableDisable)? "true" : "false" + ]) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/balancer.rb b/hbase-shell/src/main/ruby/shell/commands/balancer.rb index a7490a51c65..ee53ca000f4 100644 --- a/hbase-shell/src/main/ruby/shell/commands/balancer.rb +++ b/hbase-shell/src/main/ruby/shell/commands/balancer.rb @@ -38,13 +38,15 @@ EOF end def command(force=nil) - force_balancer = 'false' - if force == 'force' - force_balancer = 'true' - elsif !force.nil? - raise ArgumentError, "Invalid argument #{force}." + format_simple_command do + formatter.row([ + if force.nil? + admin.balancer("false")? "true": "false" + elsif force == "force" + admin.balancer("true")? "true": "false" + end + ]) end - formatter.row([admin.balancer(force_balancer)? "true": "false"]) end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/balancer_enabled.rb b/hbase-shell/src/main/ruby/shell/commands/balancer_enabled.rb index 6a75ab54fe7..3b2f5c64fe5 100644 --- a/hbase-shell/src/main/ruby/shell/commands/balancer_enabled.rb +++ b/hbase-shell/src/main/ruby/shell/commands/balancer_enabled.rb @@ -30,7 +30,11 @@ EOF end def command() - formatter.row([admin.balancer_enabled?.to_s]) + format_simple_command do + formatter.row([ + admin.balancer_enabled?.to_s + ]) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/catalogjanitor_enabled.rb b/hbase-shell/src/main/ruby/shell/commands/catalogjanitor_enabled.rb index fdeb67e857f..b310c3a7ab0 100644 --- a/hbase-shell/src/main/ruby/shell/commands/catalogjanitor_enabled.rb +++ b/hbase-shell/src/main/ruby/shell/commands/catalogjanitor_enabled.rb @@ -29,7 +29,11 @@ EOF end def command() - formatter.row([admin.catalogjanitor_enabled()? "true" : "false"]) + format_simple_command do + formatter.row([ + admin.catalogjanitor_enabled()? "true" : "false" + ]) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/catalogjanitor_run.rb b/hbase-shell/src/main/ruby/shell/commands/catalogjanitor_run.rb index 638a18f4d51..03426cb4f14 100644 --- a/hbase-shell/src/main/ruby/shell/commands/catalogjanitor_run.rb +++ b/hbase-shell/src/main/ruby/shell/commands/catalogjanitor_run.rb @@ -28,7 +28,9 @@ Catalog janitor command to run the (garbage collection) scan from command line. EOF end def command() - admin.catalogjanitor_run() + format_simple_command do + admin.catalogjanitor_run() + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/catalogjanitor_switch.rb b/hbase-shell/src/main/ruby/shell/commands/catalogjanitor_switch.rb index d2d8e58696c..fce1925eecb 100644 --- a/hbase-shell/src/main/ruby/shell/commands/catalogjanitor_switch.rb +++ b/hbase-shell/src/main/ruby/shell/commands/catalogjanitor_switch.rb @@ -30,7 +30,11 @@ EOF end def command(enableDisable) - formatter.row([admin.catalogjanitor_switch(enableDisable)? "true" : "false"]) + format_simple_command do + formatter.row([ + admin.catalogjanitor_switch(enableDisable)? "true" : "false" + ]) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/clear_auths.rb b/hbase-shell/src/main/ruby/shell/commands/clear_auths.rb index be56d5d1095..8553fa64713 100644 --- a/hbase-shell/src/main/ruby/shell/commands/clear_auths.rb +++ b/hbase-shell/src/main/ruby/shell/commands/clear_auths.rb @@ -31,7 +31,9 @@ EOF end def command(user, *args) - visibility_labels_admin.clear_auths(user, args) + format_simple_command do + visibility_labels_admin.clear_auths(user, args) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/clone_snapshot.rb b/hbase-shell/src/main/ruby/shell/commands/clone_snapshot.rb index c57e87f41e4..0498c8e3e4f 100644 --- a/hbase-shell/src/main/ruby/shell/commands/clone_snapshot.rb +++ b/hbase-shell/src/main/ruby/shell/commands/clone_snapshot.rb @@ -32,7 +32,9 @@ EOF end def command(snapshot_name, table) - admin.clone_snapshot(snapshot_name, table) + format_simple_command do + admin.clone_snapshot(snapshot_name, table) + end end def handle_exceptions(cause, *args) diff --git a/hbase-shell/src/main/ruby/shell/commands/close_region.rb b/hbase-shell/src/main/ruby/shell/commands/close_region.rb index 368a2507022..9e2900c31be 100644 --- a/hbase-shell/src/main/ruby/shell/commands/close_region.rb +++ b/hbase-shell/src/main/ruby/shell/commands/close_region.rb @@ -52,7 +52,9 @@ EOF end def command(region_name, server = nil) - admin.close_region(region_name, server) + format_simple_command do + admin.close_region(region_name, server) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/compact.rb b/hbase-shell/src/main/ruby/shell/commands/compact.rb index d59e3b30605..adeffa2d034 100644 --- a/hbase-shell/src/main/ruby/shell/commands/compact.rb +++ b/hbase-shell/src/main/ruby/shell/commands/compact.rb @@ -39,7 +39,9 @@ module Shell end def command(table_or_region_name, family = nil) - admin.compact(table_or_region_name, family) + format_simple_command do + admin.compact(table_or_region_name, family) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/compact_rs.rb b/hbase-shell/src/main/ruby/shell/commands/compact_rs.rb index 588b6fe1caa..0ecdd21113f 100644 --- a/hbase-shell/src/main/ruby/shell/commands/compact_rs.rb +++ b/hbase-shell/src/main/ruby/shell/commands/compact_rs.rb @@ -34,7 +34,9 @@ module Shell end def command(regionserver, major = false) - admin.compactRegionserver(regionserver, major) + format_simple_command do + admin.compact_regionserver(regionserver, major) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/count.rb b/hbase-shell/src/main/ruby/shell/commands/count.rb index 36250a6202c..225005ee36e 100644 --- a/hbase-shell/src/main/ruby/shell/commands/count.rb +++ b/hbase-shell/src/main/ruby/shell/commands/count.rb @@ -61,12 +61,12 @@ EOF }.merge(params) # Call the counter method - @start_time = Time.now + now = Time.now formatter.header count = table._count_internal(params['INTERVAL'].to_i, params['CACHE'].to_i) do |cnt, row| formatter.row([ "Current count: #{cnt}, row: #{row}" ]) end - formatter.footer(count) + formatter.footer(now, count) return count end end diff --git a/hbase-shell/src/main/ruby/shell/commands/create.rb b/hbase-shell/src/main/ruby/shell/commands/create.rb index 7857c2ded31..a5a125e15b1 100644 --- a/hbase-shell/src/main/ruby/shell/commands/create.rb +++ b/hbase-shell/src/main/ruby/shell/commands/create.rb @@ -62,11 +62,10 @@ EOF end def command(table, *args) - admin.create(table, *args) - @end_time = Time.now - puts "Created table " + table.to_s - - #and then return the table just created + format_simple_command do + ret = admin.create(table, *args) + end + #and then return the table you just created table(table) end end diff --git a/hbase-shell/src/main/ruby/shell/commands/create_namespace.rb b/hbase-shell/src/main/ruby/shell/commands/create_namespace.rb index d478fc1665d..adb6897b719 100644 --- a/hbase-shell/src/main/ruby/shell/commands/create_namespace.rb +++ b/hbase-shell/src/main/ruby/shell/commands/create_namespace.rb @@ -32,7 +32,9 @@ EOF end def command(namespace, *args) - admin.create_namespace(namespace, *args) + format_simple_command do + admin.create_namespace(namespace, *args) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/delete.rb b/hbase-shell/src/main/ruby/shell/commands/delete.rb index bce66255317..dcb83414f62 100644 --- a/hbase-shell/src/main/ruby/shell/commands/delete.rb +++ b/hbase-shell/src/main/ruby/shell/commands/delete.rb @@ -40,15 +40,16 @@ t to table 't1', the corresponding command would be: EOF end - def command(table, row, column, - timestamp = org.apache.hadoop.hbase.HConstants::LATEST_TIMESTAMP, args = {}) + def command(table, row, column, + timestamp = org.apache.hadoop.hbase.HConstants::LATEST_TIMESTAMP, args = {}) delete(table(table), row, column, timestamp, args) end - def delete(table, row, column, - timestamp = org.apache.hadoop.hbase.HConstants::LATEST_TIMESTAMP, args = {}) - @start_time = Time.now - table._delete_internal(row, column, timestamp, args) + def delete(table, row, column, + timestamp = org.apache.hadoop.hbase.HConstants::LATEST_TIMESTAMP, args = {}) + format_simple_command do + table._delete_internal(row, column, timestamp, args) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/delete_all_snapshot.rb b/hbase-shell/src/main/ruby/shell/commands/delete_all_snapshot.rb index 5a77f7398ab..bc072597bb2 100644 --- a/hbase-shell/src/main/ruby/shell/commands/delete_all_snapshot.rb +++ b/hbase-shell/src/main/ruby/shell/commands/delete_all_snapshot.rb @@ -41,9 +41,9 @@ EOF answer = gets.chomp unless count == 0 puts "No snapshots matched the regex #{regex.to_s}" if count == 0 return unless answer =~ /y.*/i - @start_time = Time.now - admin.delete_all_snapshot(regex) - @end_time = Time.now + format_simple_command do + admin.delete_all_snapshot(regex) + end list = admin.list_snapshot(regex) leftOverSnapshotCount = list.size successfullyDeleted = count - leftOverSnapshotCount diff --git a/hbase-shell/src/main/ruby/shell/commands/delete_snapshot.rb b/hbase-shell/src/main/ruby/shell/commands/delete_snapshot.rb index 48059b0d3e0..b8c3791a540 100644 --- a/hbase-shell/src/main/ruby/shell/commands/delete_snapshot.rb +++ b/hbase-shell/src/main/ruby/shell/commands/delete_snapshot.rb @@ -28,7 +28,9 @@ EOF end def command(snapshot_name) - admin.delete_snapshot(snapshot_name) + format_simple_command do + admin.delete_snapshot(snapshot_name) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/delete_table_snapshots.rb b/hbase-shell/src/main/ruby/shell/commands/delete_table_snapshots.rb index 89936f18cdd..dc4e0a235f0 100644 --- a/hbase-shell/src/main/ruby/shell/commands/delete_table_snapshots.rb +++ b/hbase-shell/src/main/ruby/shell/commands/delete_table_snapshots.rb @@ -51,15 +51,16 @@ EOF puts "No snapshots matched the table name regular expression #{tableNameregex.to_s} and the snapshot name regular expression #{snapshotNameRegex.to_s}" if count == 0 return unless answer =~ /y.*/i - @start_time = Time.now - list.each do |deleteSnapshot| - begin - admin.delete_snapshot(deleteSnapshot.getName) - puts "Successfully deleted snapshot: #{deleteSnapshot.getName}" - puts "\n" - rescue RuntimeError - puts "Failed to delete snapshot: #{deleteSnapshot.getName}, due to below exception,\n" + $! - puts "\n" + format_simple_command do + list.each do |deleteSnapshot| + begin + admin.delete_snapshot(deleteSnapshot.getName) + puts "Successfully deleted snapshot: #{deleteSnapshot.getName}" + puts "\n" + rescue RuntimeError + puts "Failed to delete snapshot: #{deleteSnapshot.getName}, due to below exception,\n" + $! + puts "\n" + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/deleteall.rb b/hbase-shell/src/main/ruby/shell/commands/deleteall.rb index 2965403d882..e6118c9144b 100644 --- a/hbase-shell/src/main/ruby/shell/commands/deleteall.rb +++ b/hbase-shell/src/main/ruby/shell/commands/deleteall.rb @@ -48,8 +48,9 @@ EOF def deleteall(table, row, column = nil, timestamp = org.apache.hadoop.hbase.HConstants::LATEST_TIMESTAMP, args = {}) - @start_time = Time.now - table._deleteall_internal(row, column, timestamp, args) + format_simple_command do + table._deleteall_internal(row, column, timestamp, args) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/describe.rb b/hbase-shell/src/main/ruby/shell/commands/describe.rb index 37938a7c89a..bfa16cdc2da 100644 --- a/hbase-shell/src/main/ruby/shell/commands/describe.rb +++ b/hbase-shell/src/main/ruby/shell/commands/describe.rb @@ -33,6 +33,8 @@ EOF end def command(table) + now = Time.now + column_families = admin.get_column_families(table) formatter.header(["Table " + table.to_s + " is " + if admin.enabled?(table) then "ENABLED" else "DISABLED" end]) @@ -41,7 +43,7 @@ EOF column_families.each do |column_family| formatter.row([ column_family.to_s ], true) end - formatter.footer() + formatter.footer(now) end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/describe_namespace.rb b/hbase-shell/src/main/ruby/shell/commands/describe_namespace.rb index ebd9bd2a593..cf135da5584 100644 --- a/hbase-shell/src/main/ruby/shell/commands/describe_namespace.rb +++ b/hbase-shell/src/main/ruby/shell/commands/describe_namespace.rb @@ -28,10 +28,13 @@ EOF end def command(namespace) + now = Time.now + desc = admin.describe_namespace(namespace) formatter.header([ "DESCRIPTION" ], [ 64 ]) formatter.row([ desc ], true, [ 64 ]) + formatter.footer(now) end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/disable.rb b/hbase-shell/src/main/ruby/shell/commands/disable.rb index 66950020085..79bcd864f7f 100644 --- a/hbase-shell/src/main/ruby/shell/commands/disable.rb +++ b/hbase-shell/src/main/ruby/shell/commands/disable.rb @@ -29,7 +29,9 @@ EOF end def command(table) - admin.disable(table) + format_simple_command do + admin.disable(table) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/disable_peer.rb b/hbase-shell/src/main/ruby/shell/commands/disable_peer.rb index c193f13864a..416545b21fb 100644 --- a/hbase-shell/src/main/ruby/shell/commands/disable_peer.rb +++ b/hbase-shell/src/main/ruby/shell/commands/disable_peer.rb @@ -32,7 +32,9 @@ EOF end def command(id) - replication_admin.disable_peer(id) + format_simple_command do + replication_admin.disable_peer(id) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/disable_table_replication.rb b/hbase-shell/src/main/ruby/shell/commands/disable_table_replication.rb index a020d81a30e..5bf96679493 100644 --- a/hbase-shell/src/main/ruby/shell/commands/disable_table_replication.rb +++ b/hbase-shell/src/main/ruby/shell/commands/disable_table_replication.rb @@ -30,8 +30,10 @@ EOF end def command(table_name) - replication_admin.disable_tablerep(table_name) - puts "Replication of table '#{table_name}' successfully disabled." + format_simple_command do + replication_admin.disable_tablerep(table_name) + end + puts "The replication swith of table '#{table_name}' successfully disabled" end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/drop.rb b/hbase-shell/src/main/ruby/shell/commands/drop.rb index 3f7332c59cc..fc7b1344686 100644 --- a/hbase-shell/src/main/ruby/shell/commands/drop.rb +++ b/hbase-shell/src/main/ruby/shell/commands/drop.rb @@ -29,7 +29,9 @@ EOF end def command(table) - admin.drop(table) + format_simple_command do + admin.drop(table) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/drop_namespace.rb b/hbase-shell/src/main/ruby/shell/commands/drop_namespace.rb index 392f24789b9..b030d279c77 100644 --- a/hbase-shell/src/main/ruby/shell/commands/drop_namespace.rb +++ b/hbase-shell/src/main/ruby/shell/commands/drop_namespace.rb @@ -27,7 +27,9 @@ EOF end def command(namespace) - admin.drop_namespace(namespace) + format_simple_command do + admin.drop_namespace(namespace) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/enable.rb b/hbase-shell/src/main/ruby/shell/commands/enable.rb index 5d21219c85b..deeb70cce25 100644 --- a/hbase-shell/src/main/ruby/shell/commands/enable.rb +++ b/hbase-shell/src/main/ruby/shell/commands/enable.rb @@ -29,7 +29,9 @@ EOF end def command(table) - admin.enable(table) + format_simple_command do + admin.enable(table) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/enable_peer.rb b/hbase-shell/src/main/ruby/shell/commands/enable_peer.rb index 5f1a7273737..55136ffb7fb 100644 --- a/hbase-shell/src/main/ruby/shell/commands/enable_peer.rb +++ b/hbase-shell/src/main/ruby/shell/commands/enable_peer.rb @@ -32,7 +32,9 @@ EOF end def command(id) - replication_admin.enable_peer(id) + format_simple_command do + replication_admin.enable_peer(id) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/enable_table_replication.rb b/hbase-shell/src/main/ruby/shell/commands/enable_table_replication.rb index e4e2fc1fbbe..15e3133a895 100644 --- a/hbase-shell/src/main/ruby/shell/commands/enable_table_replication.rb +++ b/hbase-shell/src/main/ruby/shell/commands/enable_table_replication.rb @@ -30,8 +30,10 @@ EOF end def command(table_name) - replication_admin.enable_tablerep(table_name) - puts "The replication of table '#{table_name}' successfully enabled" + format_simple_command do + replication_admin.enable_tablerep(table_name) + end + puts "The replication swith of table '#{table_name}' successfully enabled" end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/exists.rb b/hbase-shell/src/main/ruby/shell/commands/exists.rb index 4eb13a47044..bacf6c94c44 100644 --- a/hbase-shell/src/main/ruby/shell/commands/exists.rb +++ b/hbase-shell/src/main/ruby/shell/commands/exists.rb @@ -29,11 +29,11 @@ EOF end def command(table) - exists = admin.exists?(table.to_s) - formatter.row([ - "Table #{table} " + (exists ? "does exist" : "does not exist") + format_simple_command do + formatter.row([ + "Table #{table} " + (admin.exists?(table.to_s) ? "does exist" : "does not exist") ]) - exists + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/flush.rb b/hbase-shell/src/main/ruby/shell/commands/flush.rb index 13963e19d1c..2aefec52e9d 100644 --- a/hbase-shell/src/main/ruby/shell/commands/flush.rb +++ b/hbase-shell/src/main/ruby/shell/commands/flush.rb @@ -32,7 +32,9 @@ EOF end def command(table_or_region_name) - admin.flush(table_or_region_name) + format_simple_command do + admin.flush(table_or_region_name) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/get.rb b/hbase-shell/src/main/ruby/shell/commands/get.rb index 8191c22cea5..b8bfd5204ca 100644 --- a/hbase-shell/src/main/ruby/shell/commands/get.rb +++ b/hbase-shell/src/main/ruby/shell/commands/get.rb @@ -81,14 +81,14 @@ EOF end def get(table, row, *args) - @start_time = Time.now + now = Time.now formatter.header(["COLUMN", "CELL"]) count, is_stale = table._get_internal(row, *args) do |column, value| formatter.row([ column, value ]) end - formatter.footer(count, is_stale) + formatter.footer(now, count, is_stale) end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/get_auths.rb b/hbase-shell/src/main/ruby/shell/commands/get_auths.rb index 4ea1b2ec13d..1b758ef9495 100644 --- a/hbase-shell/src/main/ruby/shell/commands/get_auths.rb +++ b/hbase-shell/src/main/ruby/shell/commands/get_auths.rb @@ -31,11 +31,12 @@ EOF end def command(user) - list = visibility_labels_admin.get_auths(user) - list.each do |auths| - formatter.row([org.apache.hadoop.hbase.util.Bytes::toStringBinary(auths.toByteArray)]) + format_simple_command do + list = visibility_labels_admin.get_auths(user) + list.each do |auths| + formatter.row([org.apache.hadoop.hbase.util.Bytes::toStringBinary(auths.toByteArray)]) + end end - list end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/get_peer_config.rb b/hbase-shell/src/main/ruby/shell/commands/get_peer_config.rb index 6417980b909..ee02229c468 100644 --- a/hbase-shell/src/main/ruby/shell/commands/get_peer_config.rb +++ b/hbase-shell/src/main/ruby/shell/commands/get_peer_config.rb @@ -25,10 +25,10 @@ module Shell end def command(id) - peer_config = replication_admin.get_peer_config(id) - @start_time = Time.now - format_peer_config(peer_config) - peer_config + peer_config = replication_admin.get_peer_config(id) + format_simple_command do + format_peer_config(peer_config) + end end def format_peer_config(peer_config) diff --git a/hbase-shell/src/main/ruby/shell/commands/get_table.rb b/hbase-shell/src/main/ruby/shell/commands/get_table.rb index 2270f43f958..43e7c1af708 100644 --- a/hbase-shell/src/main/ruby/shell/commands/get_table.rb +++ b/hbase-shell/src/main/ruby/shell/commands/get_table.rb @@ -38,7 +38,9 @@ EOF end def command(table, *args) - table(table) + format_and_return_simple_command do + table(table) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/grant.rb b/hbase-shell/src/main/ruby/shell/commands/grant.rb index 12feb58eb7f..788002647d6 100644 --- a/hbase-shell/src/main/ruby/shell/commands/grant.rb +++ b/hbase-shell/src/main/ruby/shell/commands/grant.rb @@ -74,8 +74,9 @@ EOF end end end - @start_time = Time.now - security_admin.grant(user, permissions, table_name, family, qualifier) + format_simple_command do + security_admin.grant(user, permissions, table_name, family, qualifier) + end elsif args[1].kind_of?(Hash) @@ -91,7 +92,7 @@ EOF raise(ArgumentError, "Scanner specification is not a Hash") unless scan.kind_of?(Hash) t = table(table_name) - @start_time = Time.now + now = Time.now scanner = t._get_scanner(scan) count = 0 iter = scanner.iterator @@ -105,7 +106,7 @@ EOF end count += 1 end - formatter.footer(count) + formatter.footer(now, count) else raise(ArgumentError, "Second argument should be a String or Hash") diff --git a/hbase-shell/src/main/ruby/shell/commands/incr.rb b/hbase-shell/src/main/ruby/shell/commands/incr.rb index 318fac3e722..d223a45aafe 100644 --- a/hbase-shell/src/main/ruby/shell/commands/incr.rb +++ b/hbase-shell/src/main/ruby/shell/commands/incr.rb @@ -49,11 +49,13 @@ EOF end def incr(table, row, column, value = nil, args={}) - if cnt = table._incr_internal(row, column, value, args) - puts "COUNTER VALUE = #{cnt}" - else - puts "No counter found at specified coordinates" - end + format_simple_command do + if cnt = table._incr_internal(row, column, value, args) + puts "COUNTER VALUE = #{cnt}" + else + puts "No counter found at specified coordinates" + end + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/is_disabled.rb b/hbase-shell/src/main/ruby/shell/commands/is_disabled.rb index 6a914e36929..6da7046ba79 100644 --- a/hbase-shell/src/main/ruby/shell/commands/is_disabled.rb +++ b/hbase-shell/src/main/ruby/shell/commands/is_disabled.rb @@ -29,8 +29,12 @@ EOF end def command(table) - formatter.row([admin.disabled?(table)? "true" : "false"]) - end + format_simple_command do + formatter.row([ + admin.disabled?(table)? "true" : "false" + ]) + end + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/is_enabled.rb b/hbase-shell/src/main/ruby/shell/commands/is_enabled.rb index da9c5667bfb..960ade75724 100644 --- a/hbase-shell/src/main/ruby/shell/commands/is_enabled.rb +++ b/hbase-shell/src/main/ruby/shell/commands/is_enabled.rb @@ -29,9 +29,11 @@ EOF end def command(table) - enabled = admin.enabled?(table) - formatter.row([enabled ? "true" : "false"]) - enabled + format_simple_command do + formatter.row([ + admin.enabled?(table)? "true" : "false" + ]) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/list.rb b/hbase-shell/src/main/ruby/shell/commands/list.rb index f7a09878f24..dce0ae2acdc 100644 --- a/hbase-shell/src/main/ruby/shell/commands/list.rb +++ b/hbase-shell/src/main/ruby/shell/commands/list.rb @@ -33,6 +33,7 @@ EOF end def command(regex = ".*") + now = Time.now formatter.header([ "TABLE" ]) list = admin.list(regex) @@ -40,7 +41,7 @@ EOF formatter.row([ table ]) end - formatter.footer(list.size) + formatter.footer(now, list.size) return list end end diff --git a/hbase-shell/src/main/ruby/shell/commands/list_labels.rb b/hbase-shell/src/main/ruby/shell/commands/list_labels.rb index 6b730b2c03a..6c7f99137b7 100644 --- a/hbase-shell/src/main/ruby/shell/commands/list_labels.rb +++ b/hbase-shell/src/main/ruby/shell/commands/list_labels.rb @@ -32,9 +32,11 @@ EOF end def command(regex = ".*") - list = visibility_labels_admin.list_labels(regex) - list.each do |label| - formatter.row([org.apache.hadoop.hbase.util.Bytes::toStringBinary(label.toByteArray)]) + format_simple_command do + list = visibility_labels_admin.list_labels(regex) + list.each do |label| + formatter.row([org.apache.hadoop.hbase.util.Bytes::toStringBinary(label.toByteArray)]) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/list_namespace.rb b/hbase-shell/src/main/ruby/shell/commands/list_namespace.rb index 63aeac1de96..5d25604afa7 100644 --- a/hbase-shell/src/main/ruby/shell/commands/list_namespace.rb +++ b/hbase-shell/src/main/ruby/shell/commands/list_namespace.rb @@ -31,6 +31,7 @@ EOF end def command(regex = ".*") + now = Time.now formatter.header([ "NAMESPACE" ]) list = admin.list_namespace(regex) @@ -38,7 +39,7 @@ EOF formatter.row([ table ]) end - formatter.footer(list.size) + formatter.footer(now, list.size) end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/list_namespace_tables.rb b/hbase-shell/src/main/ruby/shell/commands/list_namespace_tables.rb index 30d4db00318..29e18123e6b 100644 --- a/hbase-shell/src/main/ruby/shell/commands/list_namespace_tables.rb +++ b/hbase-shell/src/main/ruby/shell/commands/list_namespace_tables.rb @@ -30,6 +30,7 @@ EOF end def command(namespace) + now = Time.now formatter.header([ "TABLE" ]) list = admin.list_namespace_tables(namespace) @@ -37,8 +38,7 @@ EOF formatter.row([ table ]) end - formatter.footer(list.size) - list + formatter.footer(now, list.size) end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/list_peer_configs.rb b/hbase-shell/src/main/ruby/shell/commands/list_peer_configs.rb index 8946e39b30e..fc6e4a78740 100644 --- a/hbase-shell/src/main/ruby/shell/commands/list_peer_configs.rb +++ b/hbase-shell/src/main/ruby/shell/commands/list_peer_configs.rb @@ -25,17 +25,18 @@ module Shell end def command - peer_configs = replication_admin.list_peer_configs - unless peer_configs.nil? - peer_configs.each do |peer_config_entry| - peer_id = peer_config_entry[0] - peer_config = peer_config_entry[1] - formatter.row(["PeerId", peer_id]) - GetPeerConfig.new(@shell).format_peer_config(peer_config) - formatter.row([" "]) + format_simple_command do + peer_configs = replication_admin.list_peer_configs + unless peer_configs.nil? + peer_configs.each do |peer_config_entry| + peer_id = peer_config_entry[0] + peer_config = peer_config_entry[1] + formatter.row(["PeerId", peer_id]) + GetPeerConfig.new(@shell).format_peer_config(peer_config) + formatter.row([" "]) + end end end - peer_configs end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/list_peers.rb b/hbase-shell/src/main/ruby/shell/commands/list_peers.rb index 72a0704b87f..cc1be044169 100644 --- a/hbase-shell/src/main/ruby/shell/commands/list_peers.rb +++ b/hbase-shell/src/main/ruby/shell/commands/list_peers.rb @@ -30,6 +30,7 @@ EOF end def command() + now = Time.now peers = replication_admin.list_peers formatter.header(["PEER_ID", "CLUSTER_KEY", "STATE", "TABLE_CFS"]) @@ -40,8 +41,7 @@ EOF formatter.row([ e.key, e.value, state, tableCFs ]) end - formatter.footer() - peers + formatter.footer(now) end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/list_procedures.rb b/hbase-shell/src/main/ruby/shell/commands/list_procedures.rb index 83e08c172d2..f407547f34c 100644 --- a/hbase-shell/src/main/ruby/shell/commands/list_procedures.rb +++ b/hbase-shell/src/main/ruby/shell/commands/list_procedures.rb @@ -29,6 +29,7 @@ EOF end def command() + now = Time.now formatter.header([ "Id", "Name", "State", "Start_Time", "Last_Update" ]) list = admin.list_procedures() @@ -38,7 +39,7 @@ EOF formatter.row([ proc.getProcId, proc.getProcName, proc.getProcState, start_time, last_update ]) end - formatter.footer(list.size) + formatter.footer(now, list.size) end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/list_quotas.rb b/hbase-shell/src/main/ruby/shell/commands/list_quotas.rb index 604d833374f..682bb7197c2 100644 --- a/hbase-shell/src/main/ruby/shell/commands/list_quotas.rb +++ b/hbase-shell/src/main/ruby/shell/commands/list_quotas.rb @@ -37,6 +37,7 @@ EOF end def command(args = {}) + now = Time.now formatter.header(["OWNER", "QUOTAS"]) #actually do the scanning @@ -44,7 +45,7 @@ EOF formatter.row([ row, cells ]) end - formatter.footer(count) + formatter.footer(now, count) end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/list_replicated_tables.rb b/hbase-shell/src/main/ruby/shell/commands/list_replicated_tables.rb index 142adfc7a46..0db1d83aeb9 100644 --- a/hbase-shell/src/main/ruby/shell/commands/list_replicated_tables.rb +++ b/hbase-shell/src/main/ruby/shell/commands/list_replicated_tables.rb @@ -31,6 +31,8 @@ EOF end def command(regex = ".*") + now = Time.now + formatter.header([ "TABLE:COLUMNFAMILY", "ReplicationType" ], [ 32 ]) list = replication_admin.list_replicated_tables(regex) list.each do |e| @@ -41,7 +43,7 @@ EOF end formatter.row([e.get(org.apache.hadoop.hbase.client.replication.ReplicationAdmin::TNAME) + ":" + e.get(org.apache.hadoop.hbase.client.replication.ReplicationAdmin::CFNAME), replicateType], true, [32]) end - formatter.footer() + formatter.footer(now) end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/list_snapshots.rb b/hbase-shell/src/main/ruby/shell/commands/list_snapshots.rb index bc917375a86..4e68802f8dd 100644 --- a/hbase-shell/src/main/ruby/shell/commands/list_snapshots.rb +++ b/hbase-shell/src/main/ruby/shell/commands/list_snapshots.rb @@ -34,6 +34,7 @@ EOF end def command(regex = ".*") + now = Time.now formatter.header([ "SNAPSHOT", "TABLE + CREATION TIME"]) list = admin.list_snapshot(regex) @@ -42,7 +43,7 @@ EOF formatter.row([ snapshot.getName, snapshot.getTable + " (" + creation_time + ")" ]) end - formatter.footer(list.size) + formatter.footer(now, list.size) return list.map { |s| s.getName() } end end diff --git a/hbase-shell/src/main/ruby/shell/commands/list_table_snapshots.rb b/hbase-shell/src/main/ruby/shell/commands/list_table_snapshots.rb index 1efcc1776c1..3a32e9e3ea7 100644 --- a/hbase-shell/src/main/ruby/shell/commands/list_table_snapshots.rb +++ b/hbase-shell/src/main/ruby/shell/commands/list_table_snapshots.rb @@ -39,6 +39,7 @@ EOF end def command(tableNameRegex, snapshotNameRegex = ".*") + now = Time.now formatter.header([ "SNAPSHOT", "TABLE + CREATION TIME"]) list = admin.list_table_snapshots(tableNameRegex, snapshotNameRegex) @@ -47,7 +48,7 @@ EOF formatter.row([ snapshot.getName, snapshot.getTable + " (" + creation_time + ")" ]) end - formatter.footer(list.size) + formatter.footer(now, list.size) return list.map { |s| s.getName() } end end diff --git a/hbase-shell/src/main/ruby/shell/commands/locate_region.rb b/hbase-shell/src/main/ruby/shell/commands/locate_region.rb index e2487c1639b..b1e8c7bf485 100644 --- a/hbase-shell/src/main/ruby/shell/commands/locate_region.rb +++ b/hbase-shell/src/main/ruby/shell/commands/locate_region.rb @@ -30,13 +30,14 @@ EOF end def command(table, row_key) + now = Time.now + region_location = admin.locate_region(table, row_key) hri = region_location.getRegionInfo() formatter.header([ "HOST", "REGION" ]) formatter.row([region_location.getHostnamePort(), hri.toString()]) - formatter.footer(1) - region_location + formatter.footer(now, 1) end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/major_compact.rb b/hbase-shell/src/main/ruby/shell/commands/major_compact.rb index f42af6765ca..825748336cf 100644 --- a/hbase-shell/src/main/ruby/shell/commands/major_compact.rb +++ b/hbase-shell/src/main/ruby/shell/commands/major_compact.rb @@ -40,7 +40,9 @@ module Shell end def command(table_or_region_name, family = nil) - admin.major_compact(table_or_region_name, family) + format_simple_command do + admin.major_compact(table_or_region_name, family) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/merge_region.rb b/hbase-shell/src/main/ruby/shell/commands/merge_region.rb index 63f7159e968..6afa2e5b503 100644 --- a/hbase-shell/src/main/ruby/shell/commands/merge_region.rb +++ b/hbase-shell/src/main/ruby/shell/commands/merge_region.rb @@ -40,7 +40,9 @@ EOF end def command(encoded_region_a_name, encoded_region_b_name, force = 'false') - admin.merge_region(encoded_region_a_name, encoded_region_b_name, force) + format_simple_command do + admin.merge_region(encoded_region_a_name, encoded_region_b_name, force) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/move.rb b/hbase-shell/src/main/ruby/shell/commands/move.rb index 24816f3aa62..e6b28288e3f 100644 --- a/hbase-shell/src/main/ruby/shell/commands/move.rb +++ b/hbase-shell/src/main/ruby/shell/commands/move.rb @@ -38,7 +38,9 @@ EOF end def command(encoded_region_name, server_name = nil) - admin.move(encoded_region_name, server_name) + format_simple_command do + admin.move(encoded_region_name, server_name) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/normalize.rb b/hbase-shell/src/main/ruby/shell/commands/normalize.rb index 0a612273f4d..7e6302c8514 100644 --- a/hbase-shell/src/main/ruby/shell/commands/normalize.rb +++ b/hbase-shell/src/main/ruby/shell/commands/normalize.rb @@ -33,7 +33,11 @@ EOF end def command() - formatter.row([admin.normalize()? "true": "false"]) + format_simple_command do + formatter.row([ + admin.normalize()? "true": "false" + ]) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/normalizer_enabled.rb b/hbase-shell/src/main/ruby/shell/commands/normalizer_enabled.rb index d39b7772d92..1121b25eb05 100644 --- a/hbase-shell/src/main/ruby/shell/commands/normalizer_enabled.rb +++ b/hbase-shell/src/main/ruby/shell/commands/normalizer_enabled.rb @@ -30,7 +30,11 @@ EOF end def command() - formatter.row([admin.normalizer_enabled?.to_s]) + format_simple_command do + formatter.row([ + admin.normalizer_enabled?.to_s + ]) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/normalizer_switch.rb b/hbase-shell/src/main/ruby/shell/commands/normalizer_switch.rb index 7a12b71d9bc..6d959c4977a 100644 --- a/hbase-shell/src/main/ruby/shell/commands/normalizer_switch.rb +++ b/hbase-shell/src/main/ruby/shell/commands/normalizer_switch.rb @@ -32,7 +32,11 @@ EOF end def command(enableDisable) - formatter.row([admin.normalizer_switch(enableDisable)? "true" : "false"]) + format_simple_command do + formatter.row([ + admin.normalizer_switch(enableDisable)? "true" : "false" + ]) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/put.rb b/hbase-shell/src/main/ruby/shell/commands/put.rb index 39f9feab332..2b47a4d5c6e 100644 --- a/hbase-shell/src/main/ruby/shell/commands/put.rb +++ b/hbase-shell/src/main/ruby/shell/commands/put.rb @@ -45,8 +45,9 @@ EOF end def put(table, row, column, value, timestamp = nil, args = {}) - @start_time = Time.now - table._put_internal(row, column, value, timestamp, args) + format_simple_command do + table._put_internal(row, column, value, timestamp, args) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/remove_peer.rb b/hbase-shell/src/main/ruby/shell/commands/remove_peer.rb index bc9d6ab984e..5ae5786fc4a 100644 --- a/hbase-shell/src/main/ruby/shell/commands/remove_peer.rb +++ b/hbase-shell/src/main/ruby/shell/commands/remove_peer.rb @@ -30,7 +30,9 @@ EOF end def command(id) - replication_admin.remove_peer(id) + format_simple_command do + replication_admin.remove_peer(id) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/remove_peer_tableCFs.rb b/hbase-shell/src/main/ruby/shell/commands/remove_peer_tableCFs.rb index c1bd5d0bcf2..5b15b529651 100644 --- a/hbase-shell/src/main/ruby/shell/commands/remove_peer_tableCFs.rb +++ b/hbase-shell/src/main/ruby/shell/commands/remove_peer_tableCFs.rb @@ -33,7 +33,9 @@ EOF end def command(id, table_cfs) - replication_admin.remove_peer_tableCFs(id, table_cfs) + format_simple_command do + replication_admin.remove_peer_tableCFs(id, table_cfs) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/restore_snapshot.rb b/hbase-shell/src/main/ruby/shell/commands/restore_snapshot.rb index 2471e1bfb86..4d531711bca 100644 --- a/hbase-shell/src/main/ruby/shell/commands/restore_snapshot.rb +++ b/hbase-shell/src/main/ruby/shell/commands/restore_snapshot.rb @@ -32,7 +32,9 @@ EOF end def command(snapshot_name) - admin.restore_snapshot(snapshot_name) + format_simple_command do + admin.restore_snapshot(snapshot_name) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/revoke.rb b/hbase-shell/src/main/ruby/shell/commands/revoke.rb index bcf60e9f964..4a0d5ff62e1 100644 --- a/hbase-shell/src/main/ruby/shell/commands/revoke.rb +++ b/hbase-shell/src/main/ruby/shell/commands/revoke.rb @@ -39,7 +39,9 @@ EOF end def command(user, table_name=nil, family=nil, qualifier=nil) - security_admin.revoke(user, table_name, family, qualifier) + format_simple_command do + security_admin.revoke(user, table_name, family, qualifier) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/scan.rb b/hbase-shell/src/main/ruby/shell/commands/scan.rb index e7b5d82795b..106eccf662c 100644 --- a/hbase-shell/src/main/ruby/shell/commands/scan.rb +++ b/hbase-shell/src/main/ruby/shell/commands/scan.rb @@ -104,17 +104,16 @@ EOF #internal command that actually does the scanning def scan(table, args = {}) + now = Time.now formatter.header(["ROW", "COLUMN+CELL"]) scan = table._hash_to_scan(args) #actually do the scanning - @start_time = Time.now count, is_stale = table._scan_internal(args, scan) do |row, cells| formatter.row([ row, cells ]) end - @end_time = Time.now - formatter.footer(count, is_stale) + formatter.footer(now, count, is_stale) # if scan metrics were enabled, print them after the results if (scan != nil && scan.isScanMetricsEnabled()) formatter.scan_metrics(scan.getScanMetrics(), args["METRICS"]) diff --git a/hbase-shell/src/main/ruby/shell/commands/set_auths.rb b/hbase-shell/src/main/ruby/shell/commands/set_auths.rb index 5663ec384f7..4a52eb0ef7d 100644 --- a/hbase-shell/src/main/ruby/shell/commands/set_auths.rb +++ b/hbase-shell/src/main/ruby/shell/commands/set_auths.rb @@ -31,7 +31,9 @@ EOF end def command(user, *args) - visibility_labels_admin.set_auths(user, args) + format_simple_command do + visibility_labels_admin.set_auths(user, args) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/set_peer_tableCFs.rb b/hbase-shell/src/main/ruby/shell/commands/set_peer_tableCFs.rb index b901cf02070..3a88dbb7412 100644 --- a/hbase-shell/src/main/ruby/shell/commands/set_peer_tableCFs.rb +++ b/hbase-shell/src/main/ruby/shell/commands/set_peer_tableCFs.rb @@ -38,7 +38,9 @@ module Shell end def command(id, peer_table_cfs = nil) - replication_admin.set_peer_tableCFs(id, peer_table_cfs) + format_simple_command do + replication_admin.set_peer_tableCFs(id, peer_table_cfs) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/set_visibility.rb b/hbase-shell/src/main/ruby/shell/commands/set_visibility.rb index 962d8cd8c87..59779fb138a 100644 --- a/hbase-shell/src/main/ruby/shell/commands/set_visibility.rb +++ b/hbase-shell/src/main/ruby/shell/commands/set_visibility.rb @@ -51,7 +51,7 @@ EOF def command(table, visibility, scan) t = table(table) - @start_time = Time.now + now = Time.now scanner = t._get_scanner(scan) count = 0 iter = scanner.iterator @@ -65,7 +65,7 @@ EOF end count += 1 end - formatter.footer(count) + formatter.footer(now, count) end end diff --git a/hbase-shell/src/main/ruby/shell/commands/show_filters.rb b/hbase-shell/src/main/ruby/shell/commands/show_filters.rb index 5ff0be4828d..cdbd9ed9b59 100644 --- a/hbase-shell/src/main/ruby/shell/commands/show_filters.rb +++ b/hbase-shell/src/main/ruby/shell/commands/show_filters.rb @@ -36,6 +36,7 @@ EOF end def command( ) + now = Time.now parseFilter = ParseFilter.new supportedFilters = parseFilter.getSupportedFilters diff --git a/hbase-shell/src/main/ruby/shell/commands/show_peer_tableCFs.rb b/hbase-shell/src/main/ruby/shell/commands/show_peer_tableCFs.rb index b6b69565200..3ce3d06f012 100644 --- a/hbase-shell/src/main/ruby/shell/commands/show_peer_tableCFs.rb +++ b/hbase-shell/src/main/ruby/shell/commands/show_peer_tableCFs.rb @@ -30,9 +30,7 @@ module Shell end def command(id) - peer_table_cfs = replication_admin.show_peer_tableCFs(id) - puts peer_table_cfs - peer_table_cfs + puts replication_admin.show_peer_tableCFs(id) end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/snapshot.rb b/hbase-shell/src/main/ruby/shell/commands/snapshot.rb index fd37d07291b..15bf298e043 100644 --- a/hbase-shell/src/main/ruby/shell/commands/snapshot.rb +++ b/hbase-shell/src/main/ruby/shell/commands/snapshot.rb @@ -29,7 +29,9 @@ EOF end def command(table, snapshot_name, *args) - admin.snapshot(table, snapshot_name, *args) + format_simple_command do + admin.snapshot(table, snapshot_name, *args) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/split.rb b/hbase-shell/src/main/ruby/shell/commands/split.rb index 9e6ec6a55cd..9dc424ff687 100644 --- a/hbase-shell/src/main/ruby/shell/commands/split.rb +++ b/hbase-shell/src/main/ruby/shell/commands/split.rb @@ -34,7 +34,9 @@ EOF end def command(table_or_region_name, split_point = nil) - admin.split(table_or_region_name, split_point) + format_simple_command do + admin.split(table_or_region_name, split_point) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/splitormerge_enabled.rb b/hbase-shell/src/main/ruby/shell/commands/splitormerge_enabled.rb index 5a138718c3c..7da7564ab6f 100644 --- a/hbase-shell/src/main/ruby/shell/commands/splitormerge_enabled.rb +++ b/hbase-shell/src/main/ruby/shell/commands/splitormerge_enabled.rb @@ -30,9 +30,11 @@ EOF end def command(switch_type) - formatter.row( - [admin.splitormerge_enabled(switch_type) ? 'true' : 'false'] - ) + format_simple_command do + formatter.row( + [admin.splitormerge_enabled(switch_type) ? 'true' : 'false'] + ) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/splitormerge_switch.rb b/hbase-shell/src/main/ruby/shell/commands/splitormerge_switch.rb index 73dc82dbb02..f4c285800da 100644 --- a/hbase-shell/src/main/ruby/shell/commands/splitormerge_switch.rb +++ b/hbase-shell/src/main/ruby/shell/commands/splitormerge_switch.rb @@ -32,9 +32,11 @@ EOF end def command(switch_type, enabled) - formatter.row( - [admin.splitormerge_switch(switch_type, enabled) ? 'true' : 'false'] - ) + format_simple_command do + formatter.row( + [admin.splitormerge_switch(switch_type, enabled) ? 'true' : 'false'] + ) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/trace.rb b/hbase-shell/src/main/ruby/shell/commands/trace.rb index d8389798309..5e0093092f8 100644 --- a/hbase-shell/src/main/ruby/shell/commands/trace.rb +++ b/hbase-shell/src/main/ruby/shell/commands/trace.rb @@ -48,7 +48,9 @@ EOF end def command(startstop="status", spanname="HBaseShell") - trace(startstop, spanname) + format_and_return_simple_command do + trace(startstop, spanname) + end end def trace(startstop, spanname) diff --git a/hbase-shell/src/main/ruby/shell/commands/truncate.rb b/hbase-shell/src/main/ruby/shell/commands/truncate.rb index aff51ac16aa..b7812fbe3dd 100644 --- a/hbase-shell/src/main/ruby/shell/commands/truncate.rb +++ b/hbase-shell/src/main/ruby/shell/commands/truncate.rb @@ -27,7 +27,10 @@ EOF end def command(table) - admin.truncate(table) + format_simple_command do + puts "Truncating '#{table}' table (it may take a while):" + admin.truncate(table) { |log| puts " - #{log}" } + end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/truncate_preserve.rb b/hbase-shell/src/main/ruby/shell/commands/truncate_preserve.rb index 8bb3131a925..918b23289a9 100644 --- a/hbase-shell/src/main/ruby/shell/commands/truncate_preserve.rb +++ b/hbase-shell/src/main/ruby/shell/commands/truncate_preserve.rb @@ -27,7 +27,10 @@ EOF end def command(table) - admin.truncate_preserve(table) + format_simple_command do + puts "Truncating '#{table}' table (it may take a while):" + admin.truncate_preserve(table) { |log| puts " - #{log}" } + end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/unassign.rb b/hbase-shell/src/main/ruby/shell/commands/unassign.rb index b69971fbafc..5eea71f6e08 100644 --- a/hbase-shell/src/main/ruby/shell/commands/unassign.rb +++ b/hbase-shell/src/main/ruby/shell/commands/unassign.rb @@ -36,7 +36,9 @@ EOF end def command(region_name, force = 'false') - admin.unassign(region_name, force) + format_simple_command do + admin.unassign(region_name, force) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/update_all_config.rb b/hbase-shell/src/main/ruby/shell/commands/update_all_config.rb index cb6852f662f..05295b7996a 100644 --- a/hbase-shell/src/main/ruby/shell/commands/update_all_config.rb +++ b/hbase-shell/src/main/ruby/shell/commands/update_all_config.rb @@ -30,7 +30,9 @@ EOF end def command() - admin.update_all_config() + format_simple_command do + admin.update_all_config() + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/update_config.rb b/hbase-shell/src/main/ruby/shell/commands/update_config.rb index 3617bb3e24c..9f65fddd25d 100644 --- a/hbase-shell/src/main/ruby/shell/commands/update_config.rb +++ b/hbase-shell/src/main/ruby/shell/commands/update_config.rb @@ -31,7 +31,9 @@ EOF end def command(serverName) - admin.update_config(serverName) + format_simple_command do + admin.update_config(serverName) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/update_peer_config.rb b/hbase-shell/src/main/ruby/shell/commands/update_peer_config.rb index e6f1c9e6f7c..bcecb91c517 100644 --- a/hbase-shell/src/main/ruby/shell/commands/update_peer_config.rb +++ b/hbase-shell/src/main/ruby/shell/commands/update_peer_config.rb @@ -40,7 +40,9 @@ To update TABLE_CFs, see the append_peer_tableCFs and remove_peer_tableCFs comma end def command(id, args = {}) - replication_admin.update_peer_config(id, args) + format_simple_command do + replication_admin.update_peer_config(id, args) + end end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/user_permission.rb b/hbase-shell/src/main/ruby/shell/commands/user_permission.rb index 4b5d3ffa378..71b98f370a8 100644 --- a/hbase-shell/src/main/ruby/shell/commands/user_permission.rb +++ b/hbase-shell/src/main/ruby/shell/commands/user_permission.rb @@ -40,14 +40,16 @@ EOF end def command(table_regex=nil) + #format_simple_command do #admin.user_permission(table_regex) + now = Time.now formatter.header(["User", "Namespace,Table,Family,Qualifier:Permission"]) count = security_admin.user_permission(table_regex) do |user, permission| formatter.row([ user, permission]) end - formatter.footer(count) + formatter.footer(now, count) end end end diff --git a/hbase-shell/src/main/ruby/shell/commands/wal_roll.rb b/hbase-shell/src/main/ruby/shell/commands/wal_roll.rb index a94e9e1056e..0fe1870af23 100644 --- a/hbase-shell/src/main/ruby/shell/commands/wal_roll.rb +++ b/hbase-shell/src/main/ruby/shell/commands/wal_roll.rb @@ -30,10 +30,11 @@ EOF end def command(server_name) - admin.wal_roll(server_name) + format_simple_command do + admin.wal_roll(server_name) + end end end - #TODO remove old HLog version class HlogRoll < WalRoll end diff --git a/hbase-shell/src/main/ruby/shell/formatter.rb b/hbase-shell/src/main/ruby/shell/formatter.rb index 2f800f6ebc6..6e598fb9f82 100644 --- a/hbase-shell/src/main/ruby/shell/formatter.rb +++ b/hbase-shell/src/main/ruby/shell/formatter.rb @@ -64,7 +64,7 @@ module Shell # Print a string if args.is_a?(String) - output_str(args) + output(args) @out.puts return end @@ -162,7 +162,7 @@ module Shell return str end - def output_str(str) + def output(str) output(@max_width, str) end @@ -177,12 +177,15 @@ module Shell end end - def footer(row_count = nil, is_stale = false) + def footer(start_time = nil, row_count = nil, is_stale = false) + return unless start_time row_count ||= @row_count # Only output elapsed time and row count if startTime passed - @out.puts("%d row(s)" % [row_count]) + @out.print("%d row(s) in %.4f seconds" % [row_count, Time.now - start_time]) if is_stale == true @out.puts(" (possible stale results) ") + else + @out.puts("") end end end diff --git a/hbase-shell/src/test/java/org/apache/hadoop/hbase/client/TestReplicationShell.java b/hbase-shell/src/test/java/org/apache/hadoop/hbase/client/TestReplicationShell.java index 04fbc7af04a..3f4af05f480 100644 --- a/hbase-shell/src/test/java/org/apache/hadoop/hbase/client/TestReplicationShell.java +++ b/hbase-shell/src/test/java/org/apache/hadoop/hbase/client/TestReplicationShell.java @@ -28,7 +28,7 @@ import org.junit.experimental.categories.Category; @Category({ ClientTests.class, LargeTests.class }) public class TestReplicationShell extends AbstractTestShell { - @Test + @Ignore ("Disabled because hangs on occasion.. about 10% of the time") @Test public void testRunShellTests() throws IOException { System.setProperty("shell.test.include", "replication_admin_test.rb"); // Start all ruby tests diff --git a/hbase-shell/src/test/ruby/hbase/admin_test.rb b/hbase-shell/src/test/ruby/hbase/admin_test.rb index a7d9686fc94..4a70b562ef8 100644 --- a/hbase-shell/src/test/ruby/hbase/admin_test.rb +++ b/hbase-shell/src/test/ruby/hbase/admin_test.rb @@ -41,21 +41,21 @@ module Hbase end define_test "exists? should return true when a table exists" do - assert(command(:exists, 'hbase:meta')) + assert(admin.exists?('hbase:meta')) end define_test "exists? should return false when a table exists" do - assert(!command(:exists, 'NOT.EXISTS')) + assert(!admin.exists?('NOT.EXISTS')) end define_test "enabled? should return true for enabled tables" do - command(:enable, @test_name) - assert(command(:is_enabled, @test_name)) + admin.enable(@test_name) + assert(admin.enabled?(@test_name)) end define_test "enabled? should return false for disabled tables" do - command(:disable, @test_name) - assert(!command(:is_enabled, @test_name)) + admin.disable(@test_name) + assert(!admin.enabled?(@test_name)) end end @@ -78,67 +78,63 @@ module Hbase end define_test "list should return a list of tables" do - list = command(:list) - assert(list.member?(@test_name)) + assert(admin.list.member?(@test_name)) end define_test "list should not return meta tables" do - list = command(:list) - assert(!list.member?('hbase:meta')) + assert(!admin.list.member?('hbase:meta')) end define_test "list_namespace_tables for the system namespace should return a list of tables" do - list = command(:list_namespace_tables, 'hbase') - assert(list.count > 0) + assert(admin.list_namespace_tables('hbase').count > 0) end define_test "list_namespace_tables for the default namespace should return a list of tables" do - list = command(:list_namespace_tables, 'default') - assert(list.count > 0) + assert(admin.list_namespace_tables('default').count > 0) end #------------------------------------------------------------------------------- define_test "flush should work" do - command(:flush, 'hbase:meta') + admin.flush('hbase:meta') end #------------------------------------------------------------------------------- define_test "compact should work" do - command(:compact, 'hbase:meta') + admin.compact('hbase:meta') end #------------------------------------------------------------------------------- define_test "major_compact should work" do - command(:major_compact, 'hbase:meta') + admin.major_compact('hbase:meta') end #------------------------------------------------------------------------------- define_test "split should work" do - command(:split, 'hbase:meta', nil) + admin.split('hbase:meta', nil) end #------------------------------------------------------------------------------- define_test "drop should fail on non-existent tables" do assert_raise(ArgumentError) do - command(:drop, 'NOT.EXISTS') + admin.drop('NOT.EXISTS') end end define_test "drop should fail on enabled tables" do assert_raise(ArgumentError) do - command(:drop, @test_name) + admin.drop(@test_name) end end define_test "drop should drop tables" do - command(:disable, @test_name) - command(:drop, @test_name) - assert(!command(:exists, @test_name)) + admin.disable(@test_name) + admin.drop(@test_name) + assert(!admin.exists?(@test_name)) end #------------------------------------------------------------------------------- @@ -151,46 +147,45 @@ module Hbase define_test "create should fail with non-string table names" do assert_raise(ArgumentError) do - command(:create, 123, 'xxx') + admin.create(123, 'xxx') end end define_test "create should fail with non-string/non-hash column args" do assert_raise(ArgumentError) do - command(:create, @create_test_name, 123) + admin.create(@create_test_name, 123) end end define_test "create should fail without columns" do drop_test_table(@create_test_name) assert_raise(ArgumentError) do - command(:create, @create_test_name) + admin.create(@create_test_name) end end define_test "create should fail without columns when called with options" do drop_test_table(@create_test_name) assert_raise(ArgumentError) do - command(:create, @create_test_name, { OWNER => 'a' }) + admin.create(@create_test_name, { OWNER => 'a' }) end end define_test "create should work with string column args" do drop_test_table(@create_test_name) - command(:create, @create_test_name, 'a', 'b') + admin.create(@create_test_name, 'a', 'b') assert_equal(['a:', 'b:'], table(@create_test_name).get_all_columns.sort) end define_test "create should work with hash column args" do drop_test_table(@create_test_name) - command(:create, @create_test_name, { NAME => 'a'}, { NAME => 'b'}) + admin.create(@create_test_name, { NAME => 'a'}, { NAME => 'b'}) assert_equal(['a:', 'b:'], table(@create_test_name).get_all_columns.sort) end define_test "create should be able to set table options" do drop_test_table(@create_test_name) - command(:create, @create_test_name, 'a', 'b', 'MAX_FILESIZE' => 12345678, - OWNER => '987654321') + admin.create(@create_test_name, 'a', 'b', 'MAX_FILESIZE' => 12345678, OWNER => '987654321') assert_equal(['a:', 'b:'], table(@create_test_name).get_all_columns.sort) assert_match(/12345678/, admin.describe(@create_test_name)) assert_match(/987654321/, admin.describe(@create_test_name)) @@ -198,15 +193,14 @@ module Hbase define_test "create should ignore table_att" do drop_test_table(@create_test_name) - command(:create, @create_test_name, 'a', 'b', METHOD => 'table_att', OWNER => '987654321') + admin.create(@create_test_name, 'a', 'b', METHOD => 'table_att', OWNER => '987654321') assert_equal(['a:', 'b:'], table(@create_test_name).get_all_columns.sort) assert_match(/987654321/, admin.describe(@create_test_name)) end define_test "create should work with SPLITALGO" do drop_test_table(@create_test_name) - command(:create, @create_test_name, 'a', 'b', - {NUMREGIONS => 10, SPLITALGO => 'HexStringSplit'}) + admin.create(@create_test_name, 'a', 'b', {NUMREGIONS => 10, SPLITALGO => 'HexStringSplit'}) assert_equal(['a:', 'b:'], table(@create_test_name).get_all_columns.sort) end @@ -229,13 +223,17 @@ module Hbase table(@test_name).put(2, "x:a", 2) assert_equal(2, table(@test_name)._count_internal) # This is hacky. Need to get the configuration into admin instance - command(:truncate, @test_name) + admin.truncate(@test_name, $TEST_CLUSTER.getConfiguration) assert_equal(0, table(@test_name)._count_internal) end define_test "truncate should yield log records" do - output = capture_stdout { command(:truncate, @test_name) } - assert(!output.empty?) + logs = [] + admin.truncate(@test_name, $TEST_CLUSTER.getConfiguration) do |log| + assert_kind_of(String, log) + logs << log + end + assert(!logs.empty?) end end @@ -259,68 +257,77 @@ module Hbase define_test "alter should fail with non-string table names" do assert_raise(ArgumentError) do - command(:alter, 123, METHOD => 'delete', NAME => 'y') + admin.alter(123, true, METHOD => 'delete', NAME => 'y') end end define_test "alter should fail with non-existing tables" do assert_raise(ArgumentError) do - command(:alter, 'NOT.EXISTS', METHOD => 'delete', NAME => 'y') + admin.alter('NOT.EXISTS', true, METHOD => 'delete', NAME => 'y') end end define_test "alter should not fail with enabled tables" do - command(:enable, @test_name) - command(:alter, @test_name, METHOD => 'delete', NAME => 'y') + admin.enable(@test_name) + admin.alter(@test_name, true, METHOD => 'delete', NAME => 'y') end define_test "alter should be able to delete column families" do assert_equal(['x:', 'y:'], table(@test_name).get_all_columns.sort) - command(:alter, @test_name, METHOD => 'delete', NAME => 'y') - command(:enable, @test_name) + admin.alter(@test_name, true, METHOD => 'delete', NAME => 'y') + admin.enable(@test_name) assert_equal(['x:'], table(@test_name).get_all_columns.sort) end define_test "alter should be able to add column families" do assert_equal(['x:', 'y:'], table(@test_name).get_all_columns.sort) - command(:alter, @test_name, NAME => 'z') - command(:enable, @test_name) + admin.alter(@test_name, true, NAME => 'z') + admin.enable(@test_name) assert_equal(['x:', 'y:', 'z:'], table(@test_name).get_all_columns.sort) end define_test "alter should be able to add column families (name-only alter spec)" do assert_equal(['x:', 'y:'], table(@test_name).get_all_columns.sort) - command(:alter, @test_name, 'z') - command(:enable, @test_name) + admin.alter(@test_name, true, 'z') + admin.enable(@test_name) assert_equal(['x:', 'y:', 'z:'], table(@test_name).get_all_columns.sort) end define_test "alter should support more than one alteration in one call" do assert_equal(['x:', 'y:'], table(@test_name).get_all_columns.sort) - alterOutput = capture_stdout { - command(:alter, @test_name, { NAME => 'z' }, { METHOD => 'delete', NAME => 'y' }, - 'MAX_FILESIZE' => 12345678) } - command(:enable, @test_name) + alterOutput = capture_stdout { admin.alter(@test_name, true, { NAME => 'z' }, + { METHOD => 'delete', NAME => 'y' }, 'MAX_FILESIZE' => 12345678) } + admin.enable(@test_name) assert_equal(1, /Updating all regions/.match(alterOutput).size, "HBASE-15641 - Should only perform one table modification per alter.") assert_equal(['x:', 'z:'], table(@test_name).get_all_columns.sort) assert_match(/12345678/, admin.describe(@test_name)) end + def capture_stdout + begin + old_stdout = $stdout + $stdout = StringIO.new('','w') + yield + $stdout.string + ensure + $stdout = old_stdout + end + end define_test 'alter should support shortcut DELETE alter specs' do assert_equal(['x:', 'y:'], table(@test_name).get_all_columns.sort) - command(:alter, @test_name, 'delete' => 'y') + admin.alter(@test_name, true, 'delete' => 'y') assert_equal(['x:'], table(@test_name).get_all_columns.sort) end define_test "alter should be able to change table options" do - command(:alter, @test_name, METHOD => 'table_att', 'MAX_FILESIZE' => 12345678) + admin.alter(@test_name, true, METHOD => 'table_att', 'MAX_FILESIZE' => 12345678) assert_match(/12345678/, admin.describe(@test_name)) end define_test "alter should be able to change table options w/o table_att" do - command(:alter, @test_name, 'MAX_FILESIZE' => 12345678) + admin.alter(@test_name, true, 'MAX_FILESIZE' => 12345678) assert_match(/12345678/, admin.describe(@test_name)) end @@ -336,7 +343,7 @@ module Hbase # eval() is used to convert a string to regex assert_no_match(eval("/" + class_name + "/"), admin.describe(@test_name)) assert_no_match(eval("/" + cp_key + "/"), admin.describe(@test_name)) - command(:alter, @test_name, 'METHOD' => 'table_att', cp_key => cp_value) + admin.alter(@test_name, true, 'METHOD' => 'table_att', cp_key => cp_value) assert_match(eval("/" + class_name + "/"), admin.describe(@test_name)) assert_match(eval("/" + cp_key + "\\$(\\d+)/"), admin.describe(@test_name)) end @@ -346,12 +353,12 @@ module Hbase create_test_table(@test_name) key = "MAX_FILESIZE" - command(:alter, @test_name, 'METHOD' => 'table_att', key => 12345678) + admin.alter(@test_name, true, 'METHOD' => 'table_att', key => 12345678) # eval() is used to convert a string to regex assert_match(eval("/" + key + "/"), admin.describe(@test_name)) - command(:alter, @test_name, 'METHOD' => 'table_att_unset', 'NAME' => key) + admin.alter(@test_name, true, 'METHOD' => 'table_att_unset', 'NAME' => key) assert_no_match(eval("/" + key + "/"), admin.describe(@test_name)) end @@ -360,13 +367,13 @@ module Hbase key_1 = "TestAttr1" key_2 = "TestAttr2" - command(:create, @test_name, { NAME => 'i'}, METADATA => { key_1 => 1, key_2 => 2 }) + admin.create(@test_name, { NAME => 'i'}, METADATA => { key_1 => 1, key_2 => 2 }) # eval() is used to convert a string to regex assert_match(eval("/" + key_1 + "/"), admin.describe(@test_name)) assert_match(eval("/" + key_2 + "/"), admin.describe(@test_name)) - command(:alter, @test_name, 'METHOD' => 'table_att_unset', 'NAME' => [ key_1, key_2 ]) + admin.alter(@test_name, true, 'METHOD' => 'table_att_unset', 'NAME' => [ key_1, key_2 ]) assert_no_match(eval("/" + key_1 + "/"), admin.describe(@test_name)) assert_no_match(eval("/" + key_2 + "/"), admin.describe(@test_name)) end @@ -414,66 +421,66 @@ module Hbase #------------------------------------------------------------------------------- define_test "Snapshot should fail with non-string snapshot name" do assert_raise(NoMethodError) do - command(:snapshot, @create_test_snapshot, 123) + admin.snapshot(123, 'xxx') end end define_test "Snapshot should fail with non-string table name" do assert_raise(NoMethodError) do - command(:snapshot, 123, 'xxx') + admin.snapshot(@create_test_snapshot, 123) end end define_test "Snapshot should fail without table name" do assert_raise(ArgumentError) do - command(:snapshot, "hbase_create_test_snapshot") + admin.snapshot("hbase_create_test_snapshot") end end define_test "Snapshot should work with string args" do drop_test_snapshot() - command(:snapshot, @test_name, @create_test_snapshot) - list = command(:list_snapshots, @create_test_snapshot) + admin.snapshot(@test_name, @create_test_snapshot) + list = admin.list_snapshot(@create_test_snapshot) assert_equal(1, list.size) end define_test "Snapshot should work when SKIP_FLUSH args" do drop_test_snapshot() - command(:snapshot, @test_name, @create_test_snapshot, {SKIP_FLUSH => true}) - list = command(:list_snapshots, @create_test_snapshot) + admin.snapshot(@test_name, @create_test_snapshot, {SKIP_FLUSH => true}) + list = admin.list_snapshot(@create_test_snapshot) assert_equal(1, list.size) end define_test "List snapshot without any args" do drop_test_snapshot() - command(:snapshot, @test_name, @create_test_snapshot) - list = command(:list_snapshots) + admin.snapshot(@test_name, @create_test_snapshot) + list = admin.list_snapshot() assert_equal(1, list.size) end define_test "List snapshot for a non-existing snapshot" do - list = command(:list_snapshots, "xyz") + list = admin.list_snapshot("xyz") assert_equal(0, list.size) end define_test "Restore snapshot without any args" do assert_raise(ArgumentError) do - command(:restore_snapshot) + admin.restore_snapshot() end end define_test "Restore snapshot should work" do drop_test_snapshot() restore_table = "test_restore_snapshot_table" - command(:create, restore_table, 'f1', 'f2') + admin.create(restore_table, 'f1', 'f2') assert_match(eval("/" + "f1" + "/"), admin.describe(restore_table)) assert_match(eval("/" + "f2" + "/"), admin.describe(restore_table)) - command(:snapshot, restore_table, @create_test_snapshot) - command(:alter, restore_table, METHOD => 'delete', NAME => 'f1') + admin.snapshot(restore_table, @create_test_snapshot) + admin.alter(restore_table, true, METHOD => 'delete', NAME => 'f1') assert_no_match(eval("/" + "f1" + "/"), admin.describe(restore_table)) assert_match(eval("/" + "f2" + "/"), admin.describe(restore_table)) drop_test_table(restore_table) - command(:restore_snapshot, @create_test_snapshot) + admin.restore_snapshot(@create_test_snapshot) assert_match(eval("/" + "f1" + "/"), admin.describe(restore_table)) assert_match(eval("/" + "f2" + "/"), admin.describe(restore_table)) drop_test_table(restore_table) @@ -481,13 +488,13 @@ module Hbase define_test "Clone snapshot without any args" do assert_raise(ArgumentError) do - command(:restore_snapshot) + admin.restore_snapshot() end end define_test "Clone snapshot without table name args" do assert_raise(ArgumentError) do - command(:clone_snapshot, @create_test_snapshot) + admin.clone_snapshot(@create_test_snapshot) end end @@ -496,8 +503,8 @@ module Hbase clone_table = "test_clone_snapshot_table" assert_match(eval("/" + "x" + "/"), admin.describe(@test_name)) assert_match(eval("/" + "y" + "/"), admin.describe(@test_name)) - command(:snapshot, @test_name, @create_test_snapshot) - command(:clone_snapshot, @create_test_snapshot, clone_table) + admin.snapshot(@test_name, @create_test_snapshot) + admin.clone_snapshot(@create_test_snapshot, clone_table) assert_match(eval("/" + "x" + "/"), admin.describe(clone_table)) assert_match(eval("/" + "y" + "/"), admin.describe(clone_table)) drop_test_table(clone_table) @@ -511,11 +518,11 @@ module Hbase define_test "Delete snapshot should work" do drop_test_snapshot() - command(:snapshot, @test_name, @create_test_snapshot) - list = command(:list_snapshots) + admin.snapshot(@test_name, @create_test_snapshot) + list = admin.list_snapshot() assert_equal(1, list.size) admin.delete_snapshot(@create_test_snapshot) - list = command(:list_snapshots) + list = admin.list_snapshot() assert_equal(0, list.size) end @@ -527,17 +534,17 @@ module Hbase define_test "Delete all snapshots should work" do drop_test_snapshot() - command(:snapshot, @test_name, "delete_all_snapshot1") - command(:snapshot, @test_name, "delete_all_snapshot2") - command(:snapshot, @test_name, "snapshot_delete_all_1") - command(:snapshot, @test_name, "snapshot_delete_all_2") - list = command(:list_snapshots) + admin.snapshot(@test_name, "delete_all_snapshot1") + admin.snapshot(@test_name, "delete_all_snapshot2") + admin.snapshot(@test_name, "snapshot_delete_all_1") + admin.snapshot(@test_name, "snapshot_delete_all_2") + list = admin.list_snapshot() assert_equal(4, list.size) admin.delete_all_snapshot("d.*") - list = command(:list_snapshots) + list = admin.list_snapshot() assert_equal(2, list.size) admin.delete_all_snapshot(".*") - list = command(:list_snapshots) + list = admin.list_snapshot() assert_equal(0, list.size) end @@ -549,48 +556,48 @@ module Hbase define_test "Delete table snapshots should work" do drop_test_snapshot() - command(:snapshot, @test_name, "delete_table_snapshot1") - command(:snapshot, @test_name, "delete_table_snapshot2") - command(:snapshot, @test_name, "snapshot_delete_table1") + admin.snapshot(@test_name, "delete_table_snapshot1") + admin.snapshot(@test_name, "delete_table_snapshot2") + admin.snapshot(@test_name, "snapshot_delete_table1") new_table = "test_delete_table_snapshots_table" - command(:create, new_table, 'f1') - command(:snapshot, new_table, "delete_table_snapshot3") - list = command(:list_snapshots) + admin.create(new_table, 'f1') + admin.snapshot(new_table, "delete_table_snapshot3") + list = admin.list_snapshot() assert_equal(4, list.size) admin.delete_table_snapshots(@test_name, "d.*") - list = command(:list_snapshots) + list = admin.list_snapshot() assert_equal(2, list.size) admin.delete_table_snapshots(@test_name) - list = command(:list_snapshots) + list = admin.list_snapshot() assert_equal(1, list.size) admin.delete_table_snapshots(".*", "d.*") - list = command(:list_snapshots) + list = admin.list_snapshot() assert_equal(0, list.size) drop_test_table(new_table) end define_test "List table snapshots without any args" do assert_raise(ArgumentError) do - command(:list_table_snapshots) + admin.list_table_snapshots() end end define_test "List table snapshots should work" do drop_test_snapshot() - command(:snapshot, @test_name, "delete_table_snapshot1") - command(:snapshot, @test_name, "delete_table_snapshot2") - command(:snapshot, @test_name, "snapshot_delete_table1") + admin.snapshot(@test_name, "delete_table_snapshot1") + admin.snapshot(@test_name, "delete_table_snapshot2") + admin.snapshot(@test_name, "snapshot_delete_table1") new_table = "test_list_table_snapshots_table" - command(:create, new_table, 'f1') - command(:snapshot, new_table, "delete_table_snapshot3") - list = command(:list_table_snapshots, ".*") + admin.create(new_table, 'f1') + admin.snapshot(new_table, "delete_table_snapshot3") + list = admin.list_table_snapshots(".*") assert_equal(4, list.size) - list = command(:list_table_snapshots, @test_name, "d.*") + list = admin.list_table_snapshots(@test_name, "d.*") assert_equal(2, list.size) - list = command(:list_table_snapshots, @test_name) + list = admin.list_table_snapshots(@test_name) assert_equal(3, list.size) admin.delete_table_snapshots(".*") - list = command(:list_table_snapshots, ".*", ".*") + list = admin.list_table_snapshots(".*", ".*") assert_equal(0, list.size) drop_test_table(new_table) end diff --git a/hbase-shell/src/test/ruby/hbase/replication_admin_test.rb b/hbase-shell/src/test/ruby/hbase/replication_admin_test.rb index 33a6552d803..ac088edacfa 100644 --- a/hbase-shell/src/test/ruby/hbase/replication_admin_test.rb +++ b/hbase-shell/src/test/ruby/hbase/replication_admin_test.rb @@ -33,25 +33,25 @@ module Hbase setup_hbase - assert_equal(0, command(:list_peers).length) + assert_equal(0, replication_admin.list_peers.length) end def teardown - assert_equal(0, command(:list_peers).length) + assert_equal(0, replication_admin.list_peers.length) shutdown end define_test "add_peer: should fail when args isn't specified" do assert_raise(ArgumentError) do - command(:add_peer, @peer_id, nil) + replication_admin.add_peer(@peer_id, nil) end end define_test "add_peer: fail when neither CLUSTER_KEY nor ENDPOINT_CLASSNAME are specified" do assert_raise(ArgumentError) do args = {} - command(:add_peer, @peer_id, args) + replication_admin.add_peer(@peer_id, args) end end @@ -59,86 +59,86 @@ module Hbase assert_raise(ArgumentError) do args = { CLUSTER_KEY => 'zk1,zk2,zk3:2182:/hbase-prod', ENDPOINT_CLASSNAME => 'org.apache.hadoop.hbase.MyReplicationEndpoint' } - command(:add_peer, @peer_id, args) + replication_admin.add_peer(@peer_id, args) end end define_test "add_peer: args must be a string or number" do assert_raise(ArgumentError) do - command(:add_peer, @peer_id, 1) + replication_admin.add_peer(@peer_id, 1) end assert_raise(ArgumentError) do - command(:add_peer, @peer_id, ['test']) + replication_admin.add_peer(@peer_id, ['test']) end end define_test "add_peer: single zk cluster key" do cluster_key = "server1.cie.com:2181:/hbase" - command(:add_peer, @peer_id, cluster_key) + replication_admin.add_peer(@peer_id, cluster_key) - assert_equal(1, command(:list_peers).length) - assert(command(:list_peers).key?(@peer_id)) - assert_equal(cluster_key, command(:list_peers).fetch(@peer_id)) + assert_equal(1, replication_admin.list_peers.length) + assert(replication_admin.list_peers.key?(@peer_id)) + assert_equal(cluster_key, replication_admin.list_peers.fetch(@peer_id)) # cleanup for future tests - command(:remove_peer, @peer_id) + replication_admin.remove_peer(@peer_id) end define_test "add_peer: multiple zk cluster key" do cluster_key = "zk1,zk2,zk3:2182:/hbase-prod" - command(:add_peer, @peer_id, cluster_key) + replication_admin.add_peer(@peer_id, cluster_key) - assert_equal(1, command(:list_peers).length) - assert(command(:list_peers).key?(@peer_id)) - assert_equal(cluster_key, command(:list_peers).fetch(@peer_id)) + assert_equal(1, replication_admin.list_peers.length) + assert(replication_admin.list_peers.key?(@peer_id)) + assert_equal(replication_admin.list_peers.fetch(@peer_id), cluster_key) # cleanup for future tests - command(:remove_peer, @peer_id) + replication_admin.remove_peer(@peer_id) end define_test "add_peer: multiple zk cluster key and table_cfs" do cluster_key = "zk4,zk5,zk6:11000:/hbase-test" table_cfs_str = "table1;table2:cf1;table3:cf2,cf3" - command(:add_peer, @peer_id, cluster_key, table_cfs_str) + replication_admin.add_peer(@peer_id, cluster_key, table_cfs_str) - assert_equal(1, command(:list_peers).length) - assert(command(:list_peers).key?(@peer_id)) - assert_equal(cluster_key, command(:list_peers).fetch(@peer_id)) - assert_equal(table_cfs_str, command(:show_peer_tableCFs, @peer_id)) + assert_equal(1, replication_admin.list_peers.length) + assert(replication_admin.list_peers.key?(@peer_id)) + assert_equal(cluster_key, replication_admin.list_peers.fetch(@peer_id)) + assert_equal(table_cfs_str, replication_admin.show_peer_tableCFs(@peer_id)) # cleanup for future tests - command(:remove_peer, @peer_id) + replication_admin.remove_peer(@peer_id) end define_test "add_peer: single zk cluster key - peer config" do cluster_key = "server1.cie.com:2181:/hbase" args = { CLUSTER_KEY => cluster_key } - command(:add_peer, @peer_id, args) + replication_admin.add_peer(@peer_id, args) - assert_equal(1, command(:list_peers).length) - assert(command(:list_peers).key?(@peer_id)) - assert_equal(cluster_key, command(:list_peers).fetch(@peer_id)) + assert_equal(1, replication_admin.list_peers.length) + assert(replication_admin.list_peers.key?(@peer_id)) + assert_equal(cluster_key, replication_admin.list_peers.fetch(@peer_id)) # cleanup for future tests - command(:remove_peer, @peer_id) + replication_admin.remove_peer(@peer_id) end define_test "add_peer: multiple zk cluster key - peer config" do cluster_key = "zk1,zk2,zk3:2182:/hbase-prod" args = { CLUSTER_KEY => cluster_key } - command(:add_peer, @peer_id, args) + replication_admin.add_peer(@peer_id, args) - assert_equal(1, command(:list_peers).length) - assert(command(:list_peers).key?(@peer_id)) - assert_equal(cluster_key, command(:list_peers).fetch(@peer_id)) + assert_equal(1, replication_admin.list_peers.length) + assert(replication_admin.list_peers.key?(@peer_id)) + assert_equal(cluster_key, replication_admin.list_peers.fetch(@peer_id)) # cleanup for future tests - command(:remove_peer, @peer_id) + replication_admin.remove_peer(@peer_id) end define_test "add_peer: multiple zk cluster key and table_cfs - peer config" do @@ -147,15 +147,15 @@ module Hbase table_cfs_str = "table1;table2:cf1;table3:cf1,cf2" args = { CLUSTER_KEY => cluster_key, TABLE_CFS => table_cfs } - command(:add_peer, @peer_id, args) + replication_admin.add_peer(@peer_id, args) - assert_equal(1, command(:list_peers).length) - assert(command(:list_peers).key?(@peer_id)) - assert_equal(cluster_key, command(:list_peers).fetch(@peer_id)) - assert_equal(table_cfs_str, command(:show_peer_tableCFs, @peer_id)) + assert_equal(1, replication_admin.list_peers.length) + assert(replication_admin.list_peers.key?(@peer_id)) + assert_equal(cluster_key, replication_admin.list_peers.fetch(@peer_id)) + assert_equal(table_cfs_str, replication_admin.show_peer_tableCFs(@peer_id)) # cleanup for future tests - command(:remove_peer, @peer_id) + replication_admin.remove_peer(@peer_id) end define_test "add_peer: should fail when args is a hash and peer_tableCFs provided" do @@ -164,51 +164,51 @@ module Hbase assert_raise(ArgumentError) do args = { CLUSTER_KEY => cluster_key } - command(:add_peer, @peer_id, args, table_cfs_str) + replication_admin.add_peer(@peer_id, args, table_cfs_str) end end define_test "get_peer_config: works with simple clusterKey peer" do cluster_key = "localhost:2181:/hbase-test" args = { CLUSTER_KEY => cluster_key } - command(:add_peer, @peer_id, args) - peer_config = command(:get_peer_config, @peer_id) + replication_admin.add_peer(@peer_id, args) + peer_config = replication_admin.get_peer_config(@peer_id) assert_equal(cluster_key, peer_config.get_cluster_key) #cleanup - command(:remove_peer, @peer_id) + replication_admin.remove_peer(@peer_id) end define_test "get_peer_config: works with replicationendpointimpl peer and config params" do repl_impl = "org.apache.hadoop.hbase.replication.ReplicationEndpointForTest" config_params = { "config1" => "value1", "config2" => "value2" } args = { ENDPOINT_CLASSNAME => repl_impl, CONFIG => config_params} - command(:add_peer, @peer_id, args) - peer_config = command(:get_peer_config, @peer_id) + replication_admin.add_peer(@peer_id, args) + peer_config = replication_admin.get_peer_config(@peer_id) assert_equal(repl_impl, peer_config.get_replication_endpoint_impl) assert_equal(2, peer_config.get_configuration.size) assert_equal("value1", peer_config.get_configuration.get("config1")) #cleanup - command(:remove_peer, @peer_id) + replication_admin.remove_peer(@peer_id) end define_test "list_peer_configs: returns all peers' ReplicationPeerConfig objects" do cluster_key = "localhost:2181:/hbase-test" args = { CLUSTER_KEY => cluster_key } peer_id_second = '2' - command(:add_peer, @peer_id, args) + replication_admin.add_peer(@peer_id, args) repl_impl = "org.apache.hadoop.hbase.replication.ReplicationEndpointForTest" config_params = { "config1" => "value1", "config2" => "value2" } args2 = { ENDPOINT_CLASSNAME => repl_impl, CONFIG => config_params} - command(:add_peer, peer_id_second, args2) + replication_admin.add_peer(peer_id_second, args2) - peer_configs = command(:list_peer_configs) + peer_configs = replication_admin.list_peer_configs assert_equal(2, peer_configs.size) assert_equal(cluster_key, peer_configs.get(@peer_id).get_cluster_key) assert_equal(repl_impl, peer_configs.get(peer_id_second).get_replication_endpoint_impl) #cleanup - command(:remove_peer, @peer_id) - command(:remove_peer, peer_id_second) + replication_admin.remove_peer(@peer_id) + replication_admin.remove_peer(peer_id_second) end define_test "update_peer_config: can update peer config and data" do @@ -216,7 +216,7 @@ module Hbase config_params = { "config1" => "value1", "config2" => "value2" } data_params = {"data1" => "value1", "data2" => "value2"} args = { ENDPOINT_CLASSNAME => repl_impl, CONFIG => config_params, DATA => data_params} - command(:add_peer, @peer_id, args) + replication_admin.add_peer(@peer_id, args) #Normally the ReplicationSourceManager will call ReplicationPeer#peer_added, but here we have to do it ourselves replication_admin.peer_added(@peer_id) @@ -224,12 +224,12 @@ module Hbase new_config_params = { "config1" => "new_value1" } new_data_params = {"data1" => "new_value1"} new_args = {CONFIG => new_config_params, DATA => new_data_params} - command(:update_peer_config, @peer_id, new_args) + replication_admin.update_peer_config(@peer_id, new_args) #Make sure the updated key/value pairs in config and data were successfully updated, and that those we didn't #update are still there and unchanged - peer_config = command(:get_peer_config, @peer_id) - command(:remove_peer, @peer_id) + peer_config = replication_admin.get_peer_config(@peer_id) + replication_admin.remove_peer(@peer_id) assert_equal("new_value1", peer_config.get_configuration.get("config1")) assert_equal("value2", peer_config.get_configuration.get("config2")) assert_equal("new_value1", Bytes.to_string(peer_config.get_peer_data.get(Bytes.toBytes("data1")))) @@ -239,17 +239,17 @@ module Hbase # assert_raise fails on native exceptions - https://jira.codehaus.org/browse/JRUBY-5279 # Can't catch native Java exception with assert_raise in JRuby 1.6.8 as in the test below. # define_test "add_peer: adding a second peer with same id should error" do - # command(:add_peer, @peer_id, '') - # assert_equal(1, command(:list_peers).length) + # replication_admin.add_peer(@peer_id, '') + # assert_equal(1, replication_admin.list_peers.length) # # assert_raise(java.lang.IllegalArgumentException) do - # command(:add_peer, @peer_id, '') + # replication_admin.add_peer(@peer_id, '') # end # - # assert_equal(1, command(:list_peers).length, 1) + # assert_equal(1, replication_admin.list_peers.length, 1) # # # cleanup for future tests - # command(:remove_peer, @peer_id) + # replication_admin.remove_peer(@peer_id) # end end end diff --git a/hbase-shell/src/test/ruby/hbase/visibility_labels_admin_test.rb b/hbase-shell/src/test/ruby/hbase/visibility_labels_admin_test.rb index e46c6331e75..ca906b244c3 100644 --- a/hbase-shell/src/test/ruby/hbase/visibility_labels_admin_test.rb +++ b/hbase-shell/src/test/ruby/hbase/visibility_labels_admin_test.rb @@ -45,37 +45,37 @@ module Hbase define_test "Labels should be created as specified" do label = 'TEST_LABELS' count = table('hbase:labels')._count_internal - command(:add_labels, 'test_label') + visibility_admin.add_labels('test_label') assert_equal(count + 1, table('hbase:labels')._count_internal) end define_test "The set/clear methods should work with authorizations" do label = 'TEST_AUTHS' user = org.apache.hadoop.hbase.security.User.getCurrent().getName(); - command(:add_labels, label) + visibility_admin.add_labels(label) $TEST_CLUSTER.waitLabelAvailable(10000, label) - count = command(:get_auths, user).length + count = visibility_admin.get_auths(user).length # verifying the set functionality - command(:set_auths, user, label) - assert_equal(count + 1, command(:get_auths, user).length) + visibility_admin.set_auths(user, label) + assert_equal(count + 1, visibility_admin.get_auths(user).length) assert_block do - command(:get_auths, user).any? { + visibility_admin.get_auths(user).any? { |auth| org.apache.hadoop.hbase.util.Bytes::toStringBinary(auth.toByteArray) == label } end # verifying the clear functionality - command(:clear_auths, user, label) - assert_equal(count, command(:get_auths, user).length) + visibility_admin.clear_auths(user, label) + assert_equal(count, visibility_admin.get_auths(user).length) end define_test "The get/put methods should work for data written with Visibility" do label = 'TEST_VISIBILITY' user = org.apache.hadoop.hbase.security.User.getCurrent().getName(); - command(:add_labels, label) + visibility_admin.add_labels(label) $TEST_CLUSTER.waitLabelAvailable(10000, label) - command(:set_auths, user, label) + visibility_admin.set_auths(user, label) # verifying put functionality @test_table.put(1, "x:a", 31, {VISIBILITY=>label}) diff --git a/hbase-shell/src/test/ruby/shell/formatter_test.rb b/hbase-shell/src/test/ruby/shell/formatter_test.rb index 540dd09db05..70104793192 100644 --- a/hbase-shell/src/test/ruby/shell/formatter_test.rb +++ b/hbase-shell/src/test/ruby/shell/formatter_test.rb @@ -63,6 +63,6 @@ class ShellFormatterTest < Test::Unit::TestCase end define_test "Froematter#footer should work" do - formatter.footer() + formatter.footer(Time.now - 5) end end diff --git a/hbase-shell/src/test/ruby/shell/shell_test.rb b/hbase-shell/src/test/ruby/shell/shell_test.rb index 6bf619c04b2..689a18bd55b 100644 --- a/hbase-shell/src/test/ruby/shell/shell_test.rb +++ b/hbase-shell/src/test/ruby/shell/shell_test.rb @@ -26,12 +26,12 @@ class ShellTest < Test::Unit::TestCase @shell = Shell::Shell.new(@hbase) end - define_test "Shell::Shell#admin should return an admin instance" do - assert_kind_of(Hbase::Admin, @shell.admin) + define_test "Shell::Shell#hbase_admin should return an admin instance" do + assert_kind_of(Hbase::Admin, @shell.hbase_admin) end - define_test "Shell::Shell#admin should cache admin instances" do - assert_same(@shell.admin, @shell.admin) + define_test "Shell::Shell#hbase_admin should cache admin instances" do + assert_same(@shell.hbase_admin, @shell.hbase_admin) end #------------------------------------------------------------------------------- @@ -44,10 +44,6 @@ class ShellTest < Test::Unit::TestCase assert_not_same(@shell.hbase_table('hbase:meta'), @shell.hbase_table('hbase:meta')) end - define_test "Shell::Shell#hbase attribute is a HBase instance" do - assert_kind_of(Hbase::Hbase, @shell.hbase) - end - #------------------------------------------------------------------------------- define_test "Shell::Shell#export_commands should export command methods to specified object" do diff --git a/hbase-shell/src/test/ruby/test_helper.rb b/hbase-shell/src/test/ruby/test_helper.rb index 3ed93252db8..179ee5bed48 100644 --- a/hbase-shell/src/test/ruby/test_helper.rb +++ b/hbase-shell/src/test/ruby/test_helper.rb @@ -43,24 +43,19 @@ module Hbase def setup_hbase hbase = ::Hbase::Hbase.new($TEST_CLUSTER.getConfiguration) - @shell = ::Shell::Shell.new(hbase, interactive = false) + @shell = ::Shell::Shell.new(hbase) end def shutdown @shell.hbase.shutdown end - # This function triggers exactly same path as the users. - def command(command, *args) - @shell.command(command, *args) - end - def table(table) @shell.hbase_table(table) end def admin - @shell.admin + @shell.hbase_admin end def taskmonitor @@ -86,7 +81,7 @@ module Hbase def create_test_table(name) # Create the table if needed unless admin.exists?(name) - command(:create, name, {'NAME' => 'x', 'VERSIONS' => 5}, 'y') + admin.create name, [{'NAME' => 'x', 'VERSIONS' => 5}, 'y'] return end @@ -99,7 +94,7 @@ module Hbase def create_test_table_with_splits(name, splits) # Create the table if needed unless admin.exists?(name) - command(:create, name, 'f1', splits) + admin.create name, 'f1', splits end # Enable the table if needed @@ -133,18 +128,6 @@ module Hbase puts "IGNORING DELETE ALL SNAPSHOT ERROR: #{e}" end end - - - def capture_stdout - begin - old_stdout = $stdout - $stdout = StringIO.new('','w') - yield - $stdout.string - ensure - $stdout = old_stdout - end - end end end