class RSpec::Hive::Connector

Attributes

config[R]
result[R]

Public Class Methods

new(configuration) click to toggle source
# File lib/rspec/hive/connector.rb, line 12
def initialize(configuration)
  @config = configuration
  # transport: :sasl, sasl_params: {username: 'hive', password: ''},
end

Public Instance Methods

start_connection(db_name = DbName.random_name) click to toggle source
# File lib/rspec/hive/connector.rb, line 17
def start_connection(db_name = DbName.random_name)
  connection = open_connection
  connection.switch_database(db_name)
  @config.hive_options.each do |key, value|
    connection.execute("SET #{key}=#{value}")
  end

  connection
rescue Thrift::ApplicationException => e
  config.logger.fatal('An exception was thrown during start connection')
  config.logger.fatal(e)
  stop_connection(connection)
  connection
end
stop_connection(connection) click to toggle source
# File lib/rspec/hive/connector.rb, line 32
def stop_connection(connection)
  connection.close_session if connection.session
  connection.close
rescue IOError => e
  config.logger.fatal('An exception was thrown during close connection')
  config.logger.fatal(e)
end
tlcli_connect() { |connection_delegator| ... } click to toggle source
# File lib/rspec/hive/connector.rb, line 40
def tlcli_connect
  RBHive.tcli_connect(@config.host,
                      @config.port,
                      connection_options) do |connection|
    yield ConnectionDelegator.new(connection, @config)
  end
end

Private Instance Methods

connection_options() click to toggle source
# File lib/rspec/hive/connector.rb, line 71
def connection_options
  {
    hive_version: @config.hive_version,
    transport: :sasl,
    sasl_params: {},
    logger: @config.logger,
    timeout: @config.connection_timeout
  }
end
log_connection_params() click to toggle source
# File lib/rspec/hive/connector.rb, line 50
def log_connection_params
  @config.logger.info('Opening connection.')
  @config.logger.info("Connection options: #{connection_options}")
  @config.logger.info("Config #{@config.inspect}")
end
open_connection() click to toggle source
# File lib/rspec/hive/connector.rb, line 56
def open_connection
  log_connection_params

  connection = RBHive::TCLIConnection.new(
    @config.host,
    @config.port,
    connection_options
  )
  connection = ConnectionDelegator.new(connection, @config)

  connection.open
  connection.open_session
  connection
end