Method: Elastic::Core::Connector#rollover
- Defined in:
- lib/elastic/core/connector.rb
#rollover(&_block) ⇒ Object
rubocop:disable Metrics/MethodLength
114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
# File 'lib/elastic/core/connector.rb', line 114 def rollover(&_block) # rubocop:disable Metrics/MethodLength actual_index, rolling_index = resolve_write_indices unless rolling_index.nil? raise Elastic::RolloverError, 'rollover process already in progress' end new_index = create_index_w_mapping begin transfer_alias(write_index_alias, to: new_index) wait_for_index_to_stabilize perform_optimized_write_on(new_index, &_block) transfer_alias(index_name, from: actual_index, to: new_index) transfer_alias(write_index_alias, from: actual_index) wait_for_index_to_stabilize api.indices.delete index: actual_index rescue StandardError api.indices.delete index: new_index raise end end |