From 1466c46782eff73161e5a375e29c1840188dfda6 Mon Sep 17 00:00:00 2001 From: Josh Elser Date: Fri, 5 Jan 2018 18:13:54 -0500 Subject: [PATCH] HBASE-19714 Fix broken status-detailed Expanded on the unit tests to catch this in the future. --- hbase-shell/src/main/ruby/hbase/admin.rb | 4 +-- hbase-shell/src/test/ruby/hbase/admin_test.rb | 49 +++++++++++++++++++++++---- 2 files changed, 45 insertions(+), 8 deletions(-) diff --git a/hbase-shell/src/main/ruby/hbase/admin.rb b/hbase-shell/src/main/ruby/hbase/admin.rb index 6e3de37bbc..13b6578aa0 100644 --- a/hbase-shell/src/main/ruby/hbase/admin.rb +++ b/hbase-shell/src/main/ruby/hbase/admin.rb @@ -727,8 +727,8 @@ module Hbase if format == 'detailed' puts(format('version %s', status.getHBaseVersion)) # Put regions in transition first because usually empty - puts(format('%d regionsInTransition', status.getRegionsInTransition.size)) - for v in status.getRegionsInTransition + puts(format('%d regionsInTransition', status.getRegionStatesInTransition.size)) + for v in status.getRegionStatesInTransition puts(format(' %s', v)) end master = status.getMaster diff --git a/hbase-shell/src/test/ruby/hbase/admin_test.rb b/hbase-shell/src/test/ruby/hbase/admin_test.rb index 7318c1a719..cbeb8b626f 100644 --- a/hbase-shell/src/test/ruby/hbase/admin_test.rb +++ b/hbase-shell/src/test/ruby/hbase/admin_test.rb @@ -515,17 +515,54 @@ module Hbase assert_not_equal(nil, table) table.close end + end + + # Tests for the `status` shell command + class StatusTest < Test::Unit::TestCase + include TestHelpers + + def setup + setup_hbase + # Create test table if it does not exist + @test_name = 'hbase_shell_tests_table' + drop_test_table(@test_name) + create_test_table(@test_name) + end + + def teardown + shutdown + end + + define_test 'Get replication status' do + output = capture_stdout { replication_status('replication', 'both') } + puts "Status output:\n#{output}" + assert output.include? 'SOURCE' + assert output.include? 'SINK' + end + + define_test 'Get replication source metrics information' do + output = capture_stdout { replication_status('replication', 'source') } + puts "Status output:\n#{output}" + assert output.include? 'SOURCE' + end - define_test "Get replication status" do - replication_status("replication", "both") + define_test 'Get replication sink metrics information' do + output = capture_stdout { replication_status('replication', 'sink') } + puts "Status output:\n#{output}" + assert output.include? 'SINK' end - define_test "Get replication source metrics information" do - replication_status("replication", "source") + define_test 'Get simple status' do + output = capture_stdout { admin.status('simple', '') } + puts "Status output:\n#{output}" + assert output.include? 'active master' end - define_test "Get replication sink metrics information" do - replication_status("replication", "sink") + define_test 'Get detailed status' do + output = capture_stdout { admin.status('detailed', '') } + puts "Status output:\n#{output}" + # Some text which isn't in the simple output + assert output.include? 'regionsInTransition' end end -- 2.15.1