HBASE-23232 Remove rsgroup profile from pom.xml of hbase-assembly (#779)
[hbase.git] / hbase-shell / src / main / ruby / hbase / hbase.rb
bloba9b35ed1de219d8ce0f4277731756bdfc5d5c46a
3 # Licensed to the Apache Software Foundation (ASF) under one
4 # or more contributor license agreements.  See the NOTICE file
5 # distributed with this work for additional information
6 # regarding copyright ownership.  The ASF licenses this file
7 # to you under the Apache License, Version 2.0 (the
8 # "License"); you may not use this file except in compliance
9 # with the License.  You may obtain a copy of the License at
11 #     http://www.apache.org/licenses/LICENSE-2.0
13 # Unless required by applicable law or agreed to in writing, software
14 # distributed under the License is distributed on an "AS IS" BASIS,
15 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 # See the License for the specific language governing permissions and
17 # limitations under the License.
20 include Java
21 java_import org.apache.hadoop.hbase.client.ConnectionFactory
22 java_import org.apache.hadoop.hbase.HBaseConfiguration
24 require 'hbase/admin'
25 require 'hbase/table'
26 require 'hbase/taskmonitor'
27 require 'hbase/quotas'
28 require 'hbase/security'
29 require 'hbase/visibility_labels'
31 module Hbase
32   class Hbase
33     attr_accessor :configuration
35     def initialize(config = nil)
36       # Create configuration
37       if config
38         self.configuration = config
39       else
40         self.configuration = HBaseConfiguration.create
41         # Turn off retries in hbase and ipc.  Human doesn't want to wait on N retries.
42         configuration.setInt('hbase.client.retries.number', 7)
43         configuration.setInt('hbase.ipc.client.connect.max.retries', 3)
44       end
45     end
47     def connection
48       if @connection.nil?
49         @connection = ConnectionFactory.createConnection(configuration)
50       end
51       @connection
52     end
53     # Returns ruby's Admin class from admin.rb
54     def admin
55       ::Hbase::Admin.new(self.connection)
56     end
58     def rsgroup_admin
59       ::Hbase::RSGroupAdmin.new(self.connection)
60     end
62     def taskmonitor
63       ::Hbase::TaskMonitor.new(configuration)
64     end
66     # Create new one each time
67     def table(table, shell)
68       ::Hbase::Table.new(self.connection.getTable(TableName.valueOf(table)), shell)
69     end
71     def replication_admin
72       ::Hbase::RepAdmin.new(configuration)
73     end
75     def security_admin
76       ::Hbase::SecurityAdmin.new(self.connection.getAdmin)
77     end
79     def visibility_labels_admin
80       ::Hbase::VisibilityLabelsAdmin.new(self.connection.getAdmin)
81     end
83     def quotas_admin
84       ::Hbase::QuotasAdmin.new(self.connection.getAdmin)
85     end
87     def shutdown
88       if @connection != nil
89         @connection.close
90       end
91     end
92   end
93 end