From 6c6d862c35fb8102706020268693bc6be62a1e38 Mon Sep 17 00:00:00 2001 From: Stephen Yuan Jiang Date: Thu, 24 Sep 2015 20:42:55 -0700 Subject: [PATCH] HBASE-14487 Procedure V2 - shell command to list all procedures (Stephen Yuan Jiang) --- hbase-shell/src/main/ruby/hbase/admin.rb | 5 ++ hbase-shell/src/main/ruby/shell.rb | 8 ++++ .../ruby/shell/commands/list_procedures.rb | 46 +++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 hbase-shell/src/main/ruby/shell/commands/list_procedures.rb diff --git a/hbase-shell/src/main/ruby/hbase/admin.rb b/hbase-shell/src/main/ruby/hbase/admin.rb index a1445ae33de..bc0fe47eb3b 100644 --- a/hbase-shell/src/main/ruby/hbase/admin.rb +++ b/hbase-shell/src/main/ruby/hbase/admin.rb @@ -996,5 +996,10 @@ module Hbase def get_security_capabilities @admin.getSecurityCapabilities end + + # List all procedures + def list_procedures() + @admin.listProcedures() + end end end diff --git a/hbase-shell/src/main/ruby/shell.rb b/hbase-shell/src/main/ruby/shell.rb index dd686fc7023..736fecda83a 100644 --- a/hbase-shell/src/main/ruby/shell.rb +++ b/hbase-shell/src/main/ruby/shell.rb @@ -401,6 +401,14 @@ Shell.load_command_group( ] ) +Shell.load_command_group( + 'procedures', + :full_name => 'PROCEDURES MANAGEMENT', + :commands => %w[ + list_procedures + ] +) + Shell.load_command_group( 'visibility labels', :full_name => 'VISIBILITY LABEL TOOLS', diff --git a/hbase-shell/src/main/ruby/shell/commands/list_procedures.rb b/hbase-shell/src/main/ruby/shell/commands/list_procedures.rb new file mode 100644 index 00000000000..f407547f34c --- /dev/null +++ b/hbase-shell/src/main/ruby/shell/commands/list_procedures.rb @@ -0,0 +1,46 @@ +# +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +module Shell + module Commands + class ListProcedures < Command + def help + return <<-EOF +List all procedures in hbase. Examples: + + hbase> list_procedures +EOF + end + + def command() + now = Time.now + formatter.header([ "Id", "Name", "State", "Start_Time", "Last_Update" ]) + + list = admin.list_procedures() + list.each do |proc| + start_time = Time.at(proc.getStartTime / 1000).to_s + last_update = Time.at(proc.getLastUpdate / 1000).to_s + formatter.row([ proc.getProcId, proc.getProcName, proc.getProcState, start_time, last_update ]) + end + + formatter.footer(now, list.size) + end + end + end +end