Class: LogStash::ElasticsearchClient::RubyClient
- Inherits:
-
Object
- Object
- LogStash::ElasticsearchClient::RubyClient
- Defined in:
- lib/logstash/elasticsearch_client.rb
Instance Method Summary collapse
- #can_connect? ⇒ Boolean
- #delete(path) ⇒ Object
- #head(path) ⇒ Object
- #host_settings ⇒ Object
-
#initialize(settings, logger) ⇒ RubyClient
constructor
A new instance of RubyClient.
- #put(path, content) ⇒ Object
Constructor Details
#initialize(settings, logger) ⇒ RubyClient
Returns a new instance of RubyClient.
25 26 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 |
# File 'lib/logstash/elasticsearch_client.rb', line 25 def initialize(settings, logger) @settings = settings @logger = logger @client_args = client_args = {} if @settings["var.elasticsearch.ssl.enabled"] == "true" [:verify] = @settings.fetch("var.elasticsearch.ssl.verification_mode", true) [:ca_file] = @settings.fetch("var.elasticsearch.ssl.certificate_authority", nil) [:client_cert] = @settings.fetch("var.elasticsearch.ssl.certificate", nil) [:client_key] = @settings.fetch("var.elasticsearch.ssl.key", nil) end @client_args[:ssl] = username = @settings["var.elasticsearch.username"] if username password = @settings["var.elasticsearch.password"] if password.is_a?(LogStash::Util::Password) password = password.value end @client_args[:transport_options] = { :headers => { "Authorization" => 'Basic ' + Base64.encode64( "#{username}:#{password}" ).chomp } } end @client = Elasticsearch::Client.new(@client_args) end |
Instance Method Details
#can_connect? ⇒ Boolean
53 54 55 56 57 58 59 60 61 |
# File 'lib/logstash/elasticsearch_client.rb', line 53 def can_connect? begin head(SecureRandom.hex(32).prepend('_')) rescue Elasticsearch::Transport::Transport::Errors::BadRequest true rescue Manticore::SocketException false end end |
#delete(path) ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/logstash/elasticsearch_client.rb', line 67 def delete(path) begin normalize_response(@client.perform_request('DELETE', path, {}, nil)) rescue Exception => e if e.class.to_s =~ /NotFound/ || e. =~ /Not\s*Found|404/i Response.new(404, "", {}) else raise e end end end |
#head(path) ⇒ Object
83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/logstash/elasticsearch_client.rb', line 83 def head(path) begin normalize_response(@client.perform_request('HEAD', path, {}, nil)) rescue Exception => e if is_404_error?(e) Response.new(404, "", {}) else raise e end end end |
#host_settings ⇒ Object
63 64 65 |
# File 'lib/logstash/elasticsearch_client.rb', line 63 def host_settings @client_args[:hosts] end |
#put(path, content) ⇒ Object
79 80 81 |
# File 'lib/logstash/elasticsearch_client.rb', line 79 def put(path, content) normalize_response(@client.perform_request('PUT', path, {}, content)) end |