class Triglav::Agent::Vertica::Connection

Attributes

connection_info[R]

Public Class Methods

new(connection_info) click to toggle source
# File lib/triglav/agent/vertica/connection.rb, line 10
def initialize(connection_info)
  @connection_info = connection_info
end

Public Instance Methods

close() click to toggle source
# File lib/triglav/agent/vertica/connection.rb, line 14
def close
  @connection.close rescue nil if @connection
end
query(sql) click to toggle source
# File lib/triglav/agent/vertica/connection.rb, line 18
def query(sql)
  connection.query(sql)
end

Private Instance Methods

connection() click to toggle source
# File lib/triglav/agent/vertica/connection.rb, line 24
def connection
  return @connection if @connection
  begin
    @connection = ::Vertica.connect(connection_params)
  rescue => e
    $logger.error { "Failed to connect #{connection_info[:host]}:#{connection_info[:port]} with #{connection_info[:user]}" }
    raise e
  end
  $logger.info { "Connected to #{connection_info[:host]}:#{connection_info[:port]}" }
  set_resource_pool
  set_memorycap
  @connection
end
connection_params() click to toggle source
# File lib/triglav/agent/vertica/connection.rb, line 50
def connection_params
  params = @connection_info.dup
  params.delete(:resource_pool)
  params.delete(:memorycap)
  params.merge!(global_connection_params)
end
global_connection_params() click to toggle source
# File lib/triglav/agent/vertica/connection.rb, line 57
def global_connection_params
  params = {}
  params[:interruptable] = $setting.dig(:vertica, :interruptable) if $setting[:vertica].has_key?(:interruptable)
  params[:read_timeout] = $setting.dig(:vertica, :read_timeout) if $setting[:vertica].has_key?(:read_timeout)
  params
end
set_memorycap() click to toggle source
# File lib/triglav/agent/vertica/connection.rb, line 44
def set_memorycap
  if @connection_info[:memorycap] and !@connection_info[:memorycap].empty?
    @connection.query("set session memorycap = '#{@connection_info[:memorycap]}'")
  end
end
set_resource_pool() click to toggle source
# File lib/triglav/agent/vertica/connection.rb, line 38
def set_resource_pool
  if @connection_info[:resource_pool] and !@connection_info[:resource_pool].empty?
    @connection.query("set session resource_pool = '#{@connection_info[:resource_pool]}'")
  end
end