Skip to content

Commit

Permalink
Merge master
Browse files Browse the repository at this point in the history
  • Loading branch information
mrkamel committed Jul 8, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
2 parents 99fd8a0 + 4705bd3 commit 5969518
Showing 7 changed files with 48 additions and 5 deletions.
4 changes: 4 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -39,6 +39,10 @@ jobs:
env:
discovery.type: single-node
plugins.security.disabled: true
- image: opensearchproject/opensearch:2.13.0
env:
discovery.type: single-node
DISABLE_SECURITY_PLUGIN: true
ruby:
- 2.7
- 3.0
15 changes: 14 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -11,7 +11,20 @@
* Added `SearchFlip::Connection#get_cluster_settings` and
`#update_cluster_settings`

## v3.8.0.
## v3.9.0

* Allow to configure the elasticsearch version no matter which elasticsearch
version is actually in use. The version information is needed to support
version dependent features. Please note that manually configuring the version
is usually not need as the version by default is determined by sending one
request to elasticsearch.

```ruby
SearchFlip::Config[:version] = { number: "8.1.1" }
SearchFlip::Config[:version] = { number: "2.13", distribution: "opensearch" }
```

## v3.8.0

* Support Opensearch 1.x and 2.x

2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
@@ -14,6 +14,6 @@ gem "factory_bot"
gem "rake"
gem "rspec"
gem "rubocop"
gem "sqlite3"
gem "sqlite3", "~> 1.4"
gem "timecop"
gem "webmock"
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -98,6 +98,16 @@ Available config options are:
* `auto_refresh` tells SearchFlip to automatically refresh an index after
import, index, delete, etc operations. This is e.g. useful for testing, etc.
Defaults to false.
* `version` allows to configure the elasticsearch version no matter which
elasticsearch version is actually in use. The version information is needed to
support version dependent features. Please note that manually configuring the
version is usually not need as the version by default is determined by sending
one request to elasticsearch.

```ruby
SearchFlip::Config[:version] = { number: "8.1.1" }
SearchFlip::Config[:version] = { number: "2.13", distribution: "opensearch" }
```

## Usage

4 changes: 2 additions & 2 deletions lib/search_flip/connection.rb
Original file line number Diff line number Diff line change
@@ -26,7 +26,7 @@ def initialize(options = {})
# @return [String] The Elasticsearch distribution

def distribution
@distribution ||= SearchFlip::JSON.parse(version_response.to_s)["version"]["distribution"]
@distribution ||= SearchFlip::Config.dig(:version, :distribution) || SearchFlip::JSON.parse(version_response.to_s)["version"]["distribution"]
end

# Queries the cluster settings from Elasticsearch
@@ -66,7 +66,7 @@ def update_cluster_settings(cluster_settings)
# @return [String] The Elasticsearch version

def version
@version ||= SearchFlip::JSON.parse(version_response.to_s)["version"]["number"]
@version ||= SearchFlip::Config.dig(:version, :number) || SearchFlip::JSON.parse(version_response.to_s)["version"]["number"]
end

# Queries and returns the Elasticsearch cluster health.
2 changes: 1 addition & 1 deletion lib/search_flip/version.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
module SearchFlip
VERSION = "4.0.0.beta14"
VERSION = "4.0.0.beta15"
end
16 changes: 16 additions & 0 deletions spec/search_flip/connection_spec.rb
Original file line number Diff line number Diff line change
@@ -5,12 +5,28 @@
it "reutrns the distribution" do
expect([nil, "opensearch"]).to include(SearchFlip::Connection.new.distribution)
end

it "returns the distribution from the config when given" do
SearchFlip::Config[:version] = { distribution: "distribution" }

expect(SearchFlip::Connection.new.distribution).to eq("distribution")
ensure
SearchFlip::Config.delete(:version)
end
end

describe "#version" do
it "returns the version" do
expect(SearchFlip::Connection.new.version).to match(/\A[0-9.]+\z/)
end

it "returns the version from the config when given" do
SearchFlip::Config[:version] = { number: "1.2.3" }

expect(SearchFlip::Connection.new.version).to eq("1.2.3")
ensure
SearchFlip::Config.delete(:version)
end
end

describe "#cluster_health" do

0 comments on commit 5969518

Please sign in to comment.