Class: Utility::EsClient

Inherits:
Elasticsearch::Client
  • Object
show all
Defined in:
lib/utility/es_client.rb

Defined Under Namespace

Classes: IndexingFailedError

Instance Method Summary collapse

Constructor Details

#initialize(es_config, &block) ⇒ EsClient

Returns a new instance of EsClient.



23
24
25
# File 'lib/utility/es_client.rb', line 23

def initialize(es_config, &block)
  super(connection_configs(es_config), &block)
end

Instance Method Details

#bulk(arguments = {}) ⇒ Object



56
57
58
# File 'lib/utility/es_client.rb', line 56

def bulk(arguments = {})
  raise_if_necessary(super(arguments))
end

#connection_configs(es_config) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/utility/es_client.rb', line 27

def connection_configs(es_config)
  configs = {}
  configs[:api_key] = es_config[:api_key] if es_config[:api_key]
  if es_config[:cloud_id]
    configs[:cloud_id] = es_config[:cloud_id]
  elsif es_config[:hosts]
    configs[:hosts] = es_config[:hosts]
  else
    raise 'Either elasticsearch.cloud_id or elasticsearch.hosts should be configured.'
  end
  configs[:retry_on_failure] = es_config[:retry_on_failure] || false
  configs[:request_timeout] = es_config[:request_timeout] || nil
  configs[:log] = es_config[:log] || false
  configs[:trace] = es_config[:trace] || false

  # transport options
  configs[:transport_options] = es_config[:transport_options] if es_config[:transport_options]
  configs[:ca_fingerprint] = es_config[:ca_fingerprint] if es_config[:ca_fingerprint]

  # if log or trace is activated, we use the application logger
  configs[:logger] = if configs[:log] || configs[:trace]
                       Utility::Logger.logger
                     else
                       # silence!
                       ::Logger.new(IO::NULL)
                     end
  configs
end