blob: 0f3282575082f6bdcf8a97399bbdc60914c62664 [file]
# frozen_string_literal: true
#
#
# 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.
#
# HBase ruby classes.
# Has wrapper classes for org.apache.hadoop.hbase.client.Admin
# and for org.apache.hadoop.hbase.client.Table. Classes take
# Formatters on construction and outputs any results using
# Formatter methods. These classes are only really for use by
# the hirb.rb HBase Shell script; they don't make much sense elsewhere.
# For example, the exists method on Admin class prints to the formatter
# whether the table exists and returns nil regardless.
# HBase constants module providing access to HBase Java constants and
# dynamically loading column family and table descriptor constants
module HBaseConstants
include Java
java_import('java.lang.Integer') { |_package, name| "J#{name}" }
java_import('java.lang.Long') { |_package, name| "J#{name}" }
java_import('java.lang.Boolean') { |_package, name| "J#{name}" }
ALLOW_PARTIAL_RESULTS = 'ALLOW_PARTIAL_RESULTS'
ALL_METRICS = 'ALL_METRICS'
ATTRIBUTES = 'ATTRIBUTES'
AUTHORIZATIONS = 'AUTHORIZATIONS'
BATCH = 'BATCH'
CACHE = 'CACHE'
CACHE_BLOCKS = 'CACHE_BLOCKS'
CLASSNAME = 'CLASSNAME'
CLONE_SFT = 'CLONE_SFT'
CLUSTER_KEY = 'CLUSTER_KEY'
COLUMN = 'COLUMN'
COLUMNS = 'COLUMNS'
CONFIG = 'CONFIG'
CONFIGURATION = org.apache.hadoop.hbase.HConstants::CONFIGURATION
CONSISTENCY = 'CONSISTENCY'
COPROCESSOR = 'COPROCESSOR'
DATA = 'DATA'
ENDPOINT_CLASSNAME = 'ENDPOINT_CLASSNAME'
FILTER = 'FILTER'
FOREVER = org.apache.hadoop.hbase.HConstants::FOREVER
FORMATTER = 'FORMATTER'
FORMATTER_CLASS = 'FORMATTER_CLASS'
INTERVAL = 'INTERVAL'
IN_MEMORY = org.apache.hadoop.hbase.HConstants::IN_MEMORY
IN_MEMORY_COMPACTION = org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder::IN_MEMORY_COMPACTION
ISOLATION_LEVEL = 'ISOLATION_LEVEL'
IS_ROOT = 'IS_ROOT'
JAR_PATH = 'JAR_PATH'
LIMIT = 'LIMIT'
LOCALITY_THRESHOLD = 'LOCALITY_THRESHOLD'
MAXLENGTH = 'MAXLENGTH'
MAX_RESULT_SIZE = 'MAX_RESULT_SIZE'
METADATA = org.apache.hadoop.hbase.HConstants::METADATA
METHOD = 'METHOD'
METRICS = 'METRICS'
NAME = org.apache.hadoop.hbase.HConstants::NAME
NAMESPACE = 'NAMESPACE'
NAMESPACES = 'NAMESPACES'
NONE = 'NONE'
NUMREGIONS = 'NUMREGIONS'
POLICY = 'POLICY'
PRIORITY = 'PRIORITY'
PROPERTIES = 'PROPERTIES'
RAW = 'RAW'
READ_TYPE = 'READ_TYPE'
REGEX = 'REGEX'
REGIONSERVER = 'REGIONSERVER'
REGION_REPLICATION = 'REGION_REPLICATION'
REGION_REPLICA_ID = 'REGION_REPLICA_ID'
REMOTE_WAL_DIR = 'REMOTE_WAL_DIR'
REPLICATION_SCOPE = 'REPLICATION_SCOPE'
REPLICATION_SCOPE_BYTES = org.apache.hadoop.hbase.client.ColumnFamilyDescriptor::REPLICATION_SCOPE_BYTES
RESTORE_ACL = 'RESTORE_ACL'
REVERSED = 'REVERSED'
ROWPREFIXFILTER = 'ROWPREFIXFILTER'
SERIAL = 'SERIAL'
SERVER_NAME = 'SERVER_NAME'
SKIP_FLUSH = 'SKIP_FLUSH'
SPLITALGO = 'SPLITALGO'
SPLITS = 'SPLITS'
SPLITS_FILE = 'SPLITS_FILE'
STARTROW = 'STARTROW'
STATE = 'STATE'
STOPROW = 'STOPROW'
TABLE = 'TABLE'
TABLE_CFS = 'TABLE_CFS'
TABLE_NAME = 'TABLE_NAME'
TABLE_NAMES = 'TABLE_NAMES'
TIMERANGE = 'TIMERANGE'
TIMESTAMP = 'TIMESTAMP'
TYPE = 'TYPE'
USER = 'USER'
VALUE = 'VALUE'
VERSIONS = org.apache.hadoop.hbase.HConstants::VERSIONS
VISIBILITY = 'VISIBILITY'
REOPEN_REGIONS = 'REOPEN_REGIONS'
# aliases
ENDKEY = STOPROW
ENDROW = STOPROW
STARTKEY = STARTROW
# Load constants from hbase java API
def self.promote_constants(constants)
# The constants to import are all in uppercase
constants.each do |c|
next if c =~ /DEFAULT_.*/ || c != c.upcase
next if const_defined?(c)
const_set(c, c.to_s)
end
end
promote_constants(org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder.constants)
promote_constants(org.apache.hadoop.hbase.client.TableDescriptorBuilder.constants)
end
# Ensure that hbase class definitions are imported
require 'hbase/hbase'
require 'hbase/admin'
require 'hbase/taskmonitor'
require 'hbase/table'
require 'hbase/quotas'
require 'hbase/replication_admin'
require 'hbase/security'
require 'hbase/visibility_labels'
require 'hbase/rsgroup_admin'