Skip to content

Commit

Permalink
Correctly report indices and aliases
Browse files Browse the repository at this point in the history
Improve the reporting on indices and aliases that match index naming.
  • Loading branch information
mpeychich authored and Dalton committed Feb 11, 2021
1 parent d56adc4 commit 6c2879e
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 29 deletions.
2 changes: 1 addition & 1 deletion lib/chewy/index/actions.rb
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ def #{method}(*args)
def reset!(suffix = nil, apply_journal: true, journal: false, **import_options)
result = if suffix.present?
start_time = Time.now
indexes = self.indexes
indexes = self.indexes - [index_name]
create! suffix, alias: false

general_name = index_name
Expand Down
5 changes: 2 additions & 3 deletions lib/chewy/index/aliases.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,13 @@ module Aliases

module ClassMethods
def indexes
client.indices.get_alias(name: index_name).keys
client.indices.get(index: "#{index_name}*").keys
rescue Elasticsearch::Transport::Transport::Errors::NotFound
[]
end

def aliases
name = index_name
client.indices.get_alias(index: name, name: '*')[name].try(:[], 'aliases').try(:keys) || []
client.indices.get(index: "#{index_name}*").values.flat_map { |i| i['aliases'].keys }
rescue Elasticsearch::Transport::Transport::Errors::NotFound
[]
end
Expand Down
44 changes: 22 additions & 22 deletions spec/chewy/index/actions_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
before { DummiesIndex.create '2013' }
specify { expect(Chewy.client.indices.exists(index: 'dummies')).to eq(true) }
specify { expect(Chewy.client.indices.exists(index: 'dummies_2013')).to eq(true) }
specify { expect(DummiesIndex.aliases).to eq([]) }
specify { expect(DummiesIndex.aliases).to eq(['dummies']) }
specify { expect(DummiesIndex.indexes).to eq(['dummies_2013']) }
specify { expect(DummiesIndex.create('2013')).to eq(false) }
specify { expect(DummiesIndex.create('2014')['acknowledged']).to eq(true) }
Expand All @@ -44,7 +44,7 @@
specify { expect(Chewy.client.indices.exists(index: 'dummies')).to eq(false) }
specify { expect(Chewy.client.indices.exists(index: 'dummies_2013')).to eq(true) }
specify { expect(DummiesIndex.aliases).to eq([]) }
specify { expect(DummiesIndex.indexes).to eq([]) }
specify { expect(DummiesIndex.indexes).to eq(['dummies_2013']) }
end
end

Expand All @@ -64,7 +64,7 @@
before { DummiesIndex.create! '2013' }
specify { expect(Chewy.client.indices.exists(index: 'dummies')).to eq(true) }
specify { expect(Chewy.client.indices.exists(index: 'dummies_2013')).to eq(true) }
specify { expect(DummiesIndex.aliases).to eq([]) }
specify { expect(DummiesIndex.aliases).to eq(['dummies']) }
specify { expect(DummiesIndex.indexes).to eq(['dummies_2013']) }
specify do
expect { DummiesIndex.create!('2013') }.to raise_error(Elasticsearch::Transport::Transport::Errors::BadRequest).with_message(/already exists.*dummies_2013/)
Expand All @@ -82,7 +82,7 @@
specify { expect(Chewy.client.indices.exists(index: 'dummies')).to eq(false) }
specify { expect(Chewy.client.indices.exists(index: 'dummies_2013')).to eq(true) }
specify { expect(DummiesIndex.aliases).to eq([]) }
specify { expect(DummiesIndex.indexes).to eq([]) }
specify { expect(DummiesIndex.indexes).to eq(['dummies_2013']) }
end
end

Expand Down Expand Up @@ -184,40 +184,40 @@
before { DummiesIndex.purge }
specify { expect(DummiesIndex).to be_exists }
specify { expect(DummiesIndex.aliases).to eq([]) }
specify { expect(DummiesIndex.indexes).to eq([]) }
specify { expect(DummiesIndex.indexes).to eq(['dummies']) }

context do
before { DummiesIndex.purge }
specify { expect(DummiesIndex).to be_exists }
specify { expect(DummiesIndex.aliases).to eq([]) }
specify { expect(DummiesIndex.indexes).to eq([]) }
specify { expect(DummiesIndex.indexes).to eq(['dummies']) }
end

context do
before { DummiesIndex.purge('2013') }
specify { expect(DummiesIndex).to be_exists }
specify { expect(DummiesIndex.aliases).to eq([]) }
specify { expect(DummiesIndex.aliases).to eq(['dummies']) }
specify { expect(DummiesIndex.indexes).to eq(['dummies_2013']) }
end
end

context do
before { DummiesIndex.purge('2013') }
specify { expect(DummiesIndex).to be_exists }
specify { expect(DummiesIndex.aliases).to eq([]) }
specify { expect(DummiesIndex.aliases).to eq(['dummies']) }
specify { expect(DummiesIndex.indexes).to eq(['dummies_2013']) }

context do
before { DummiesIndex.purge }
specify { expect(DummiesIndex).to be_exists }
specify { expect(DummiesIndex.aliases).to eq([]) }
specify { expect(DummiesIndex.indexes).to eq([]) }
specify { expect(DummiesIndex.indexes).to eq(['dummies']) }
end

context do
before { DummiesIndex.purge('2014') }
specify { expect(DummiesIndex).to be_exists }
specify { expect(DummiesIndex.aliases).to eq([]) }
specify { expect(DummiesIndex.aliases).to eq(['dummies']) }
specify { expect(DummiesIndex.indexes).to eq(['dummies_2014']) }
end
end
Expand All @@ -231,40 +231,40 @@
before { DummiesIndex.purge! }
specify { expect(DummiesIndex).to be_exists }
specify { expect(DummiesIndex.aliases).to eq([]) }
specify { expect(DummiesIndex.indexes).to eq([]) }
specify { expect(DummiesIndex.indexes).to eq(['dummies']) }

context do
before { DummiesIndex.purge! }
specify { expect(DummiesIndex).to be_exists }
specify { expect(DummiesIndex.aliases).to eq([]) }
specify { expect(DummiesIndex.indexes).to eq([]) }
specify { expect(DummiesIndex.indexes).to eq(['dummies']) }
end

context do
before { DummiesIndex.purge!('2013') }
specify { expect(DummiesIndex).to be_exists }
specify { expect(DummiesIndex.aliases).to eq([]) }
specify { expect(DummiesIndex.aliases).to eq(['dummies']) }
specify { expect(DummiesIndex.indexes).to eq(['dummies_2013']) }
end
end

context do
before { DummiesIndex.purge!('2013') }
specify { expect(DummiesIndex).to be_exists }
specify { expect(DummiesIndex.aliases).to eq([]) }
specify { expect(DummiesIndex.aliases).to eq(['dummies']) }
specify { expect(DummiesIndex.indexes).to eq(['dummies_2013']) }

context do
before { DummiesIndex.purge! }
specify { expect(DummiesIndex).to be_exists }
specify { expect(DummiesIndex.aliases).to eq([]) }
specify { expect(DummiesIndex.indexes).to eq([]) }
specify { expect(DummiesIndex.indexes).to eq(['dummies']) }
end

context do
before { DummiesIndex.purge!('2014') }
specify { expect(DummiesIndex).to be_exists }
specify { expect(DummiesIndex.aliases).to eq([]) }
specify { expect(DummiesIndex.aliases).to eq(['dummies']) }
specify { expect(DummiesIndex.indexes).to eq(['dummies_2014']) }
end
end
Expand Down Expand Up @@ -361,13 +361,13 @@

specify { expect(CitiesIndex.all).to have(1).item }
specify { expect(CitiesIndex.aliases).to eq([]) }
specify { expect(CitiesIndex.indexes).to eq([]) }
specify { expect(CitiesIndex.indexes).to eq(['cities']) }

context do
before { CitiesIndex.reset!('2013') }

specify { expect(CitiesIndex.all).to have(1).item }
specify { expect(CitiesIndex.aliases).to eq([]) }
specify { expect(CitiesIndex.aliases).to eq(['cities']) }
specify { expect(CitiesIndex.indexes).to eq(['cities_2013']) }
end

Expand All @@ -376,22 +376,22 @@

specify { expect(CitiesIndex.all).to have(1).item }
specify { expect(CitiesIndex.aliases).to eq([]) }
specify { expect(CitiesIndex.indexes).to eq([]) }
specify { expect(CitiesIndex.indexes).to eq(['cities']) }
end
end

context do
before { CitiesIndex.reset!('2013') }

specify { expect(CitiesIndex.all).to have(1).item }
specify { expect(CitiesIndex.aliases).to eq([]) }
specify { expect(CitiesIndex.aliases).to eq(['cities']) }
specify { expect(CitiesIndex.indexes).to eq(['cities_2013']) }

context do
before { CitiesIndex.reset!('2014') }

specify { expect(CitiesIndex.all).to have(1).item }
specify { expect(CitiesIndex.aliases).to eq([]) }
specify { expect(CitiesIndex.aliases).to eq(['cities']) }
specify { expect(CitiesIndex.indexes).to eq(['cities_2014']) }
specify { expect(Chewy.client.indices.exists(index: 'cities_2013')).to eq(false) }
end
Expand All @@ -401,7 +401,7 @@

specify { expect(CitiesIndex.all).to have(1).item }
specify { expect(CitiesIndex.aliases).to eq([]) }
specify { expect(CitiesIndex.indexes).to eq([]) }
specify { expect(CitiesIndex.indexes).to eq(['cities']) }
specify { expect(Chewy.client.indices.exists(index: 'cities_2013')).to eq(false) }
end
end
Expand Down
6 changes: 3 additions & 3 deletions spec/chewy/index/aliases_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@

context do
before { DummiesIndex.create! }
specify { expect(DummiesIndex.indexes).to eq([]) }
specify { expect(DummiesIndex.indexes).to eq(['dummies']) }
end

context do
before { DummiesIndex.create! }
before { Chewy.client.indices.put_alias index: 'dummies', name: 'dummies_2013' }
specify { expect(DummiesIndex.indexes).to eq([]) }
specify { expect(DummiesIndex.indexes).to eq(['dummies']) }
end

context do
Expand All @@ -43,7 +43,7 @@

context do
before { DummiesIndex.create! '2013' }
specify { expect(DummiesIndex.aliases).to eq([]) }
specify { expect(DummiesIndex.aliases).to eq(['dummies']) }
end
end
end

0 comments on commit 6c2879e

Please sign in to comment.