elasticsearch_update 1.0.4 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f35930c49598a1afdd446aee7be5dc374d3e5ab4
4
- data.tar.gz: 656478858af34cd9cc2e861a69fb2fa29fc7465a
3
+ metadata.gz: 65bb030954dee148bced19b77dd94f0f6c167f37
4
+ data.tar.gz: 30cb25dc590178def7192da6e32b98e6db7305fe
5
5
  SHA512:
6
- metadata.gz: 8a497066f6c4cc0562602b326f6688e01b93fa71b5dff77cea4e869e56b8c68d0f5ba22ebc167c96eca67e23958628ec1b5fa18a180cf314df32c45a9f05d686
7
- data.tar.gz: 38d7b00450d75279dab52f0ff694dab8ff7e8679fca3704c7bf5e3afeb043e1c8adfb9966284d76bdc2c8a82d635065265f90f71199a81a6e8a8f97818bfa2aa
6
+ metadata.gz: 0ffcc7fd3c48d17f17564dc9be020901a91027acdd76023859692bdb8d36371453b4a659d6f442ca47c81f383778131cbdf3b4dcb28a429d205f60186bd0049a
7
+ data.tar.gz: ce7f796aee03b585ba44a03cffe8549d2947017ab5681e1d8e391f8a193cb955ab844cb72308d797b5b8488be8c97c1e46235906cd91549be5d1f0e13a6037d8
@@ -5,4 +5,4 @@ args = ARGV.dup
5
5
  ARGV.clear
6
6
  command = args.shift.strip rescue 'help'
7
7
 
8
- ElasticsearchUpdate::Cli.start
8
+ ElasticsearchUpdate::Cli.new
@@ -14,8 +14,8 @@ module ElasticsearchUpdate
14
14
  #
15
15
  # ==== Example
16
16
  #
17
- # ElasticsearchUpdate::Cli.start
18
- def self.start
17
+ # ElasticsearchUpdate::Cli.new
18
+ def initialize
19
19
  @log = Logger.new(STDOUT)
20
20
  @log.level = Logger::INFO
21
21
 
@@ -1,3 +1,3 @@
1
1
  module ElasticsearchUpdate
2
- VERSION = "1.0.4"
2
+ VERSION = '1.1.0'
3
3
  end
@@ -175,7 +175,9 @@ module ElasticsearchUpdate
175
175
  # wizard = ElasticsearchUpdate::Wizard.new
176
176
  # password = wizard.sudo_password
177
177
  def sudo_password
178
- ask('What password should be used while updating Elasticsearch? ') { |q| q.echo = "x" }
178
+ ask('What password should be used while updating Elasticsearch? ') do |q|
179
+ q.echo = 'x'
180
+ end
179
181
  end
180
182
 
181
183
  # == download_hash
@@ -195,7 +197,7 @@ module ElasticsearchUpdate
195
197
  # hash = wizard.download_hash
196
198
  def download_hash
197
199
  {
198
- base_url: 'download.elasticsearch.org',
200
+ base_url: 'download.elastic.co',
199
201
  version: version,
200
202
  extension: extension
201
203
  }
@@ -18,115 +18,115 @@ module ElasticsearchUpdate
18
18
  it 'should initialize and correctly assign values.' do
19
19
  hash =
20
20
  {
21
- base_url: 'download.elasticsearch.org',
21
+ base_url: 'download.elastic.co',
22
22
  version: '1.4.2',
23
23
  extension: '.deb'
24
24
  }
25
25
 
26
- @downloader = TestDownloader.new(hash, false)
27
- assert_kind_of ElasticsearchUpdate::Downloader, @downloader
26
+ downloader = TestDownloader.new(hash, false)
27
+ assert_kind_of ElasticsearchUpdate::Downloader, downloader
28
28
 
29
- @downloader.base.must_equal 'download.elasticsearch.org'
30
- @downloader.extension.must_equal '.deb'
31
- @downloader.version.must_equal '1.4.2'
32
- @downloader.download_url.must_equal 'https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.4.2.deb'
33
- @downloader.verify_url.must_equal 'https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.4.2.deb.sha1.txt'
29
+ downloader.base.must_equal 'download.elastic.co'
30
+ downloader.extension.must_equal '.deb'
31
+ downloader.version.must_equal '1.4.2'
32
+ downloader.download_url.must_equal 'https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.4.2.deb'
33
+ downloader.verify_url.must_equal 'https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.4.2.deb.sha1.txt'
34
34
  end
35
35
 
36
36
  it 'should retrieve the correct SHA1 value from Elasticsearch\'s website' do
37
37
  hash =
38
38
  {
39
- base_url: 'download.elasticsearch.org',
39
+ base_url: 'download.elastic.co',
40
40
  version: '1.4.2',
41
41
  extension: '.deb'
42
42
  }
43
43
 
44
- @mock_file = Minitest::Mock.new
45
- @mock_file.expect(:read, 'd377e39343e5cc277104beee349e1578dc50f7f8 elasticsearch-1.4.2.deb')
44
+ mock_file = Minitest::Mock.new
45
+ mock_file.expect(:read, 'd377e39343e5cc277104beee349e1578dc50f7f8 elasticsearch-1.4.2.deb')
46
46
 
47
- Kernel.stub :open, nil, @mock_file do
48
- @downloader = TestDownloader.new(hash, true)
49
- @downloader.download_remote_sha1.must_equal 'd377e39343e5cc277104beee349e1578dc50f7f8'
47
+ Kernel.stub :open, nil, mock_file do
48
+ downloader = TestDownloader.new(hash, true)
49
+ downloader.download_remote_sha1.must_equal 'd377e39343e5cc277104beee349e1578dc50f7f8'
50
50
  end
51
51
  end
52
52
 
53
53
  it "should retrieve the verify the file's SHA1 value against Elasticsearch's" do
54
54
  hash =
55
55
  {
56
- base_url: 'download.elasticsearch.org',
56
+ base_url: 'download.elastic.co',
57
57
  version: '1.4.2',
58
58
  extension: '.deb'
59
59
  }
60
60
 
61
- @mock_file_obj = Minitest::Mock.new
62
- @mock_result = 'd377e39343e5cc277104beee349e1578dc50f7f8'
63
- @mock_file_obj.expect(:hexdigest, @mock_result)
61
+ mock_file_obj = Minitest::Mock.new
62
+ mock_result = 'd377e39343e5cc277104beee349e1578dc50f7f8'
63
+ mock_file_obj.expect(:hexdigest, mock_result)
64
64
 
65
- @mock_file = Minitest::Mock.new
66
- @mock_file.expect(:path, 'fake/path')
65
+ mock_file = Minitest::Mock.new
66
+ mock_file.expect(:path, 'fake/path')
67
67
 
68
- Digest::SHA1.stub :file, @mock_file_obj do
69
- @downloader = TestDownloader.new(hash, true)
70
- @downloader.update_file = @mock_file
71
- @downloader.verify_update_file.must_equal true
68
+ Digest::SHA1.stub :file, mock_file_obj do
69
+ downloader = TestDownloader.new(hash, true)
70
+ downloader.update_file = mock_file
71
+ downloader.verify_update_file.must_equal true
72
72
  end
73
73
  end
74
74
 
75
75
  it "should retrieve the verify the file's SHA1 value against Elasticsearch's" do
76
76
  hash =
77
77
  {
78
- base_url: 'download.elasticsearch.org',
78
+ base_url: 'download.elastic.co',
79
79
  version: '1.4.2',
80
80
  extension: '.deb'
81
81
  }
82
82
 
83
- @mock_file_obj = Minitest::Mock.new
84
- @mock_result = '0'
85
- @mock_file_obj.expect(:hexdigest, @mock_result)
83
+ mock_file_obj = Minitest::Mock.new
84
+ mock_result = '0'
85
+ mock_file_obj.expect(:hexdigest, mock_result)
86
86
 
87
- @mock_file = Minitest::Mock.new
88
- @mock_file.expect(:path, 'fake/path')
87
+ mock_file = Minitest::Mock.new
88
+ mock_file.expect(:path, 'fake/path')
89
89
 
90
- Digest::SHA1.stub :file, @mock_file_obj do
91
- @downloader = TestDownloader.new(hash, true)
92
- @downloader.update_file = @mock_file
93
- @downloader.verify_update_file.must_equal 'File was not downloaded correctly. Please try again.'
90
+ Digest::SHA1.stub :file, mock_file_obj do
91
+ downloader = TestDownloader.new(hash, true)
92
+ downloader.update_file = mock_file
93
+ downloader.verify_update_file.must_equal 'File was not downloaded correctly. Please try again.'
94
94
  end
95
95
  end
96
96
 
97
97
  it 'creates a tempfile to store the Elasticsearch deb file' do
98
98
  hash =
99
99
  {
100
- base_url: 'download.elasticsearch.org',
100
+ base_url: 'download.elastic.co',
101
101
  version: '1.4.2',
102
102
  extension: '.deb'
103
103
  }
104
104
 
105
- @downloader = TestDownloader.new(hash, true)
106
- assert_kind_of Tempfile, @downloader.download_file(true)
105
+ downloader = TestDownloader.new(hash, true)
106
+ assert_kind_of Tempfile, downloader.download_file(true)
107
107
  end
108
108
 
109
109
  it 'writes a downloaded file' do
110
110
  hash =
111
111
  {
112
- base_url: 'download.elasticsearch.org',
112
+ base_url: 'download.elastic.co',
113
113
  version: '1.4.2',
114
114
  extension: '.deb'
115
115
  }
116
116
 
117
- @mock_resp = Minitest::Mock.new
118
- @mock_resp.expect(:read_body, 'Test')
117
+ mock_resp = Minitest::Mock.new
118
+ mock_resp.expect(:read_body, 'Test')
119
119
 
120
- @mock_http = Minitest::Mock.new
121
- @mock_http.expect(:request_get, @mock_resp, [String])
120
+ mock_http = Minitest::Mock.new
121
+ mock_http.expect(:request_get, mock_resp, [String])
122
122
 
123
- @mock_file = Minitest::Mock.new
124
- @mock_file.expect(:write, true, [String])
125
- @mock_file.expect(:close, true)
123
+ mock_file = Minitest::Mock.new
124
+ mock_file.expect(:write, true, [String])
125
+ mock_file.expect(:close, true)
126
126
 
127
- @downloader = TestDownloader.new(hash, true)
128
- Net::HTTP.stub :start, true, @mock_http do
129
- @downloader.write_file_from_url(@mock_file, 'http://test.org')
127
+ downloader = TestDownloader.new(hash, true)
128
+ Net::HTTP.stub :start, true, mock_http do
129
+ downloader.write_file_from_url(mock_file, 'http://test.org')
130
130
  end
131
131
  end
132
132
  end
@@ -1,89 +1,90 @@
1
1
  require 'minitest_helper'
2
2
 
3
3
  module ElasticsearchUpdate
4
+ # Overrides the std Elasticsearch class for testing purposes
4
5
  class TestElasticsearch < Elasticsearch
5
6
  def system(command)
6
7
  command
7
8
  end
8
9
  end
10
+
9
11
  # The TestInstaller class below tests the Downloader class from the library
10
12
  class TestElasticsearch
11
13
  describe 'Elasticsearch', 'Used to interact with Elasticsearch' do
12
-
13
14
  it 'should initialize without errors' do
14
- @es_client = TestElasticsearch.new
15
- assert_kind_of Elasticsearch, @es_client
15
+ es_client = TestElasticsearch.new
16
+ assert_kind_of Elasticsearch, es_client
16
17
 
17
- @es_client.es_port.must_equal 9200
18
- @es_client.es_host.must_equal 'localhost'
18
+ es_client.es_port.must_equal 9200
19
+ es_client.es_host.must_equal 'localhost'
19
20
  end
20
21
 
21
22
  it 'should disable cluster allocation' do
22
- @es_client = TestElasticsearch.new({ host: 'localhost', port: 9200 }, true)
23
+ es_client = TestElasticsearch.new({ host: 'localhost', port: 9200 }, true)
23
24
 
24
- @mock_http = Minitest::Mock.new
25
- @mock_http.expect(:start, 200)
25
+ mock_http = Minitest::Mock.new
26
+ mock_http.expect(:start, 200)
26
27
 
27
- Net::HTTP.stub :new, @mock_http do
28
- @es_client.cluster_routing_allocation('none').must_equal 200
28
+ Net::HTTP.stub :new, mock_http do
29
+ es_client.cluster_routing_allocation('none').must_equal 200
29
30
  end
30
31
  end
31
32
 
32
33
  it 'should enable cluster allocation' do
33
- @es_client = TestElasticsearch.new({ host: 'localhost', port: 9200 }, true)
34
+ es_client = TestElasticsearch.new({ host: 'localhost', port: 9200 }, true)
34
35
 
35
- @mock_http = Minitest::Mock.new
36
- @mock_http.expect(:start, 200)
36
+ mock_http = Minitest::Mock.new
37
+ mock_http.expect(:start, 200)
37
38
 
38
- Net::HTTP.stub :new, @mock_http do
39
- @es_client.cluster_routing_allocation('all').must_equal 200
39
+ Net::HTTP.stub :new, mock_http do
40
+ es_client.cluster_routing_allocation('all').must_equal 200
40
41
  end
41
42
  end
42
43
 
43
44
  it 'should shutdown the local node' do
44
- @es_client = TestElasticsearch.new({ host: 'localhost', port: 9200 }, true)
45
+ es_client = TestElasticsearch.new({ host: 'localhost', port: 9200 }, true)
45
46
 
46
47
  Net::HTTP.stub :post_form, 200 do
47
- @es_client.shutdown_local_node.must_equal 200
48
+ es_client.shutdown_local_node.must_equal 200
48
49
  end
49
50
  end
50
51
 
51
52
  it 'start elasticsearch service' do
52
- @es_client = TestElasticsearch.new({ host: 'localhost', port: 9200 }, true)
53
+ es_client = TestElasticsearch.new({ host: 'localhost', port: 9200 }, true)
53
54
 
54
- result = @es_client.start_elasticsearch_service('test')
55
+ result = es_client.start_elasticsearch_service('test')
55
56
 
56
57
  result.must_equal 'echo test | sudo -S service elasticsearch start'
57
58
  end
58
59
 
59
60
  it 'start elasticsearch binary' do
60
- @es_client = TestElasticsearch.new({ host: 'localhost', port: 9200 }, true)
61
+ es_client = TestElasticsearch.new({ host: 'localhost', port: 9200 }, true)
61
62
 
62
- result = @es_client.start_elasticsearch_binary('/path/to/elasticsearch/')
63
+ result = es_client.start_elasticsearch_binary('/path/to/elasticsearch/')
63
64
 
64
65
  result.must_equal '/path/to/elasticsearch/bin/elasticsearch'
65
66
  end
66
67
 
67
68
  it 'start elasticsearch service from the deb extension' do
68
- @mock = Minitest::Mock.new
69
- @mock.expect(:extension, '.deb')
70
- @mock.expect(:sudo_password, 'test')
69
+ mock = Minitest::Mock.new
70
+ mock.expect(:extension, '.deb')
71
+ mock.expect(:sudo_password, 'test')
71
72
 
72
- @es_client = TestElasticsearch.new({ host: 'localhost', port: 9200 }, true)
73
+ es_client = TestElasticsearch.new({ host: 'localhost', port: 9200 }, true)
73
74
 
74
- result = @es_client.start_elasticsearch(@mock)
75
+ result = es_client.start_elasticsearch(mock)
75
76
 
76
77
  result.must_equal 'echo test | sudo -S service elasticsearch start'
77
78
  end
78
79
 
79
80
  it 'start elasticsearch service from the rpm extension' do
80
- @mock = Minitest::Mock.new
81
- @mock.expect(:extension, '.rpm')
82
- @mock.expect(:sudo_password, 'test')
81
+ mock = Minitest::Mock.new
82
+ mock.expect(:extension, '.rpm')
83
+ mock.expect(:sudo_password, 'test')
83
84
 
84
- @es_client = TestElasticsearch.new({ host: 'localhost', port: 9200 }, true)
85
+ es_client = TestElasticsearch.new({ host: 'localhost', port: 9200 }, true)
85
86
 
86
- result = @es_client.start_elasticsearch(@mock)
87
+ result = es_client.start_elasticsearch(mock)
87
88
 
88
89
  result.must_equal 'echo test | sudo -S service elasticsearch start'
89
90
  end
@@ -4,58 +4,57 @@ module ElasticsearchUpdate
4
4
  # The TestInstaller class below tests the Downloader class from the library
5
5
  class TestInstaller < Minitest::Test
6
6
  describe 'Installer', 'Used to install Elasticsearch file' do
7
-
8
7
  it 'should initialize and correctly assign values.' do
9
- @installer = ElasticsearchUpdate::Installer.new('test_password', '.deb', false)
10
- assert_kind_of ElasticsearchUpdate::Installer, @installer
8
+ installer = ElasticsearchUpdate::Installer.new('test_password', '.deb', false)
9
+ assert_kind_of ElasticsearchUpdate::Installer, installer
11
10
 
12
- @installer.sudo_password.must_equal 'test_password'
13
- @installer.extension.must_equal '.deb'
11
+ installer.sudo_password.must_equal 'test_password'
12
+ installer.extension.must_equal '.deb'
14
13
  end
15
14
 
16
15
  it 'should install the .deb file' do
17
- @mock_file = Minitest::Mock.new
18
- @mock_file.expect(:path, '/path/to/file.deb')
16
+ mock_file = Minitest::Mock.new
17
+ mock_file.expect(:path, '/path/to/file.deb')
19
18
 
20
19
  Kernel.stub :system, true do
21
- @installer = ElasticsearchUpdate::Installer.new('test_password', '.deb', true)
22
- response = @installer.install_file(@mock_file)
20
+ installer = ElasticsearchUpdate::Installer.new('test_password', '.deb', true)
21
+ response = installer.install_file(mock_file)
23
22
 
24
23
  response.must_equal true
25
24
  end
26
25
  end
27
26
 
28
27
  it 'should install the .rpm file' do
29
- @mock_file = Minitest::Mock.new
30
- @mock_file.expect(:path, '/path/to/file.rpm')
28
+ mock_file = Minitest::Mock.new
29
+ mock_file.expect(:path, '/path/to/file.rpm')
31
30
 
32
31
  Kernel.stub :system, true do
33
- @installer = ElasticsearchUpdate::Installer.new('test_password', '.rpm', true)
34
- response = @installer.install_file(@mock_file)
32
+ installer = ElasticsearchUpdate::Installer.new('test_password', '.rpm', true)
33
+ response = installer.install_file(mock_file)
35
34
 
36
35
  response.must_equal true
37
36
  end
38
37
  end
39
38
 
40
39
  it 'should install the .zip file' do
41
- @mock_file = Minitest::Mock.new
42
- @mock_file.expect(:path, '/path/to/file.rpm')
40
+ mock_file = Minitest::Mock.new
41
+ mock_file.expect(:path, '/path/to/file.rpm')
43
42
 
44
43
  Kernel.stub :system, true do
45
- @installer = ElasticsearchUpdate::Installer.new('test_password', '.zip', true)
46
- response = @installer.install_file(@mock_file)
44
+ installer = ElasticsearchUpdate::Installer.new('test_password', '.zip', true)
45
+ response = installer.install_file(mock_file)
47
46
 
48
47
  response.must_equal true
49
48
  end
50
49
  end
51
50
 
52
51
  it 'should install the .rpm file' do
53
- @mock_file = Minitest::Mock.new
54
- @mock_file.expect(:path, '/path/to/file.rpm')
52
+ mock_file = Minitest::Mock.new
53
+ mock_file.expect(:path, '/path/to/file.rpm')
55
54
 
56
55
  Kernel.stub :system, true do
57
- @installer = ElasticsearchUpdate::Installer.new('test_password', '.tar.gz', true)
58
- response = @installer.install_file(@mock_file)
56
+ installer = ElasticsearchUpdate::Installer.new('test_password', '.tar.gz', true)
57
+ response = installer.install_file(mock_file)
59
58
 
60
59
  response.must_equal true
61
60
  end
@@ -1,6 +1,7 @@
1
1
  require 'minitest_helper'
2
2
 
3
3
  module ElasticsearchUpdate
4
+ # Test wizard overrides the Wizard class methods for testing.
4
5
  class TestWizard < Wizard
5
6
  def ask(_question, _type = String, &_block)
6
7
  'Question asked.'
@@ -85,7 +86,7 @@ module ElasticsearchUpdate
85
86
 
86
87
  result = wizard.download_hash
87
88
 
88
- result.must_equal(base_url: 'download.elasticsearch.org',
89
+ result.must_equal(base_url: 'download.elastic.co',
89
90
  version: 'Question asked.',
90
91
  extension: '.deb')
91
92
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elasticsearch_update
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Kirsche
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-23 00:00:00.000000000 Z
11
+ date: 2015-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -116,7 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
116
116
  version: '0'
117
117
  requirements: []
118
118
  rubyforge_project:
119
- rubygems_version: 2.2.2
119
+ rubygems_version: 2.4.6
120
120
  signing_key:
121
121
  specification_version: 4
122
122
  summary: Updates the elasticsearch instance on the local machine.