HBASE-14488 Procedure V2 - shell command to abort a procedure (Stephen Yuan Jiang)
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/c9622784 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/c9622784 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/c9622784 Branch: refs/heads/branch-1.1 Commit: c96227846b7f9610e4611bf75c44bedee54c4dfa Parents: 5284a18 Author: Stephen Yuan Jiang <syuanjiang...@gmail.com> Authored: Mon Sep 28 18:53:56 2015 -0700 Committer: Stephen Yuan Jiang <syuanjiang...@gmail.com> Committed: Wed Jan 6 00:34:54 2016 -0800 ---------------------------------------------------------------------- hbase-shell/src/main/ruby/hbase/admin.rb | 9 ++++ hbase-shell/src/main/ruby/shell.rb | 1 + .../main/ruby/shell/commands/abort_procedure.rb | 51 ++++++++++++++++++++ 3 files changed, 61 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/c9622784/hbase-shell/src/main/ruby/hbase/admin.rb ---------------------------------------------------------------------- diff --git a/hbase-shell/src/main/ruby/hbase/admin.rb b/hbase-shell/src/main/ruby/hbase/admin.rb index 5eea1fe..6e2d0fe 100644 --- a/hbase-shell/src/main/ruby/hbase/admin.rb +++ b/hbase-shell/src/main/ruby/hbase/admin.rb @@ -977,6 +977,15 @@ module Hbase end #---------------------------------------------------------------------------------------------- + # Abort a procedure + def abort_procedure?(proc_id, may_interrupt_if_running=nil) + if may_interrupt_if_running.nil? + @admin.abortProcedure(proc_id, true) + else + @admin.abortProcedure(proc_id, may_interrupt_if_running) + end + end + # List all procedures def list_procedures() @admin.listProcedures() http://git-wip-us.apache.org/repos/asf/hbase/blob/c9622784/hbase-shell/src/main/ruby/shell.rb ---------------------------------------------------------------------- diff --git a/hbase-shell/src/main/ruby/shell.rb b/hbase-shell/src/main/ruby/shell.rb index 4a73fef..563df92 100644 --- a/hbase-shell/src/main/ruby/shell.rb +++ b/hbase-shell/src/main/ruby/shell.rb @@ -399,6 +399,7 @@ Shell.load_command_group( 'procedures', :full_name => 'PROCEDURES MANAGEMENT', :commands => %w[ + abort_procedure list_procedures ] ) http://git-wip-us.apache.org/repos/asf/hbase/blob/c9622784/hbase-shell/src/main/ruby/shell/commands/abort_procedure.rb ---------------------------------------------------------------------- diff --git a/hbase-shell/src/main/ruby/shell/commands/abort_procedure.rb b/hbase-shell/src/main/ruby/shell/commands/abort_procedure.rb new file mode 100644 index 0000000..6f77ab7 --- /dev/null +++ b/hbase-shell/src/main/ruby/shell/commands/abort_procedure.rb @@ -0,0 +1,51 @@ +# +# +# 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 AbortProcedure < Command + def help + return <<-EOF +Given a procedure Id (and optional boolean may_interrupt_if_running parameter, +default is true), abort a procedure in hbase. Use with caution. Some procedures +might not be abortable. For experts only. + +If this command is accepted and the procedure is in the process of aborting, +it will return true; if the procedure could not be aborted (eg. procedure +does not exist, or procedure already completed or abort will cause corruption), +this command will return false. + +Examples: + + hbase> abort_procedure proc_id + hbase> abort_procedure proc_id, true + hbase> abort_procedure proc_id, false +EOF + end + + def command(proc_id, may_interrupt_if_running=nil) + format_simple_command do + formatter.row([ + admin.abort_procedure?(proc_id, may_interrupt_if_running).to_s + ]) + end + end + end + end +end \ No newline at end of file