class Elasticsnap::FreezeElasticsearch

Attributes

url[RW]

Public Class Methods

new(url: nil) click to toggle source
# File lib/elasticsnap/freeze_elasticsearch.rb, line 10
def initialize(url: nil)
  raise ArgumentError, 'url required' if url.nil?

  @url = url
end

Public Instance Methods

disable_flush() click to toggle source
# File lib/elasticsnap/freeze_elasticsearch.rb, line 36
def disable_flush
  Flex::Configuration.http_client.base_uri = url
  result = Flex.update_index_settings(
    index: '_all',
    data: {
      index: {
        translog: {
          disable_flush: true
        }
      }
    }
  )

  raise DisableFlushFailed unless result.fetch('ok', false) == true

  result
end
enable_flush() click to toggle source
# File lib/elasticsnap/freeze_elasticsearch.rb, line 54
def enable_flush
  Flex::Configuration.http_client.base_uri = url
  result = Flex.update_index_settings(
    index: '_all',
    data: {
      index: {
        translog: {
          disable_flush: false
        }
      }
    }
  )

  raise EnableFlushFailed unless result.fetch('ok', false) == true

  result
end
flush() click to toggle source
# File lib/elasticsnap/freeze_elasticsearch.rb, line 27
def flush
  Flex::Configuration.http_client.base_uri = url
  result = Flex.flush_index(index: '_all')

  raise FlushFailed unless result.fetch('ok', false) == true

  result
end
freeze(&block) click to toggle source
# File lib/elasticsnap/freeze_elasticsearch.rb, line 16
def freeze(&block)
  begin
    flush
    disable_flush

    block.call unless block.nil?
  ensure
    enable_flush
  end
end