You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2017/06/30 17:23:22 UTC
[3/4] hbase git commit: HBASE-18239 rubocop autocorrect for shell
http://git-wip-us.apache.org/repos/asf/hbase/blob/2115d4b5/hbase-shell/src/main/ruby/hbase/replication_admin.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/main/ruby/hbase/replication_admin.rb b/hbase-shell/src/main/ruby/hbase/replication_admin.rb
index b9df821..049f0c6 100644
--- a/hbase-shell/src/main/ruby/hbase/replication_admin.rb
+++ b/hbase-shell/src/main/ruby/hbase/replication_admin.rb
@@ -43,7 +43,7 @@ module Hbase
def add_peer(id, args = {}, peer_tableCFs = nil)
if args.is_a?(Hash)
unless peer_tableCFs.nil?
- raise(ArgumentError, "peer_tableCFs should be specified as TABLE_CFS in args")
+ raise(ArgumentError, 'peer_tableCFs should be specified as TABLE_CFS in args')
end
endpoint_classname = args.fetch(ENDPOINT_CLASSNAME, nil)
@@ -51,12 +51,12 @@ module Hbase
# Handle cases where custom replication endpoint and cluster key are either both provided
# or neither are provided
- if endpoint_classname.nil? and cluster_key.nil?
- raise(ArgumentError, "Either ENDPOINT_CLASSNAME or CLUSTER_KEY must be specified.")
+ if endpoint_classname.nil? && cluster_key.nil?
+ raise(ArgumentError, 'Either ENDPOINT_CLASSNAME or CLUSTER_KEY must be specified.')
end
# Cluster Key is required for ReplicationPeerConfig for a custom replication endpoint
- if !endpoint_classname.nil? and cluster_key.nil?
+ if !endpoint_classname.nil? && cluster_key.nil?
cluster_key = ZKConfig.getZooKeeperClusterKey(@configuration)
end
@@ -81,9 +81,9 @@ module Hbase
unless data.nil?
# Convert Strings to Bytes for peer_data
peer_data = replication_peer_config.get_peer_data
- data.each{|key, val|
+ data.each do |key, val|
peer_data.put(Bytes.to_bytes(key), Bytes.to_bytes(val))
- }
+ end
end
unless namespaces.nil?
@@ -97,14 +97,14 @@ module Hbase
unless table_cfs.nil?
# convert table_cfs to TableName
map = java.util.HashMap.new
- table_cfs.each{|key, val|
+ table_cfs.each do |key, val|
map.put(org.apache.hadoop.hbase.TableName.valueOf(key), val)
- }
+ end
replication_peer_config.set_table_cfs_map(map)
end
@admin.addReplicationPeer(id, replication_peer_config)
else
- raise(ArgumentError, "args must be a Hash")
+ raise(ArgumentError, 'args must be a Hash')
end
end
@@ -116,10 +116,10 @@ module Hbase
#---------------------------------------------------------------------------------------------
# Show replcated tables/column families, and their ReplicationType
- def list_replicated_tables(regex = ".*")
+ def list_replicated_tables(regex = '.*')
pattern = java.util.regex.Pattern.compile(regex)
- list = @admin.listReplicatedTableCFs()
- list.select {|t| pattern.match(t.getTable().getNameAsString())}
+ list = @admin.listReplicatedTableCFs
+ list.select { |t| pattern.match(t.getTable.getNameAsString) }
end
#----------------------------------------------------------------------------------------------
@@ -144,7 +144,7 @@ module Hbase
# Show the current tableCFs config for the specified peer
def show_peer_tableCFs(id)
rpc = @admin.getReplicationPeerConfig(id)
- ReplicationSerDeHelper.convertToString(rpc.getTableCFsMap())
+ ReplicationSerDeHelper.convertToString(rpc.getTableCFsMap)
end
#----------------------------------------------------------------------------------------------
@@ -153,9 +153,9 @@ module Hbase
unless tableCFs.nil?
# convert tableCFs to TableName
map = java.util.HashMap.new
- tableCFs.each{|key, val|
+ tableCFs.each do |key, val|
map.put(org.apache.hadoop.hbase.TableName.valueOf(key), val)
- }
+ end
rpc = get_peer_config(id)
unless rpc.nil?
rpc.setTableCFsMap(map)
@@ -170,9 +170,9 @@ module Hbase
unless tableCFs.nil?
# convert tableCFs to TableName
map = java.util.HashMap.new
- tableCFs.each{|key, val|
+ tableCFs.each do |key, val|
map.put(org.apache.hadoop.hbase.TableName.valueOf(key), val)
- }
+ end
end
@admin.appendReplicationPeerTableCFs(id, map)
end
@@ -183,9 +183,9 @@ module Hbase
unless tableCFs.nil?
# convert tableCFs to TableName
map = java.util.HashMap.new
- tableCFs.each{|key, val|
+ tableCFs.each do |key, val|
map.put(org.apache.hadoop.hbase.TableName.valueOf(key), val)
- }
+ end
end
@admin.removeReplicationPeerTableCFs(id, map)
end
@@ -210,10 +210,8 @@ module Hbase
unless namespaces.nil?
rpc = get_peer_config(id)
unless rpc.nil?
- ns_set = rpc.getNamespaces()
- if ns_set.nil?
- ns_set = java.util.HashSet.new
- end
+ ns_set = rpc.getNamespaces
+ ns_set = java.util.HashSet.new if ns_set.nil?
namespaces.each do |n|
ns_set.add(n)
end
@@ -228,7 +226,7 @@ module Hbase
unless namespaces.nil?
rpc = get_peer_config(id)
unless rpc.nil?
- ns_set = rpc.getNamespaces()
+ ns_set = rpc.getNamespaces
unless ns_set.nil?
namespaces.each do |n|
ns_set.remove(n)
@@ -281,14 +279,14 @@ module Hbase
peers.each do |peer|
map.put(peer.getPeerId, peer.getPeerConfig)
end
- return map
+ map
end
def get_peer_config(id)
@admin.getReplicationPeerConfig(id)
end
- def update_peer_config(id, args={})
+ def update_peer_config(id, args = {})
# Optional parameters
config = args.fetch(CONFIG, nil)
data = args.fetch(DATA, nil)
@@ -302,9 +300,9 @@ module Hbase
unless data.nil?
# Convert Strings to Bytes for peer_data
peer_data = replication_peer_config.get_peer_data
- data.each{|key, val|
+ data.each do |key, val|
peer_data.put(Bytes.to_bytes(key), Bytes.to_bytes(val))
- }
+ end
end
@admin.updateReplicationPeerConfig(id, replication_peer_config)
http://git-wip-us.apache.org/repos/asf/hbase/blob/2115d4b5/hbase-shell/src/main/ruby/hbase/rsgroup_admin.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/main/ruby/hbase/rsgroup_admin.rb b/hbase-shell/src/main/ruby/hbase/rsgroup_admin.rb
index 3b71062..c8ef3e9 100644
--- a/hbase-shell/src/main/ruby/hbase/rsgroup_admin.rb
+++ b/hbase-shell/src/main/ruby/hbase/rsgroup_admin.rb
@@ -36,21 +36,17 @@ module Hbase
#--------------------------------------------------------------------------
# Returns a list of groups in hbase
def list_rs_groups
- @admin.listRSGroups.map { |g| g.getName }
+ @admin.listRSGroups.map(&:getName)
end
#--------------------------------------------------------------------------
# get a group's information
def get_rsgroup(group_name)
group = @admin.getRSGroupInfo(group_name)
- if group.nil?
- raise(ArgumentError, 'Group does not exist: ' + group_name)
- end
+ raise(ArgumentError, 'Group does not exist: ' + group_name) if group.nil?
res = {}
- if block_given?
- yield('Servers:')
- end
+ yield('Servers:') if block_given?
servers = []
group.getServers.each do |v|
@@ -63,9 +59,7 @@ module Hbase
res[:servers] = servers
tables = []
- if block_given?
- yield('Tables:')
- end
+ yield('Tables:') if block_given?
group.getTables.each do |v|
if block_given?
yield(v.toString)
@@ -75,11 +69,7 @@ module Hbase
end
res[:tables] = tables
- if !block_given?
- res
- else
- nil
- end
+ res unless block_given?
end
#--------------------------------------------------------------------------
@@ -113,7 +103,7 @@ module Hbase
#--------------------------------------------------------------------------
# move server to a group
def move_tables(dest, *args)
- tables = java.util.HashSet.new;
+ tables = java.util.HashSet.new
args[0].each do |s|
tables.add(org.apache.hadoop.hbase.TableName.valueOf(s))
end
@@ -124,10 +114,9 @@ module Hbase
# get group of server
def get_rsgroup_of_server(server)
res = @admin.getRSGroupOfServer(
- org.apache.hadoop.hbase.net.Address.fromString(server))
- if res.nil?
- raise(ArgumentError,'Server has no group: ' + server)
- end
+ org.apache.hadoop.hbase.net.Address.fromString(server)
+ )
+ raise(ArgumentError, 'Server has no group: ' + server) if res.nil?
res
end
@@ -135,10 +124,9 @@ module Hbase
# get group of table
def get_rsgroup_of_table(table)
res = @admin.getRSGroupInfoOfTable(
- org.apache.hadoop.hbase.TableName.valueOf(table))
- if res.nil?
- raise(ArgumentError,'Table has no group: ' + table)
- end
+ org.apache.hadoop.hbase.TableName.valueOf(table)
+ )
+ raise(ArgumentError, 'Table has no group: ' + table) if res.nil?
res
end
@@ -146,7 +134,7 @@ module Hbase
# move server and table to a group
def move_servers_tables(dest, *args)
servers = java.util.HashSet.new
- tables = java.util.HashSet.new;
+ tables = java.util.HashSet.new
args[0].each do |s|
servers.add(org.apache.hadoop.hbase.net.Address.fromString(s))
end
@@ -155,6 +143,5 @@ module Hbase
end
@admin.moveServersAndTables(servers, tables, dest)
end
-
end
end
http://git-wip-us.apache.org/repos/asf/hbase/blob/2115d4b5/hbase-shell/src/main/ruby/hbase/security.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/main/ruby/hbase/security.rb b/hbase-shell/src/main/ruby/hbase/security.rb
index 6dd1fe0..63243fa 100644
--- a/hbase-shell/src/main/ruby/hbase/security.rb
+++ b/hbase-shell/src/main/ruby/hbase/security.rb
@@ -26,7 +26,7 @@ module Hbase
def initialize(admin)
@admin = admin
- @connection = @admin.getConnection()
+ @connection = @admin.getConnection
end
def close
@@ -34,31 +34,33 @@ module Hbase
end
#----------------------------------------------------------------------------------------------
- def grant(user, permissions, table_name=nil, family=nil, qualifier=nil)
+ def grant(user, permissions, table_name = nil, family = nil, qualifier = nil)
security_available?
# TODO: need to validate user name
begin
# Verify that the specified permission is valid
- if (permissions == nil || permissions.length == 0)
- raise(ArgumentError, "Invalid permission: no actions associated with user")
+ if permissions.nil? || permissions.empty?
+ raise(ArgumentError, 'Invalid permission: no actions associated with user')
end
perm = org.apache.hadoop.hbase.security.access.Permission.new(
- permissions.to_java_bytes)
+ permissions.to_java_bytes
+ )
- if (table_name != nil)
- tablebytes=table_name.to_java_bytes
- #check if the tablename passed is actually a namespace
- if (isNamespace?(table_name))
+ if !table_name.nil?
+ tablebytes = table_name.to_java_bytes
+ # check if the tablename passed is actually a namespace
+ if isNamespace?(table_name)
# Namespace should exist first.
namespace_name = table_name[1...table_name.length]
raise(ArgumentError, "Can't find a namespace: #{namespace_name}") unless
namespace_exists?(namespace_name)
org.apache.hadoop.hbase.security.access.AccessControlClient.grant(
- @connection, namespace_name, user, perm.getActions())
+ @connection, namespace_name, user, perm.getActions
+ )
else
# Table should exist
raise(ArgumentError, "Can't find a table: #{table_name}") unless exists?(table_name)
@@ -66,100 +68,106 @@ module Hbase
tableName = org.apache.hadoop.hbase.TableName.valueOf(table_name)
htd = @admin.getTableDescriptor(tableName)
- if (family != nil)
- raise(ArgumentError, "Can't find a family: #{family}") unless htd.hasFamily(family.to_java_bytes)
+ unless family.nil?
+ raise(ArgumentError, "Can't find a family: #{family}") unless htd.hasFamily(family.to_java_bytes)
end
- fambytes = family.to_java_bytes if (family != nil)
- qualbytes = qualifier.to_java_bytes if (qualifier != nil)
+ fambytes = family.to_java_bytes unless family.nil?
+ qualbytes = qualifier.to_java_bytes unless qualifier.nil?
org.apache.hadoop.hbase.security.access.AccessControlClient.grant(
- @connection, tableName, user, fambytes, qualbytes, perm.getActions())
+ @connection, tableName, user, fambytes, qualbytes, perm.getActions
+ )
end
else
# invoke cp endpoint to perform access controls
org.apache.hadoop.hbase.security.access.AccessControlClient.grant(
- @connection, user, perm.getActions())
+ @connection, user, perm.getActions
+ )
end
end
end
#----------------------------------------------------------------------------------------------
- def revoke(user, table_name=nil, family=nil, qualifier=nil)
+ def revoke(user, table_name = nil, family = nil, qualifier = nil)
security_available?
# TODO: need to validate user name
begin
- if (table_name != nil)
- #check if the tablename passed is actually a namespace
- if (isNamespace?(table_name))
+ if !table_name.nil?
+ # check if the tablename passed is actually a namespace
+ if isNamespace?(table_name)
# Namespace should exist first.
namespace_name = table_name[1...table_name.length]
raise(ArgumentError, "Can't find a namespace: #{namespace_name}") unless namespace_exists?(namespace_name)
- tablebytes=table_name.to_java_bytes
+ tablebytes = table_name.to_java_bytes
org.apache.hadoop.hbase.security.access.AccessControlClient.revoke(
- @connection, namespace_name, user)
+ @connection, namespace_name, user
+ )
else
- # Table should exist
- raise(ArgumentError, "Can't find a table: #{table_name}") unless exists?(table_name)
+ # Table should exist
+ raise(ArgumentError, "Can't find a table: #{table_name}") unless exists?(table_name)
- tableName = org.apache.hadoop.hbase.TableName.valueOf(table_name)
- htd = @admin.getTableDescriptor(tableName)
+ tableName = org.apache.hadoop.hbase.TableName.valueOf(table_name)
+ htd = @admin.getTableDescriptor(tableName)
- if (family != nil)
- raise(ArgumentError, "Can't find a family: #{family}") unless htd.hasFamily(family.to_java_bytes)
- end
+ unless family.nil?
+ raise(ArgumentError, "Can't find a family: #{family}") unless htd.hasFamily(family.to_java_bytes)
+ end
- fambytes = family.to_java_bytes if (family != nil)
- qualbytes = qualifier.to_java_bytes if (qualifier != nil)
+ fambytes = family.to_java_bytes unless family.nil?
+ qualbytes = qualifier.to_java_bytes unless qualifier.nil?
org.apache.hadoop.hbase.security.access.AccessControlClient.revoke(
- @connection, tableName, user, fambytes, qualbytes)
+ @connection, tableName, user, fambytes, qualbytes
+ )
end
else
perm = org.apache.hadoop.hbase.security.access.Permission.new(''.to_java_bytes)
org.apache.hadoop.hbase.security.access.AccessControlClient.revoke(
- @connection, user, perm.getActions())
+ @connection, user, perm.getActions
+ )
end
end
end
#----------------------------------------------------------------------------------------------
- def user_permission(table_regex=nil)
+ def user_permission(table_regex = nil)
security_available?
all_perms = org.apache.hadoop.hbase.security.access.AccessControlClient.getUserPermissions(
- @connection,table_regex)
+ @connection, table_regex
+ )
res = {}
- count = 0
+ count = 0
all_perms.each do |value|
- user_name = String.from_java_bytes(value.getUser)
- if (table_regex != nil && isNamespace?(table_regex))
- namespace = value.getNamespace()
- else
- namespace = (value.getTableName != nil) ? value.getTableName.getNamespaceAsString() : value.getNamespace()
- end
- table = (value.getTableName != nil) ? value.getTableName.getNameAsString() : ''
- family = (value.getFamily != nil) ?
- org.apache.hadoop.hbase.util.Bytes::toStringBinary(value.getFamily) :
- ''
- qualifier = (value.getQualifier != nil) ?
- org.apache.hadoop.hbase.util.Bytes::toStringBinary(value.getQualifier) :
- ''
-
- action = org.apache.hadoop.hbase.security.access.Permission.new value.getActions
-
- if block_given?
- yield(user_name, "#{namespace},#{table},#{family},#{qualifier}: #{action.to_s}")
- else
- res[user_name] ||= {}
- res[user_name]["#{family}:#{qualifier}"] = action
- end
- count += 1
+ user_name = String.from_java_bytes(value.getUser)
+ if !table_regex.nil? && isNamespace?(table_regex)
+ namespace = value.getNamespace
+ else
+ namespace = !value.getTableName.nil? ? value.getTableName.getNamespaceAsString : value.getNamespace
+ end
+ table = !value.getTableName.nil? ? value.getTableName.getNameAsString : ''
+ family = !value.getFamily.nil? ?
+ org.apache.hadoop.hbase.util.Bytes.toStringBinary(value.getFamily) :
+ ''
+ qualifier = !value.getQualifier.nil? ?
+ org.apache.hadoop.hbase.util.Bytes.toStringBinary(value.getQualifier) :
+ ''
+
+ action = org.apache.hadoop.hbase.security.access.Permission.new value.getActions
+
+ if block_given?
+ yield(user_name, "#{namespace},#{table},#{family},#{qualifier}: #{action}")
+ else
+ res[user_name] ||= {}
+ res[user_name]["#{family}:#{qualifier}"] = action
+ end
+ count += 1
end
- return ((block_given?) ? count : res)
+ (block_given? ? count : res)
end
# Does table exist?
@@ -171,15 +179,15 @@ module Hbase
table_name.start_with?('@')
end
- # Does Namespace exist
+ # Does Namespace exist
def namespace_exists?(namespace_name)
- return @admin.getNamespaceDescriptor(namespace_name) != nil
+ return !@admin.getNamespaceDescriptor(namespace_name).nil?
rescue org.apache.hadoop.hbase.NamespaceNotFoundException => e
return false
end
# Make sure that security features are available
- def security_available?()
+ def security_available?
caps = []
begin
# Try the getSecurityCapabilities API where supported.
@@ -189,11 +197,11 @@ module Hbase
rescue
# If we are unable to use getSecurityCapabilities, fall back with a check for
# deployment of the ACL table
- raise(ArgumentError, "DISABLED: Security features are not available") unless \
+ raise(ArgumentError, 'DISABLED: Security features are not available') unless \
exists?(org.apache.hadoop.hbase.security.access.AccessControlLists::ACL_TABLE_NAME)
return
end
- raise(ArgumentError, "DISABLED: Security features are not available") unless \
+ raise(ArgumentError, 'DISABLED: Security features are not available') unless \
caps.include? org.apache.hadoop.hbase.client.security.SecurityCapability::AUTHORIZATION
end
end
http://git-wip-us.apache.org/repos/asf/hbase/blob/2115d4b5/hbase-shell/src/main/ruby/hbase/table.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/main/ruby/hbase/table.rb b/hbase-shell/src/main/ruby/hbase/table.rb
index 0dda27a..b297f58 100644
--- a/hbase-shell/src/main/ruby/hbase/table.rb
+++ b/hbase-shell/src/main/ruby/hbase/table.rb
@@ -32,7 +32,7 @@ module Hbase
#
# e.g. name = scan, adds table.scan which calls Scan.scan
def self.add_shell_command(name)
- self.add_command(name, name, name)
+ add_command(name, name, name)
end
# add a named command to the table instance
@@ -42,18 +42,18 @@ module Hbase
# shell_command - name of the command in the shell
# internal_method_name - name of the method in the shell command to forward the call
def self.add_command(name, shell_command, internal_method_name)
- method = name.to_sym
- self.class_eval do
+ method = name.to_sym
+ class_eval do
define_method method do |*args|
- @shell.internal_command(shell_command, internal_method_name, self, *args)
- end
+ @shell.internal_command(shell_command, internal_method_name, self, *args)
+ end
end
end
# General help for the table
# class level so we can call it from anywhere
def self.help
- return <<-EOF
+ <<-EOF
Help for table-reference commands.
You can either create a table via 'create' and then manipulate the table via commands like 'put', 'get', etc.
@@ -113,13 +113,13 @@ EOF
def initialize(table, shell)
@table = table
- @name = @table.getName().getNameAsString()
+ @name = @table.getName.getNameAsString
@shell = shell
- @converters = Hash.new()
+ @converters = {}
end
- def close()
- @table.close()
+ def close
+ @table.close
end
# Note the below methods are prefixed with '_' to hide them from the average user, as
@@ -131,21 +131,21 @@ EOF
p = org.apache.hadoop.hbase.client.Put.new(row.to_s.to_java_bytes)
family, qualifier = parse_column_name(column)
if args.any?
- attributes = args[ATTRIBUTES]
- set_attributes(p, attributes) if attributes
- visibility = args[VISIBILITY]
- set_cell_visibility(p, visibility) if visibility
- ttl = args[TTL]
- set_op_ttl(p, ttl) if ttl
- end
- #Case where attributes are specified without timestamp
- if timestamp.kind_of?(Hash)
- timestamp.each do |k, v|
+ attributes = args[ATTRIBUTES]
+ set_attributes(p, attributes) if attributes
+ visibility = args[VISIBILITY]
+ set_cell_visibility(p, visibility) if visibility
+ ttl = args[TTL]
+ set_op_ttl(p, ttl) if ttl
+ end
+ # Case where attributes are specified without timestamp
+ if timestamp.is_a?(Hash)
+ timestamp.each do |k, v|
if k == 'ATTRIBUTES'
set_attributes(p, v)
elsif k == 'VISIBILITY'
set_cell_visibility(p, v)
- elsif k == "TTL"
+ elsif k == 'TTL'
set_op_ttl(p, v)
end
end
@@ -162,36 +162,36 @@ EOF
#----------------------------------------------------------------------------------------------
# Create a Delete mutation
def _createdelete_internal(row, column = nil,
- timestamp = org.apache.hadoop.hbase.HConstants::LATEST_TIMESTAMP, args = {})
+ timestamp = org.apache.hadoop.hbase.HConstants::LATEST_TIMESTAMP, args = {})
temptimestamp = timestamp
- if temptimestamp.kind_of?(Hash)
+ if temptimestamp.is_a?(Hash)
timestamp = org.apache.hadoop.hbase.HConstants::LATEST_TIMESTAMP
end
d = org.apache.hadoop.hbase.client.Delete.new(row.to_s.to_java_bytes, timestamp)
- if temptimestamp.kind_of?(Hash)
- temptimestamp.each do |k, v|
- if v.kind_of?(String)
+ if temptimestamp.is_a?(Hash)
+ temptimestamp.each do |_k, v|
+ if v.is_a?(String)
set_cell_visibility(d, v) if v
end
end
end
if args.any?
- visibility = args[VISIBILITY]
- set_cell_visibility(d, visibility) if visibility
+ visibility = args[VISIBILITY]
+ set_cell_visibility(d, visibility) if visibility
end
if column
family, qualifier = parse_column_name(column)
d.addColumns(family, qualifier, timestamp)
end
- return d
+ d
end
#----------------------------------------------------------------------------------------------
# Delete rows using prefix
def _deleterows_internal(row, column = nil,
- timestamp = org.apache.hadoop.hbase.HConstants::LATEST_TIMESTAMP, args={})
- cache = row["CACHE"] ? row["CACHE"] : 100
- prefix = row["ROWPREFIXFILTER"]
+ timestamp = org.apache.hadoop.hbase.HConstants::LATEST_TIMESTAMP, args = {})
+ cache = row['CACHE'] ? row['CACHE'] : 100
+ prefix = row['ROWPREFIXFILTER']
# create scan to get table names using prefix
scan = org.apache.hadoop.hbase.client.Scan.new
@@ -204,7 +204,7 @@ EOF
iter = scanner.iterator
while iter.hasNext
row = iter.next
- key = org.apache.hadoop.hbase.util.Bytes::toStringBinary(row.getRow)
+ key = org.apache.hadoop.hbase.util.Bytes.toStringBinary(row.getRow)
d = _createdelete_internal(key, column, timestamp, args)
list.add(d)
if list.size >= cache
@@ -218,20 +218,20 @@ EOF
#----------------------------------------------------------------------------------------------
# Delete a cell
def _delete_internal(row, column,
- timestamp = org.apache.hadoop.hbase.HConstants::LATEST_TIMESTAMP, args = {})
+ timestamp = org.apache.hadoop.hbase.HConstants::LATEST_TIMESTAMP, args = {})
_deleteall_internal(row, column, timestamp, args)
end
#----------------------------------------------------------------------------------------------
# Delete a row
def _deleteall_internal(row, column = nil,
- timestamp = org.apache.hadoop.hbase.HConstants::LATEST_TIMESTAMP, args = {})
+ timestamp = org.apache.hadoop.hbase.HConstants::LATEST_TIMESTAMP, args = {})
# delete operation doesn't need read permission. Retaining the read check for
# meta table as a part of HBASE-5837.
if is_meta_table?
- raise ArgumentError, "Row Not Found" if _get_internal(row).nil?
+ raise ArgumentError, 'Row Not Found' if _get_internal(row).nil?
end
- if row.kind_of?(Hash)
+ if row.is_a?(Hash)
_deleterows_internal(row, column, timestamp, args)
else
d = _createdelete_internal(row, column, timestamp, args)
@@ -241,19 +241,17 @@ EOF
#----------------------------------------------------------------------------------------------
# Increment a counter atomically
- def _incr_internal(row, column, value = nil, args={})
- if value.kind_of?(Hash)
- value = 1
- end
+ def _incr_internal(row, column, value = nil, args = {})
+ value = 1 if value.is_a?(Hash)
value ||= 1
incr = org.apache.hadoop.hbase.client.Increment.new(row.to_s.to_java_bytes)
family, qualifier = parse_column_name(column)
if qualifier.nil?
- raise ArgumentError, "Failed to provide both column family and column qualifier for incr"
+ raise ArgumentError, 'Failed to provide both column family and column qualifier for incr'
end
if args.any?
- attributes = args[ATTRIBUTES]
- visibility = args[VISIBILITY]
+ attributes = args[ATTRIBUTES]
+ visibility = args[VISIBILITY]
set_attributes(incr, attributes) if attributes
set_cell_visibility(incr, visibility) if visibility
ttl = args[TTL]
@@ -265,21 +263,21 @@ EOF
# Fetch cell value
cell = result.listCells[0]
- org.apache.hadoop.hbase.util.Bytes::toLong(cell.getValueArray,
- cell.getValueOffset, cell.getValueLength)
+ org.apache.hadoop.hbase.util.Bytes.toLong(cell.getValueArray,
+ cell.getValueOffset, cell.getValueLength)
end
#----------------------------------------------------------------------------------------------
# appends the value atomically
- def _append_internal(row, column, value, args={})
+ def _append_internal(row, column, value, args = {})
append = org.apache.hadoop.hbase.client.Append.new(row.to_s.to_java_bytes)
family, qualifier = parse_column_name(column)
if qualifier.nil?
- raise ArgumentError, "Failed to provide both column family and column qualifier for append"
+ raise ArgumentError, 'Failed to provide both column family and column qualifier for append'
end
if args.any?
- attributes = args[ATTRIBUTES]
- visibility = args[VISIBILITY]
+ attributes = args[ATTRIBUTES]
+ visibility = args[VISIBILITY]
set_attributes(append, attributes) if attributes
set_cell_visibility(append, visibility) if visibility
ttl = args[TTL]
@@ -291,31 +289,30 @@ EOF
# Fetch cell value
cell = result.listCells[0]
- org.apache.hadoop.hbase.util.Bytes::toStringBinary(cell.getValueArray,
- cell.getValueOffset, cell.getValueLength)
+ org.apache.hadoop.hbase.util.Bytes.toStringBinary(cell.getValueArray,
+ cell.getValueOffset, cell.getValueLength)
end
#----------------------------------------------------------------------------------------------
# Count rows in a table
def _count_internal(interval = 1000, scan = nil)
-
- raise(ArgumentError, "Scan argument should be org.apache.hadoop.hbase.client.Scan") \
- unless scan == nil || scan.kind_of?(org.apache.hadoop.hbase.client.Scan)
+ raise(ArgumentError, 'Scan argument should be org.apache.hadoop.hbase.client.Scan') \
+ unless scan.nil? || scan.is_a?(org.apache.hadoop.hbase.client.Scan)
# We can safely set scanner caching with the first key only filter
- if scan == nil
+ if scan.nil?
scan = org.apache.hadoop.hbase.client.Scan.new
scan.setCacheBlocks(false)
scan.setCaching(10)
scan.setFilter(org.apache.hadoop.hbase.filter.FirstKeyOnlyFilter.new)
else
scan.setCacheBlocks(false)
- filter = scan.getFilter()
+ filter = scan.getFilter
firstKeyOnlyFilter = org.apache.hadoop.hbase.filter.FirstKeyOnlyFilter.new
- if filter == nil
+ if filter.nil?
scan.setFilter(firstKeyOnlyFilter)
else
- firstKeyOnlyFilter.setReversed(filter.isReversed())
+ firstKeyOnlyFilter.setReversed(filter.isReversed)
scan.setFilter(org.apache.hadoop.hbase.filter.FilterList.new(filter, firstKeyOnlyFilter))
end
end
@@ -329,15 +326,15 @@ EOF
while iter.hasNext
row = iter.next
count += 1
- next unless (block_given? && count % interval == 0)
+ next unless block_given? && count % interval == 0
# Allow command modules to visualize counting process
yield(count,
- org.apache.hadoop.hbase.util.Bytes::toStringBinary(row.getRow))
+ org.apache.hadoop.hbase.util.Bytes.toStringBinary(row.getRow))
end
- scanner.close()
+ scanner.close
# Return the counter
- return count
+ count
end
#----------------------------------------------------------------------------------------------
@@ -346,19 +343,19 @@ EOF
get = org.apache.hadoop.hbase.client.Get.new(row.to_s.to_java_bytes)
maxlength = -1
count = 0
- @converters.clear()
+ @converters.clear
# Normalize args
- args = args.first if args.first.kind_of?(Hash)
- if args.kind_of?(String) || args.kind_of?(Array)
- columns = [ args ].flatten.compact
+ args = args.first if args.first.is_a?(Hash)
+ if args.is_a?(String) || args.is_a?(Array)
+ columns = [args].flatten.compact
args = { COLUMNS => columns }
end
#
# Parse arguments
#
- unless args.kind_of?(Hash)
+ unless args.is_a?(Hash)
raise ArgumentError, "Failed parse of #{args.inspect}, #{args.class}"
end
@@ -373,17 +370,17 @@ EOF
converter_class = args.delete(FORMATTER_CLASS) || 'org.apache.hadoop.hbase.util.Bytes'
unless args.empty?
columns = args[COLUMN] || args[COLUMNS]
- if args[VERSIONS]
- vers = args[VERSIONS]
- else
- vers = 1
- end
+ vers = if args[VERSIONS]
+ args[VERSIONS]
+ else
+ 1
+ end
if columns
# Normalize types, convert string to an array of strings
- columns = [ columns ] if columns.is_a?(String)
+ columns = [columns] if columns.is_a?(String)
# At this point it is either an array or some unsupported stuff
- unless columns.kind_of?(Array)
+ unless columns.is_a?(Array)
raise ArgumentError, "Failed parse column argument type #{args.inspect}, #{args.class}"
end
@@ -403,14 +400,14 @@ EOF
get.setTimeRange(args[TIMERANGE][0], args[TIMERANGE][1]) if args[TIMERANGE]
else
if attributes
- set_attributes(get, attributes)
+ set_attributes(get, attributes)
elsif authorizations
- set_authorizations(get, authorizations)
+ set_authorizations(get, authorizations)
else
- # May have passed TIMESTAMP and row only; wants all columns from ts.
- unless ts = args[TIMESTAMP] || tr = args[TIMERANGE]
- raise ArgumentError, "Failed parse of #{args.inspect}, #{args.class}"
- end
+ # May have passed TIMESTAMP and row only; wants all columns from ts.
+ unless ts = args[TIMESTAMP] || tr = args[TIMERANGE]
+ raise ArgumentError, "Failed parse of #{args.inspect}, #{args.class}"
+ end
end
get.setMaxVersions(vers)
@@ -422,11 +419,12 @@ EOF
set_authorizations(get, authorizations) if authorizations
end
- unless filter.class == String
- get.setFilter(filter)
- else
+ if filter.class == String
get.setFilter(
- org.apache.hadoop.hbase.filter.ParseFilter.new.parseFilterString(filter.to_java_bytes))
+ org.apache.hadoop.hbase.filter.ParseFilter.new.parseFilterString(filter.to_java_bytes)
+ )
+ else
+ get.setFilter(filter)
end
get.setConsistency(org.apache.hadoop.hbase.client.Consistency.valueOf(consistency)) if consistency
@@ -444,9 +442,9 @@ EOF
res = {}
result.listCells.each do |c|
family = convert_bytes_with_position(c.getFamilyArray,
- c.getFamilyOffset, c.getFamilyLength, converter_class, converter)
+ c.getFamilyOffset, c.getFamilyLength, converter_class, converter)
qualifier = convert_bytes_with_position(c.getQualifierArray,
- c.getQualifierOffset, c.getQualifierLength, converter_class, converter)
+ c.getQualifierOffset, c.getQualifierLength, converter_class, converter)
column = "#{family}:#{qualifier}"
value = to_string(column, c, maxlength, converter_class, converter)
@@ -459,7 +457,7 @@ EOF
end
# If block given, we've yielded all the results, otherwise just return them
- return ((block_given?) ? [count, is_stale]: res)
+ (block_given? ? [count, is_stale] : res)
end
#----------------------------------------------------------------------------------------------
@@ -477,48 +475,48 @@ EOF
# Fetch cell value
cell = result.listCells[0]
- org.apache.hadoop.hbase.util.Bytes::toLong(cell.getValueArray,
- cell.getValueOffset, cell.getValueLength)
+ org.apache.hadoop.hbase.util.Bytes.toLong(cell.getValueArray,
+ cell.getValueOffset, cell.getValueLength)
end
def _hash_to_scan(args)
if args.any?
- enablemetrics = args["ALL_METRICS"].nil? ? false : args["ALL_METRICS"]
- enablemetrics = enablemetrics || !args["METRICS"].nil?
- filter = args["FILTER"]
- startrow = args["STARTROW"] || ''
- stoprow = args["STOPROW"]
- rowprefixfilter = args["ROWPREFIXFILTER"]
- timestamp = args["TIMESTAMP"]
- columns = args["COLUMNS"] || args["COLUMN"] || []
+ enablemetrics = args['ALL_METRICS'].nil? ? false : args['ALL_METRICS']
+ enablemetrics ||= !args['METRICS'].nil?
+ filter = args['FILTER']
+ startrow = args['STARTROW'] || ''
+ stoprow = args['STOPROW']
+ rowprefixfilter = args['ROWPREFIXFILTER']
+ timestamp = args['TIMESTAMP']
+ columns = args['COLUMNS'] || args['COLUMN'] || []
# If CACHE_BLOCKS not set, then default 'true'.
- cache_blocks = args["CACHE_BLOCKS"].nil? ? true: args["CACHE_BLOCKS"]
- cache = args["CACHE"] || 0
- reversed = args["REVERSED"] || false
- versions = args["VERSIONS"] || 1
+ cache_blocks = args['CACHE_BLOCKS'].nil? ? true : args['CACHE_BLOCKS']
+ cache = args['CACHE'] || 0
+ reversed = args['REVERSED'] || false
+ versions = args['VERSIONS'] || 1
timerange = args[TIMERANGE]
- raw = args["RAW"] || false
+ raw = args['RAW'] || false
attributes = args[ATTRIBUTES]
authorizations = args[AUTHORIZATIONS]
consistency = args[CONSISTENCY]
# Normalize column names
columns = [columns] if columns.class == String
- limit = args["LIMIT"] || -1
- unless columns.kind_of?(Array)
- raise ArgumentError.new("COLUMNS must be specified as a String or an Array")
+ limit = args['LIMIT'] || -1
+ unless columns.is_a?(Array)
+ raise ArgumentError, 'COLUMNS must be specified as a String or an Array'
end
scan = if stoprow
- org.apache.hadoop.hbase.client.Scan.new(startrow.to_java_bytes, stoprow.to_java_bytes)
- else
- org.apache.hadoop.hbase.client.Scan.new(startrow.to_java_bytes)
+ org.apache.hadoop.hbase.client.Scan.new(startrow.to_java_bytes, stoprow.to_java_bytes)
+ else
+ org.apache.hadoop.hbase.client.Scan.new(startrow.to_java_bytes)
end
# This will overwrite any startrow/stoprow settings
scan.setRowPrefixFilter(rowprefixfilter.to_java_bytes) if rowprefixfilter
# Clear converters from last scan.
- @converters.clear()
+ @converters.clear
columns.each do |c|
family, qualifier = parse_column_name(c.to_s)
@@ -529,11 +527,12 @@ EOF
end
end
- unless filter.class == String
- scan.setFilter(filter)
- else
+ if filter.class == String
scan.setFilter(
- org.apache.hadoop.hbase.filter.ParseFilter.new.parseFilterString(filter.to_java_bytes))
+ org.apache.hadoop.hbase.filter.ParseFilter.new.parseFilterString(filter.to_java_bytes)
+ )
+ else
+ scan.setFilter(filter)
end
scan.setScanMetricsEnabled(enablemetrics) if enablemetrics
@@ -562,19 +561,19 @@ EOF
#----------------------------------------------------------------------------------------------
# Scans whole table or a range of keys and returns rows matching specific criteria
def _scan_internal(args = {}, scan = nil)
- raise(ArgumentError, "Args should be a Hash") unless args.kind_of?(Hash)
- raise(ArgumentError, "Scan argument should be org.apache.hadoop.hbase.client.Scan") \
- unless scan == nil || scan.kind_of?(org.apache.hadoop.hbase.client.Scan)
+ raise(ArgumentError, 'Args should be a Hash') unless args.is_a?(Hash)
+ raise(ArgumentError, 'Scan argument should be org.apache.hadoop.hbase.client.Scan') \
+ unless scan.nil? || scan.is_a?(org.apache.hadoop.hbase.client.Scan)
- limit = args["LIMIT"] || -1
- maxlength = args.delete("MAXLENGTH") || -1
+ limit = args['LIMIT'] || -1
+ maxlength = args.delete('MAXLENGTH') || -1
converter = args.delete(FORMATTER) || nil
converter_class = args.delete(FORMATTER_CLASS) || 'org.apache.hadoop.hbase.util.Bytes'
count = 0
res = {}
# Start the scanner
- scan = scan == nil ? _hash_to_scan(args) : scan
+ scan = scan.nil? ? _hash_to_scan(args) : scan
scanner = @table.getScanner(scan)
iter = scanner.iterator
@@ -586,9 +585,9 @@ EOF
row.listCells.each do |c|
family = convert_bytes_with_position(c.getFamilyArray,
- c.getFamilyOffset, c.getFamilyLength, converter_class, converter)
+ c.getFamilyOffset, c.getFamilyLength, converter_class, converter)
qualifier = convert_bytes_with_position(c.getQualifierArray,
- c.getQualifierOffset, c.getQualifierLength, converter_class, converter)
+ c.getQualifierOffset, c.getQualifierLength, converter_class, converter)
column = "#{family}:#{qualifier}"
cell = to_string(column, c, maxlength, converter_class, converter)
@@ -609,25 +608,26 @@ EOF
end
end
- scanner.close()
- return ((block_given?) ? [count, is_stale] : res)
+ scanner.close
+ (block_given? ? [count, is_stale] : res)
end
- # Apply OperationAttributes to puts/scans/gets
+ # Apply OperationAttributes to puts/scans/gets
def set_attributes(oprattr, attributes)
- raise(ArgumentError, "Attributes must be a Hash type") unless attributes.kind_of?(Hash)
- for k,v in attributes
+ raise(ArgumentError, 'Attributes must be a Hash type') unless attributes.is_a?(Hash)
+ for k, v in attributes
v = v.to_s unless v.nil?
oprattr.setAttribute(k.to_s, v.to_java_bytes)
end
end
def set_cell_permissions(op, permissions)
- raise(ArgumentError, "Permissions must be a Hash type") unless permissions.kind_of?(Hash)
+ raise(ArgumentError, 'Permissions must be a Hash type') unless permissions.is_a?(Hash)
map = java.util.HashMap.new
- permissions.each do |user,perms|
+ permissions.each do |user, perms|
map.put(user.to_s, org.apache.hadoop.hbase.security.access.Permission.new(
- perms.to_java_bytes))
+ perms.to_java_bytes
+ ))
end
op.setACL(map)
end
@@ -635,15 +635,19 @@ EOF
def set_cell_visibility(oprattr, visibility)
oprattr.setCellVisibility(
org.apache.hadoop.hbase.security.visibility.CellVisibility.new(
- visibility.to_s))
+ visibility.to_s
+ )
+ )
end
def set_authorizations(oprattr, authorizations)
- raise(ArgumentError, "Authorizations must be a Array type") unless authorizations.kind_of?(Array)
- auths = [ authorizations ].flatten.compact
+ raise(ArgumentError, 'Authorizations must be a Array type') unless authorizations.is_a?(Array)
+ auths = [authorizations].flatten.compact
oprattr.setAuthorizations(
org.apache.hadoop.hbase.security.visibility.Authorizations.new(
- auths.to_java(:string)))
+ auths.to_java(:string)
+ )
+ )
end
def set_op_ttl(op, ttl)
@@ -664,14 +668,14 @@ EOF
end
end
- #Add the following admin utilities to the table
+ # Add the following admin utilities to the table
add_admin_utils :enable, :disable, :flush, :drop, :describe, :snapshot
#----------------------------
- #give the general help for the table
+ # give the general help for the table
# or the named command
- def help (command = nil)
- #if there is a command, get the per-command help from the shell
+ def help(command = nil)
+ # if there is a command, get the per-command help from the shell
if command
begin
return @shell.help_command(command)
@@ -680,13 +684,13 @@ EOF
return nil
end
end
- return @shell.help('table_help')
+ @shell.help('table_help')
end
# Table to string
def to_s
- cl = self.class()
- return "#{cl} - #{@name}"
+ cl = self.class
+ "#{cl} - #{@name}"
end
# Standard ruby call to get the return value for an object
@@ -707,51 +711,51 @@ EOF
# Checks if current table is one of the 'meta' tables
def is_meta_table?
- org.apache.hadoop.hbase.TableName::META_TABLE_NAME.equals(@table.getName())
+ org.apache.hadoop.hbase.TableName::META_TABLE_NAME.equals(@table.getName)
end
# Returns family and (when has it) qualifier for a column name
def parse_column_name(column)
split = org.apache.hadoop.hbase.KeyValue.parseColumn(column.to_java_bytes)
set_converter(split) if split.length > 1
- return split[0], (split.length > 1) ? split[1] : nil
+ [split[0], split.length > 1 ? split[1] : nil]
end
# Make a String of the passed kv
# Intercept cells whose format we know such as the info:regioninfo in hbase:meta
- def to_string(column, kv, maxlength = -1, converter_class = nil, converter=nil)
+ def to_string(column, kv, maxlength = -1, converter_class = nil, converter = nil)
if is_meta_table?
- if column == 'info:regioninfo' or column == 'info:splitA' or column == 'info:splitB'
+ if column == 'info:regioninfo' || column == 'info:splitA' || column == 'info:splitB'
hri = org.apache.hadoop.hbase.HRegionInfo.parseFromOrNull(kv.getValueArray,
- kv.getValueOffset, kv.getValueLength)
- return "timestamp=%d, value=%s" % [kv.getTimestamp, hri.toString]
+ kv.getValueOffset, kv.getValueLength)
+ return format('timestamp=%d, value=%s', kv.getTimestamp, hri.toString)
end
if column == 'info:serverstartcode'
if kv.getValueLength > 0
- str_val = org.apache.hadoop.hbase.util.Bytes.toLong(kv.getValueArray,
- kv.getValueOffset, kv.getValueLength)
+ str_val = org.apache.hadoop.hbase.util.Bytes.toLong(kv.getValueArray,
+ kv.getValueOffset, kv.getValueLength)
else
str_val = org.apache.hadoop.hbase.util.Bytes.toStringBinary(kv.getValueArray,
- kv.getValueOffset, kv.getValueLength)
+ kv.getValueOffset, kv.getValueLength)
end
- return "timestamp=%d, value=%s" % [kv.getTimestamp, str_val]
+ return format('timestamp=%d, value=%s', kv.getTimestamp, str_val)
end
end
if kv.isDelete
- val = "timestamp=#{kv.getTimestamp}, type=#{org.apache.hadoop.hbase.KeyValue::Type::codeToType(kv.getType)}"
+ val = "timestamp=#{kv.getTimestamp}, type=#{org.apache.hadoop.hbase.KeyValue::Type.codeToType(kv.getType)}"
else
val = "timestamp=#{kv.getTimestamp}, value=#{convert(column, kv, converter_class, converter)}"
end
- (maxlength != -1) ? val[0, maxlength] : val
+ maxlength != -1 ? val[0, maxlength] : val
end
- def convert(column, kv, converter_class='org.apache.hadoop.hbase.util.Bytes', converter='toStringBinary')
- #use org.apache.hadoop.hbase.util.Bytes as the default class
+ def convert(column, kv, converter_class = 'org.apache.hadoop.hbase.util.Bytes', converter = 'toStringBinary')
+ # use org.apache.hadoop.hbase.util.Bytes as the default class
converter_class = 'org.apache.hadoop.hbase.util.Bytes' unless converter_class
- #use org.apache.hadoop.hbase.util.Bytes::toStringBinary as the default convertor
+ # use org.apache.hadoop.hbase.util.Bytes::toStringBinary as the default convertor
converter = 'toStringBinary' unless converter
- if @converters.has_key?(column)
+ if @converters.key?(column)
# lookup the CONVERTER for certain column - "cf:qualifier"
matches = /c\((.+)\)\.(.+)/.match(@converters[column])
if matches.nil?
@@ -767,7 +771,7 @@ EOF
convert_bytes(org.apache.hadoop.hbase.CellUtil.cloneValue(kv), klazz_name, converter)
end
- def convert_bytes(bytes, converter_class=nil, converter_method=nil)
+ def convert_bytes(bytes, converter_class = nil, converter_method = nil)
convert_bytes_with_position(bytes, 0, bytes.length, converter_class, converter_method)
end
@@ -792,14 +796,14 @@ EOF
#----------------------------------------------------------------------------------------------
# Get the split points for the table
- def _get_splits_internal()
- locator = @table.getRegionLocator()
- splits = locator.getAllRegionLocations().
- map{|i| Bytes.toStringBinary(i.getRegionInfo().getStartKey)}.delete_if{|k| k == ""}
- locator.close()
- puts("Total number of splits = %s" % [splits.size + 1])
+ def _get_splits_internal
+ locator = @table.getRegionLocator
+ splits = locator.getAllRegionLocations
+ .map { |i| Bytes.toStringBinary(i.getRegionInfo.getStartKey) }.delete_if { |k| k == '' }
+ locator.close
+ puts(format('Total number of splits = %s', splits.size + 1))
puts splits
- return splits
+ splits
end
end
end
http://git-wip-us.apache.org/repos/asf/hbase/blob/2115d4b5/hbase-shell/src/main/ruby/hbase/taskmonitor.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/main/ruby/hbase/taskmonitor.rb b/hbase-shell/src/main/ruby/hbase/taskmonitor.rb
index d312558..849752b 100644
--- a/hbase-shell/src/main/ruby/hbase/taskmonitor.rb
+++ b/hbase-shell/src/main/ruby/hbase/taskmonitor.rb
@@ -21,8 +21,8 @@
include Java
# Add the $HBASE_HOME/lib directory to the ruby load_path to load jackson
-if File.exists?(File.join(File.dirname(__FILE__), "..", "lib"))
- $LOAD_PATH.unshift File.join(File.dirname(__FILE__), "..", "lib")
+if File.exist?(File.join(File.dirname(__FILE__), '..', 'lib'))
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
end
module Hbase
@@ -32,34 +32,29 @@ module Hbase
#---------------------------------------------------------------------------------------------
# Represents information reported by a server on a single MonitoredTask
class Task
-
- def initialize(taskMap,host)
-
- taskMap.each_pair do |k,v|
+ def initialize(taskMap, host)
+ taskMap.each_pair do |k, v|
case k
- when "statustimems"
- @statustime = Time.at(v/1000)
- when "status"
- @status = v
- when "starttimems"
- @starttime = Time.at(v/1000)
- when "description"
- @description = v
- when "state"
- @state = v
+ when 'statustimems'
+ @statustime = Time.at(v / 1000)
+ when 'status'
+ @status = v
+ when 'starttimems'
+ @starttime = Time.at(v / 1000)
+ when 'description'
+ @description = v
+ when 'state'
+ @state = v
end
end
@host = host
-
end
def statustime
# waiting IPC handlers often have statustime = -1, in this case return starttime
- if @statustime > Time.at(-1)
- return @statustime
- end
- return @starttime
+ return @statustime if @statustime > Time.at(-1)
+ @starttime
end
attr_reader :host
@@ -67,120 +62,111 @@ module Hbase
attr_reader :starttime
attr_reader :description
attr_reader :state
-
end
-
def initialize(configuration)
@conf = configuration
@conn = org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(@conf)
- @admin = @conn.getAdmin()
+ @admin = @conn.getAdmin
end
#---------------------------------------------------------------------------------------------------
# Returns a filtered list of tasks on the given host
- def tasksOnHost(filter,host)
-
+ def tasksOnHost(filter, host)
java_import 'java.net.URL'
java_import 'org.codehaus.jackson.map.ObjectMapper'
- infoport = @admin.getClusterStatus().getLoad(host).getInfoServerPort().to_s
+ infoport = @admin.getClusterStatus.getLoad(host).getInfoServerPort.to_s
# Note: This condition use constants from hbase-server
- #if (!@admin.getConfiguration().getBoolean(org.apache.hadoop.hbase.http.ServerConfigurationKeys::HBASE_SSL_ENABLED_KEY,
+ # if (!@admin.getConfiguration().getBoolean(org.apache.hadoop.hbase.http.ServerConfigurationKeys::HBASE_SSL_ENABLED_KEY,
# org.apache.hadoop.hbase.http.ServerConfigurationKeys::HBASE_SSL_ENABLED_DEFAULT))
# schema = "http://"
- #else
+ # else
# schema = "https://"
- #end
- schema = "http://"
- url = schema + host.hostname + ":" + infoport + "/rs-status?format=json&filter=" + filter
+ # end
+ schema = 'http://'
+ url = schema + host.hostname + ':' + infoport + '/rs-status?format=json&filter=' + filter
json = URL.new(url)
mapper = ObjectMapper.new
# read and parse JSON
- tasksArrayList = mapper.readValue(json,java.lang.Object.java_class)
+ tasksArrayList = mapper.readValue(json, java.lang.Object.java_class)
# convert to an array of TaskMonitor::Task instances
- tasks = Array.new
+ tasks = []
tasksArrayList.each do |t|
- tasks.unshift Task.new(t,host)
+ tasks.unshift Task.new(t, host)
end
- return tasks
-
+ tasks
end
#---------------------------------------------------------------------------------------------------
# Prints a table of filtered tasks on requested hosts
- def tasks(filter,hosts)
-
+ def tasks(filter, hosts)
# put all tasks on all requested hosts in the same list
tasks = []
hosts.each do |host|
- tasks.concat(tasksOnHost(filter,host))
+ tasks.concat(tasksOnHost(filter, host))
end
- puts("%d tasks as of: %s" % [tasks.size,Time.now.strftime("%Y-%m-%d %H:%M:%S")])
+ puts(format('%d tasks as of: %s', tasks.size, Time.now.strftime('%Y-%m-%d %H:%M:%S')))
- if tasks.size() == 0
- puts("No " + filter + " tasks currently running.")
+ if tasks.empty?
+ puts('No ' + filter + ' tasks currently running.')
else
# determine table width
longestStatusWidth = 0
longestDescriptionWidth = 0
tasks.each do |t|
- longestStatusWidth = [longestStatusWidth,t.status.length].max
- longestDescriptionWidth = [longestDescriptionWidth,t.description.length].max
+ longestStatusWidth = [longestStatusWidth, t.status.length].max
+ longestDescriptionWidth = [longestDescriptionWidth, t.description.length].max
end
# set the maximum character width of each column, without padding
hostWidth = 15
startTimeWidth = 19
stateWidth = 8
- descriptionWidth = [32,longestDescriptionWidth].min
- statusWidth = [36,longestStatusWidth + 27].min
+ descriptionWidth = [32, longestDescriptionWidth].min
+ statusWidth = [36, longestStatusWidth + 27].min
- rowSeparator = "+" + "-" * (hostWidth + 2) +
- "+" + "-" * (startTimeWidth + 2) +
- "+" + "-" * (stateWidth + 2) +
- "+" + "-" * (descriptionWidth + 2) +
- "+" + "-" * (statusWidth + 2) + "+"
+ rowSeparator = '+' + '-' * (hostWidth + 2) +
+ '+' + '-' * (startTimeWidth + 2) +
+ '+' + '-' * (stateWidth + 2) +
+ '+' + '-' * (descriptionWidth + 2) +
+ '+' + '-' * (statusWidth + 2) + '+'
# print table header
- cells = [setCellWidth("Host",hostWidth),
- setCellWidth("Start Time",startTimeWidth),
- setCellWidth("State",stateWidth),
- setCellWidth("Description",descriptionWidth),
- setCellWidth("Status",statusWidth)]
+ cells = [setCellWidth('Host', hostWidth),
+ setCellWidth('Start Time', startTimeWidth),
+ setCellWidth('State', stateWidth),
+ setCellWidth('Description', descriptionWidth),
+ setCellWidth('Status', statusWidth)]
- line = "| %s | %s | %s | %s | %s |" % cells
+ line = format('| %s | %s | %s | %s | %s |', cells)
puts(rowSeparator)
puts(line)
# print table content
tasks.each do |t|
+ cells = [setCellWidth(t.host.hostname, hostWidth),
+ setCellWidth(t.starttime.strftime('%Y-%m-%d %H:%M:%S'), startTimeWidth),
+ setCellWidth(t.state, stateWidth),
+ setCellWidth(t.description, descriptionWidth),
+ setCellWidth(format('%s (since %d seconds ago)', t.status, Time.now - t.statustime), statusWidth)]
- cells = [setCellWidth(t.host.hostname,hostWidth),
- setCellWidth(t.starttime.strftime("%Y-%m-%d %H:%M:%S"),startTimeWidth),
- setCellWidth(t.state,stateWidth),
- setCellWidth(t.description,descriptionWidth),
- setCellWidth("%s (since %d seconds ago)" %
- [t.status,Time.now - t.statustime], statusWidth)]
-
- line = "| %s | %s | %s | %s | %s |" % cells
+ line = format('| %s | %s | %s | %s | %s |', cells)
puts(rowSeparator)
puts(line)
-
end
puts(rowSeparator)
end
-
end
#---------------------------------------------------------------------------------------------------
@@ -189,16 +175,15 @@ module Hbase
#
# right-pad with spaces or truncate with ellipses to match passed width
- def setCellWidth(cellContent,width)
- numCharsTooShort = width-cellContent.length
+ def setCellWidth(cellContent, width)
+ numCharsTooShort = width - cellContent.length
if numCharsTooShort < 0
# cellContent is too long, so truncate
- return cellContent[0,[width-3,0].max] + "." * [3,width].min
+ return cellContent[0, [width - 3, 0].max] + '.' * [3, width].min
else
# cellContent is requested width or too short, so right-pad with zero or more spaces
- return cellContent + " " * numCharsTooShort
+ return cellContent + ' ' * numCharsTooShort
end
end
-
end
end
http://git-wip-us.apache.org/repos/asf/hbase/blob/2115d4b5/hbase-shell/src/main/ruby/hbase/visibility_labels.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/main/ruby/hbase/visibility_labels.rb b/hbase-shell/src/main/ruby/hbase/visibility_labels.rb
index 8e6c93c..e2ae2ca 100644
--- a/hbase-shell/src/main/ruby/hbase/visibility_labels.rb
+++ b/hbase-shell/src/main/ruby/hbase/visibility_labels.rb
@@ -23,10 +23,9 @@ java_import org.apache.hadoop.hbase.util.Bytes
module Hbase
class VisibilityLabelsAdmin
-
def initialize(admin)
@admin = admin
- @connection = @admin.getConnection()
+ @connection = @admin.getConnection
end
def close
@@ -36,53 +35,43 @@ module Hbase
def add_labels(*args)
visibility_feature_available?
# Normalize args
- if args.kind_of?(Array)
- labels = [ args ].flatten.compact
- end
- if labels.size() == 0
- raise(ArgumentError, "Arguments cannot be null")
- end
+ labels = [args].flatten.compact if args.is_a?(Array)
+ raise(ArgumentError, 'Arguments cannot be null') if labels.empty?
begin
response = VisibilityClient.addLabels(@connection, labels.to_java(:string))
if response.nil?
- raise(ArgumentError, "DISABLED: Visibility labels feature is not available")
+ raise(ArgumentError, 'DISABLED: Visibility labels feature is not available')
end
- labelsWithException = ""
- list = response.getResultList()
+ labelsWithException = ''
+ list = response.getResultList
list.each do |result|
- if result.hasException()
- labelsWithException += Bytes.toString(result.getException().getValue().toByteArray())
- end
- end
- if labelsWithException.length > 0
- raise(ArgumentError, labelsWithException)
- end
+ if result.hasException
+ labelsWithException += Bytes.toString(result.getException.getValue.toByteArray)
+ end
+ end
+ raise(ArgumentError, labelsWithException) unless labelsWithException.empty?
end
end
def set_auths(user, *args)
visibility_feature_available?
# Normalize args
- if args.kind_of?(Array)
- auths = [ args ].flatten.compact
- end
+ auths = [args].flatten.compact if args.is_a?(Array)
begin
response = VisibilityClient.setAuths(@connection, auths.to_java(:string), user)
if response.nil?
- raise(ArgumentError, "DISABLED: Visibility labels feature is not available")
+ raise(ArgumentError, 'DISABLED: Visibility labels feature is not available')
end
- labelsWithException = ""
- list = response.getResultList()
+ labelsWithException = ''
+ list = response.getResultList
list.each do |result|
- if result.hasException()
- labelsWithException += Bytes.toString(result.getException().getValue().toByteArray())
- end
- end
- if labelsWithException.length > 0
- raise(ArgumentError, labelsWithException)
+ if result.hasException
+ labelsWithException += Bytes.toString(result.getException.getValue.toByteArray)
+ end
end
+ raise(ArgumentError, labelsWithException) unless labelsWithException.empty?
end
end
@@ -91,18 +80,18 @@ module Hbase
begin
response = VisibilityClient.getAuths(@connection, user)
if response.nil?
- raise(ArgumentError, "DISABLED: Visibility labels feature is not available")
+ raise(ArgumentError, 'DISABLED: Visibility labels feature is not available')
end
return response.getAuthList
end
end
- def list_labels(regex = ".*")
+ def list_labels(regex = '.*')
visibility_feature_available?
begin
response = VisibilityClient.listLabels(@connection, regex)
if response.nil?
- raise(ArgumentError, "DISABLED: Visibility labels feature is not available")
+ raise(ArgumentError, 'DISABLED: Visibility labels feature is not available')
end
return response.getLabelList
end
@@ -111,30 +100,26 @@ module Hbase
def clear_auths(user, *args)
visibility_feature_available?
# Normalize args
- if args.kind_of?(Array)
- auths = [ args ].flatten.compact
- end
+ auths = [args].flatten.compact if args.is_a?(Array)
begin
response = VisibilityClient.clearAuths(@connection, auths.to_java(:string), user)
if response.nil?
- raise(ArgumentError, "DISABLED: Visibility labels feature is not available")
+ raise(ArgumentError, 'DISABLED: Visibility labels feature is not available')
end
- labelsWithException = ""
- list = response.getResultList()
+ labelsWithException = ''
+ list = response.getResultList
list.each do |result|
- if result.hasException()
- labelsWithException += Bytes.toString(result.getException().getValue().toByteArray())
- end
- end
- if labelsWithException.length > 0
- raise(ArgumentError, labelsWithException)
+ if result.hasException
+ labelsWithException += Bytes.toString(result.getException.getValue.toByteArray)
+ end
end
+ raise(ArgumentError, labelsWithException) unless labelsWithException.empty?
end
end
# Make sure that lables table is available
- def visibility_feature_available?()
+ def visibility_feature_available?
caps = []
begin
# Try the getSecurityCapabilities API where supported.
@@ -142,11 +127,11 @@ module Hbase
rescue
# If we are unable to use getSecurityCapabilities, fall back with a check for
# deployment of the labels table
- raise(ArgumentError, "DISABLED: Visibility labels feature is not available") unless \
+ raise(ArgumentError, 'DISABLED: Visibility labels feature is not available') unless \
exists?(VisibilityConstants::LABELS_TABLE_NAME)
return
end
- raise(ArgumentError, "DISABLED: Visibility labels feature is not available") unless \
+ raise(ArgumentError, 'DISABLED: Visibility labels feature is not available') unless \
caps.include? org.apache.hadoop.hbase.client.security.SecurityCapability::CELL_VISIBILITY
end
http://git-wip-us.apache.org/repos/asf/hbase/blob/2115d4b5/hbase-shell/src/main/ruby/hbase_constants.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/main/ruby/hbase_constants.rb b/hbase-shell/src/main/ruby/hbase_constants.rb
index 55806cf..ebaae78 100644
--- a/hbase-shell/src/main/ruby/hbase_constants.rb
+++ b/hbase-shell/src/main/ruby/hbase_constants.rb
@@ -32,62 +32,62 @@ java_import('java.lang.Long') { |_package, name| "J#{name}" }
java_import('java.lang.Boolean') { |_package, name| "J#{name}" }
module HBaseConstants
- COLUMN = "COLUMN"
- COLUMNS = "COLUMNS"
- TIMESTAMP = "TIMESTAMP"
- TIMERANGE = "TIMERANGE"
+ COLUMN = 'COLUMN'.freeze
+ COLUMNS = 'COLUMNS'.freeze
+ TIMESTAMP = 'TIMESTAMP'.freeze
+ TIMERANGE = 'TIMERANGE'.freeze
NAME = org.apache.hadoop.hbase.HConstants::NAME
VERSIONS = org.apache.hadoop.hbase.HConstants::VERSIONS
IN_MEMORY = org.apache.hadoop.hbase.HConstants::IN_MEMORY
IN_MEMORY_COMPACTION = org.apache.hadoop.hbase.HColumnDescriptor::IN_MEMORY_COMPACTION
METADATA = org.apache.hadoop.hbase.HConstants::METADATA
- STOPROW = "STOPROW"
- STARTROW = "STARTROW"
- ROWPREFIXFILTER = "ROWPREFIXFILTER"
+ STOPROW = 'STOPROW'.freeze
+ STARTROW = 'STARTROW'.freeze
+ ROWPREFIXFILTER = 'ROWPREFIXFILTER'.freeze
ENDROW = STOPROW
- RAW = "RAW"
- LIMIT = "LIMIT"
- METHOD = "METHOD"
- MAXLENGTH = "MAXLENGTH"
- CACHE_BLOCKS = "CACHE_BLOCKS"
- ALL_METRICS = "ALL_METRICS"
- METRICS = "METRICS"
- REVERSED = "REVERSED"
- REPLICATION_SCOPE = "REPLICATION_SCOPE"
- INTERVAL = 'INTERVAL'
- CACHE = 'CACHE'
- FILTER = 'FILTER'
- SPLITS = 'SPLITS'
- SPLITS_FILE = 'SPLITS_FILE'
- SPLITALGO = 'SPLITALGO'
- NUMREGIONS = 'NUMREGIONS'
- REGION_REPLICATION = 'REGION_REPLICATION'
- REGION_REPLICA_ID = 'REGION_REPLICA_ID'
+ RAW = 'RAW'.freeze
+ LIMIT = 'LIMIT'.freeze
+ METHOD = 'METHOD'.freeze
+ MAXLENGTH = 'MAXLENGTH'.freeze
+ CACHE_BLOCKS = 'CACHE_BLOCKS'.freeze
+ ALL_METRICS = 'ALL_METRICS'.freeze
+ METRICS = 'METRICS'.freeze
+ REVERSED = 'REVERSED'.freeze
+ REPLICATION_SCOPE = 'REPLICATION_SCOPE'.freeze
+ INTERVAL = 'INTERVAL'.freeze
+ CACHE = 'CACHE'.freeze
+ FILTER = 'FILTER'.freeze
+ SPLITS = 'SPLITS'.freeze
+ SPLITS_FILE = 'SPLITS_FILE'.freeze
+ SPLITALGO = 'SPLITALGO'.freeze
+ NUMREGIONS = 'NUMREGIONS'.freeze
+ REGION_REPLICATION = 'REGION_REPLICATION'.freeze
+ REGION_REPLICA_ID = 'REGION_REPLICA_ID'.freeze
CONFIGURATION = org.apache.hadoop.hbase.HConstants::CONFIGURATION
- ATTRIBUTES="ATTRIBUTES"
- VISIBILITY="VISIBILITY"
- AUTHORIZATIONS = "AUTHORIZATIONS"
- SKIP_FLUSH = 'SKIP_FLUSH'
- CONSISTENCY = "CONSISTENCY"
- USER = 'USER'
- TABLE = 'TABLE'
- NAMESPACE = 'NAMESPACE'
- TYPE = 'TYPE'
- NONE = 'NONE'
- VALUE = 'VALUE'
- ENDPOINT_CLASSNAME = 'ENDPOINT_CLASSNAME'
- CLUSTER_KEY = 'CLUSTER_KEY'
- TABLE_CFS = 'TABLE_CFS'
- NAMESPACES = 'NAMESPACES'
- CONFIG = 'CONFIG'
- DATA = 'DATA'
- SERVER_NAME = 'SERVER_NAME'
- LOCALITY_THRESHOLD = 'LOCALITY_THRESHOLD'
- RESTORE_ACL = 'RESTORE_ACL'
- FORMATTER = 'FORMATTER'
- FORMATTER_CLASS = 'FORMATTER_CLASS'
- POLICY = 'POLICY'
- REGIONSERVER = 'REGIONSERVER'
+ ATTRIBUTES = 'ATTRIBUTES'.freeze
+ VISIBILITY = 'VISIBILITY'.freeze
+ AUTHORIZATIONS = 'AUTHORIZATIONS'.freeze
+ SKIP_FLUSH = 'SKIP_FLUSH'.freeze
+ CONSISTENCY = 'CONSISTENCY'.freeze
+ USER = 'USER'.freeze
+ TABLE = 'TABLE'.freeze
+ NAMESPACE = 'NAMESPACE'.freeze
+ TYPE = 'TYPE'.freeze
+ NONE = 'NONE'.freeze
+ VALUE = 'VALUE'.freeze
+ ENDPOINT_CLASSNAME = 'ENDPOINT_CLASSNAME'.freeze
+ CLUSTER_KEY = 'CLUSTER_KEY'.freeze
+ TABLE_CFS = 'TABLE_CFS'.freeze
+ NAMESPACES = 'NAMESPACES'.freeze
+ CONFIG = 'CONFIG'.freeze
+ DATA = 'DATA'.freeze
+ SERVER_NAME = 'SERVER_NAME'.freeze
+ LOCALITY_THRESHOLD = 'LOCALITY_THRESHOLD'.freeze
+ RESTORE_ACL = 'RESTORE_ACL'.freeze
+ FORMATTER = 'FORMATTER'.freeze
+ FORMATTER_CLASS = 'FORMATTER_CLASS'.freeze
+ POLICY = 'POLICY'.freeze
+ REGIONSERVER = 'REGIONSERVER'.freeze
# Load constants from hbase java API
def self.promote_constants(constants)
http://git-wip-us.apache.org/repos/asf/hbase/blob/2115d4b5/hbase-shell/src/main/ruby/irb/hirb.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/main/ruby/irb/hirb.rb b/hbase-shell/src/main/ruby/irb/hirb.rb
index 4d6d277..904a000 100644
--- a/hbase-shell/src/main/ruby/irb/hirb.rb
+++ b/hbase-shell/src/main/ruby/irb/hirb.rb
@@ -32,28 +32,25 @@ module IRB
# down in IRB didn't seem to work. I think the worst thing that can
# happen is the shell exiting because of failed IRB construction with
# no error (though we're not blanking STDERR)
- begin
- # Map the '/dev/null' according to the runing platform
- # Under Windows platform the 'dev/null' is not fully compliant with unix,
- # and the 'NUL' object need to be use instead.
- devnull = "/dev/null"
- devnull = "NUL" if WINDOZE
- f = File.open(devnull, "w")
- $stdout = f
- super
- ensure
- f.close()
- $stdout = STDOUT
- end
+
+ # Map the '/dev/null' according to the runing platform
+ # Under Windows platform the 'dev/null' is not fully compliant with unix,
+ # and the 'NUL' object need to be use instead.
+ devnull = '/dev/null'
+ devnull = 'NUL' if WINDOZE
+ f = File.open(devnull, 'w')
+ $stdout = f
+ super
+ ensure
+ f.close
+ $stdout = STDOUT
end
def output_value
# Suppress output if last_value is 'nil'
# Otherwise, when user types help, get ugly 'nil'
# after all output.
- if @context.last_value != nil
- super
- end
+ super unless @context.last_value.nil?
end
end
end
http://git-wip-us.apache.org/repos/asf/hbase/blob/2115d4b5/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 ab4d514..469505f 100644
--- a/hbase-shell/src/main/ruby/shell.rb
+++ b/hbase-shell/src/main/ruby/shell.rb
@@ -29,7 +29,7 @@ module Shell
@@command_groups
end
- def self.load_command(name, group, aliases=[])
+ def self.load_command(name, group, aliases = [])
return if commands[name]
# Register command in the group
@@ -39,7 +39,7 @@ module Shell
# Load command
begin
require "shell/commands/#{name}"
- klass_name = name.to_s.gsub(/(?:^|_)(.)/) { $1.upcase } # camelize
+ klass_name = name.to_s.gsub(/(?:^|_)(.)/) { Regexp.last_match(1).upcase } # camelize
commands[name] = eval("Commands::#{klass_name}")
aliases.each do |an_alias|
commands[an_alias] = commands[name]
@@ -53,10 +53,10 @@ module Shell
raise ArgumentError, "No :commands for group #{group}" unless opts[:commands]
command_groups[group] = {
- :commands => [],
- :command_names => opts[:commands],
- :full_name => opts[:full_name] || group,
- :comment => opts[:comment]
+ commands: [],
+ command_names: opts[:commands],
+ full_name: opts[:full_name] || group,
+ comment: opts[:comment]
}
all_aliases = opts[:aliases] || {}
@@ -76,18 +76,18 @@ module Shell
@debug = false
attr_accessor :debug
- def initialize(hbase, interactive=true)
+ def initialize(hbase, interactive = true)
self.hbase = hbase
self.interactive = interactive
end
# Returns Admin class from admin.rb
def admin
- @admin ||= hbase.admin()
+ @admin ||= hbase.admin
end
def hbase_taskmonitor
- @hbase_taskmonitor ||= hbase.taskmonitor()
+ @hbase_taskmonitor ||= hbase.taskmonitor
end
def hbase_table(name)
@@ -95,23 +95,23 @@ module Shell
end
def hbase_replication_admin
- @hbase_replication_admin ||= hbase.replication_admin()
+ @hbase_replication_admin ||= hbase.replication_admin
end
def hbase_security_admin
- @hbase_security_admin ||= hbase.security_admin()
+ @hbase_security_admin ||= hbase.security_admin
end
def hbase_visibility_labels_admin
- @hbase_visibility_labels_admin ||= hbase.visibility_labels_admin()
+ @hbase_visibility_labels_admin ||= hbase.visibility_labels_admin
end
def hbase_quotas_admin
- @hbase_quotas_admin ||= hbase.quotas_admin()
+ @hbase_quotas_admin ||= hbase.quotas_admin
end
def hbase_rsgroup_admin
- @rsgroup_admin ||= hbase.rsgroup_admin()
+ @rsgroup_admin ||= hbase.rsgroup_admin
end
def export_commands(where)
@@ -140,7 +140,7 @@ module Shell
# Return value is only useful in non-interactive mode, for e.g. tests.
def command(command, *args)
ret = internal_command(command, :command, *args)
- if self.interactive
+ if interactive
return nil
else
return ret
@@ -151,8 +151,8 @@ module Shell
# command - name of the command to call
# 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)
+ def internal_command(command, method_name = :command, *args)
+ command_instance(command).command_safe(debug, method_name, *args)
end
def print_banner
@@ -168,12 +168,12 @@ module Shell
puts "Command: #{command}"
puts command_instance(command).help
puts
- return nil
+ nil
end
def help_command(command)
puts command_instance(command).help
- return nil
+ nil
end
def help_group(group_name)
@@ -185,7 +185,7 @@ module Shell
puts group[:comment]
puts
end
- return nil
+ nil
end
def help(command = nil)
@@ -200,23 +200,23 @@ module Shell
puts
puts 'COMMAND GROUPS:'
::Shell.command_groups.each do |name, group|
- puts " Group name: " + name
- puts " Commands: " + group[:command_names].sort.join(', ')
+ puts ' Group name: ' + name
+ puts ' Commands: ' + group[:command_names].sort.join(', ')
puts
end
unless command
puts 'SHELL USAGE:'
help_footer
end
- return nil
+ nil
end
def help_header
- return "HBase Shell, version #{org.apache.hadoop.hbase.util.VersionInfo.getVersion()}, " +
- "r#{org.apache.hadoop.hbase.util.VersionInfo.getRevision()}, " +
- "#{org.apache.hadoop.hbase.util.VersionInfo.getDate()}" + "\n" +
- "Type 'help \"COMMAND\"', (e.g. 'help \"get\"' -- the quotes are necessary) for help on a specific command.\n" +
- "Commands are grouped. Type 'help \"COMMAND_GROUP\"', (e.g. 'help \"general\"') for help on a command group."
+ "HBase Shell, version #{org.apache.hadoop.hbase.util.VersionInfo.getVersion}, " \
+ "r#{org.apache.hadoop.hbase.util.VersionInfo.getRevision}, " \
+ "#{org.apache.hadoop.hbase.util.VersionInfo.getDate}" + "\n" \
+ "Type 'help \"COMMAND\"', (e.g. 'help \"get\"' -- the quotes are necessary) for help on a specific command.\n" \
+ "Commands are grouped. Type 'help \"COMMAND_GROUP\"', (e.g. 'help \"general\"') for help on a command group."
end
def help_footer
@@ -253,8 +253,8 @@ require 'shell/commands'
# Load all commands
Shell.load_command_group(
'general',
- :full_name => 'GENERAL HBASE SHELL COMMANDS',
- :commands => %w[
+ full_name: 'GENERAL HBASE SHELL COMMANDS',
+ commands: %w[
status
version
table_help
@@ -265,8 +265,8 @@ Shell.load_command_group(
Shell.load_command_group(
'ddl',
- :full_name => 'TABLES MANAGEMENT COMMANDS',
- :commands => %w[
+ full_name: 'TABLES MANAGEMENT COMMANDS',
+ commands: %w[
alter
create
describe
@@ -287,15 +287,15 @@ Shell.load_command_group(
locate_region
list_regions
],
- :aliases => {
+ aliases: {
'describe' => ['desc']
}
)
Shell.load_command_group(
'namespace',
- :full_name => 'NAMESPACE MANAGEMENT COMMANDS',
- :commands => %w[
+ full_name: 'NAMESPACE MANAGEMENT COMMANDS',
+ commands: %w[
create_namespace
drop_namespace
alter_namespace
@@ -307,8 +307,8 @@ Shell.load_command_group(
Shell.load_command_group(
'dml',
- :full_name => 'DATA MANIPULATION COMMANDS',
- :commands => %w[
+ full_name: 'DATA MANIPULATION COMMANDS',
+ commands: %w[
count
delete
deleteall
@@ -326,9 +326,9 @@ Shell.load_command_group(
Shell.load_command_group(
'tools',
- :full_name => 'HBASE SURGERY TOOLS',
- :comment => "WARNING: Above commands are for 'experts'-only as misuse can damage an install",
- :commands => %w[
+ full_name: 'HBASE SURGERY TOOLS',
+ comment: "WARNING: Above commands are for 'experts'-only as misuse can damage an install",
+ commands: %w[
assign
balancer
balance_switch
@@ -359,16 +359,16 @@ Shell.load_command_group(
splitormerge_enabled
clear_compaction_queues
],
- # TODO remove older hlog_roll command
- :aliases => {
+ # TODO: remove older hlog_roll command
+ aliases: {
'wal_roll' => ['hlog_roll']
}
)
Shell.load_command_group(
'replication',
- :full_name => 'CLUSTER REPLICATION TOOLS',
- :commands => %w[
+ full_name: 'CLUSTER REPLICATION TOOLS',
+ commands: %w[
add_peer
remove_peer
list_peers
@@ -393,8 +393,8 @@ Shell.load_command_group(
Shell.load_command_group(
'snapshots',
- :full_name => 'CLUSTER SNAPSHOT TOOLS',
- :commands => %w[
+ full_name: 'CLUSTER SNAPSHOT TOOLS',
+ commands: %w[
snapshot
clone_snapshot
restore_snapshot
@@ -408,8 +408,8 @@ Shell.load_command_group(
Shell.load_command_group(
'configuration',
- :full_name => 'ONLINE CONFIGURATION TOOLS',
- :commands => %w[
+ full_name: 'ONLINE CONFIGURATION TOOLS',
+ commands: %w[
update_config
update_all_config
]
@@ -417,8 +417,8 @@ Shell.load_command_group(
Shell.load_command_group(
'quotas',
- :full_name => 'CLUSTER QUOTAS TOOLS',
- :commands => %w[
+ full_name: 'CLUSTER QUOTAS TOOLS',
+ commands: %w[
set_quota
list_quotas
list_quota_table_sizes
@@ -429,9 +429,9 @@ Shell.load_command_group(
Shell.load_command_group(
'security',
- :full_name => 'SECURITY TOOLS',
- :comment => "NOTE: Above commands are only applicable if running with the AccessController coprocessor",
- :commands => %w[
+ full_name: 'SECURITY TOOLS',
+ comment: 'NOTE: Above commands are only applicable if running with the AccessController coprocessor',
+ commands: %w[
list_security_capabilities
grant
revoke
@@ -441,8 +441,8 @@ Shell.load_command_group(
Shell.load_command_group(
'procedures',
- :full_name => 'PROCEDURES & LOCKS MANAGEMENT',
- :commands => %w[
+ full_name: 'PROCEDURES & LOCKS MANAGEMENT',
+ commands: %w[
abort_procedure
list_procedures
list_locks
@@ -451,9 +451,9 @@ Shell.load_command_group(
Shell.load_command_group(
'visibility labels',
- :full_name => 'VISIBILITY LABEL TOOLS',
- :comment => "NOTE: Above commands are only applicable if running with the VisibilityController coprocessor",
- :commands => %w[
+ full_name: 'VISIBILITY LABEL TOOLS',
+ comment: 'NOTE: Above commands are only applicable if running with the VisibilityController coprocessor',
+ commands: %w[
add_labels
list_labels
set_auths
@@ -465,10 +465,10 @@ Shell.load_command_group(
Shell.load_command_group(
'rsgroup',
- :full_name => 'RSGroups',
- :comment => "NOTE: The rsgroup Coprocessor Endpoint must be enabled on the Master else commands fail with:
+ full_name: 'RSGroups',
+ comment: "NOTE: The rsgroup Coprocessor Endpoint must be enabled on the Master else commands fail with:
UnknownProtocolException: No registered Master Coprocessor Endpoint found for RSGroupAdminService",
- :commands => %w[
+ commands: %w[
list_rsgroups
get_rsgroup
add_rsgroup
http://git-wip-us.apache.org/repos/asf/hbase/blob/2115d4b5/hbase-shell/src/main/ruby/shell/commands.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/main/ruby/shell/commands.rb b/hbase-shell/src/main/ruby/shell/commands.rb
index 5f7a2e6..94b5667 100644
--- a/hbase-shell/src/main/ruby/shell/commands.rb
+++ b/hbase-shell/src/main/ruby/shell/commands.rb
@@ -22,12 +22,11 @@ require 'shell/formatter'
module Shell
module Commands
class Command
-
def initialize(shell)
@shell = shell
end
- #wrap an execution of cmd to catch hbase exceptions
+ # wrap an execution of cmd to catch hbase exceptions
# cmd - command name to execute
# args - arguments to pass to the command
def command_safe(debug, cmd = :command, *args)
@@ -35,7 +34,7 @@ module Shell
# 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)
+ # (everything is a message, so this is just the formal semantics to support that idiom)
translate_hbase_exceptions(*args) { send(cmd, *args) }
rescue => e
rootCause = e
@@ -57,7 +56,7 @@ module Shell
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])
+ formatter.output_str(format('Took %.4f seconds', @end_time - @start_time))
end
# Convenience functions to get different admins
@@ -109,44 +108,40 @@ module Shell
yield
rescue => cause
# let individual command handle exceptions first
- if self.respond_to?(:handle_exceptions)
- self.handle_exceptions(cause, *args)
- end
+ handle_exceptions(cause, *args) if respond_to?(:handle_exceptions)
# Global HBase exception handling below if not handled by respective command above
- if cause.kind_of?(org.apache.hadoop.hbase.TableNotFoundException) then
+ if cause.is_a?(org.apache.hadoop.hbase.TableNotFoundException)
raise "Unknown table #{args.first}!"
end
- if cause.kind_of?(org.apache.hadoop.hbase.UnknownRegionException) then
+ if cause.is_a?(org.apache.hadoop.hbase.UnknownRegionException)
raise "Unknown region #{args.first}!"
end
- if cause.kind_of?(org.apache.hadoop.hbase.NamespaceNotFoundException) then
+ if cause.is_a?(org.apache.hadoop.hbase.NamespaceNotFoundException)
raise "Unknown namespace #{args.first}!"
end
- if cause.kind_of?(org.apache.hadoop.hbase.snapshot.SnapshotDoesNotExistException) then
+ if cause.is_a?(org.apache.hadoop.hbase.snapshot.SnapshotDoesNotExistException)
raise "Unknown snapshot #{args.first}!"
end
- if cause.kind_of?(org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException) then
+ if cause.is_a?(org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException)
exceptions = cause.getCauses
exceptions.each do |exception|
- if exception.kind_of?(org.apache.hadoop.hbase.regionserver.NoSuchColumnFamilyException) then
+ if exception.is_a?(org.apache.hadoop.hbase.regionserver.NoSuchColumnFamilyException)
valid_cols = table(args.first).get_all_columns.map { |c| c + '*' }
- raise "Unknown column family! Valid column names: #{valid_cols.join(", ")}"
+ raise "Unknown column family! Valid column names: #{valid_cols.join(', ')}"
end
end
end
- if cause.kind_of?(org.apache.hadoop.hbase.TableExistsException) then
+ if cause.is_a?(org.apache.hadoop.hbase.TableExistsException)
raise "Table already exists: #{args.first}!"
end
# To be safe, here only AccessDeniedException is considered. In future
# we might support more in more generic approach when possible.
- if cause.kind_of?(org.apache.hadoop.hbase.security.AccessDeniedException) then
- str = java.lang.String.new("#{cause}")
+ if cause.is_a?(org.apache.hadoop.hbase.security.AccessDeniedException)
+ str = java.lang.String.new(cause.to_s)
# Error message is merged with stack trace, reference StringUtils.stringifyException
# This is to parse and get the error message from the whole.
strs = str.split("\n")
- if strs.size > 0 then
- raise "#{strs[0]}"
- end
+ raise (strs[0]).to_s unless strs.empty?
end
# Throw the other exception which hasn't been handled above
http://git-wip-us.apache.org/repos/asf/hbase/blob/2115d4b5/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
index e69e133..28c7d85 100644
--- a/hbase-shell/src/main/ruby/shell/commands/abort_procedure.rb
+++ b/hbase-shell/src/main/ruby/shell/commands/abort_procedure.rb
@@ -21,7 +21,7 @@ module Shell
module Commands
class AbortProcedure < Command
def help
- return <<-EOF
+ <<-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.
@@ -39,9 +39,9 @@ Examples:
EOF
end
- def command(proc_id, may_interrupt_if_running=nil)
+ def command(proc_id, may_interrupt_if_running = nil)
formatter.row([admin.abort_procedure?(proc_id, may_interrupt_if_running).to_s])
end
end
end
-end
\ No newline at end of file
+end
http://git-wip-us.apache.org/repos/asf/hbase/blob/2115d4b5/hbase-shell/src/main/ruby/shell/commands/add_labels.rb
----------------------------------------------------------------------
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 7bde5fb..b021b92 100644
--- a/hbase-shell/src/main/ruby/shell/commands/add_labels.rb
+++ b/hbase-shell/src/main/ruby/shell/commands/add_labels.rb
@@ -20,7 +20,7 @@ module Shell
module Commands
class AddLabels < Command
def help
- return <<-EOF
+ <<-EOF
Add a set of visibility labels.
Syntax : add_labels [label1, label2]