elasticsearch_update 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8184b6ab6ae68ea0bee8b38f1cc54059ed3bbb7d
4
- data.tar.gz: f8b5bca19aed12f5e68ef3aaea2c9ff4170f2042
3
+ metadata.gz: 3df537b4bd6bc80e4eb1120c60e39a8fa5f324df
4
+ data.tar.gz: 5959d7922c84ab8059edab8ef1f093957725541a
5
5
  SHA512:
6
- metadata.gz: 8d17edc14813b94caa113d2d3ca5b790e7df47093b8330fc63c10b511390aceb9713c781badc00ec85fcea0b664da25322ede0003c6232542d901b713d64e670
7
- data.tar.gz: f6fce5f86ddb2f53e19077cc24e00d5d1a31d74a18972597d0289a17d4f433ee97ec268865890c6c339c8db5fc9eb7eec1d8f9e68bc64bd6474fd4f724610d52
6
+ metadata.gz: 8a43c31b14e97b06724b2d0da9dc308b30d155bc4934067f7c22e5f43cbfa8e46b601fe631408a1b16f034c1991097feac29b9127d1a58db8d2dc2e3dba0538c
7
+ data.tar.gz: 1a2285449eef6fd531687878da4ab6944cfac4b4a244bdbe8001209cf5b09290fdc75bd3fb926b89d868ccf9601b7e88a68aee7a8d91163658c53452052c5bce
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
- [![Build Status](https://travis-ci.org/kkirsche/elasticsearch_update.svg?branch=master)](https://travis-ci.org/kkirsche/elasticsearch_update) [![Code Climate](https://codeclimate.com/github/kkirsche/elasticsearch_update/badges/gpa.svg)](https://codeclimate.com/github/kkirsche/elasticsearch_update) [![Test Coverage](https://codeclimate.com/github/kkirsche/elasticsearch_update/badges/coverage.svg)](https://codeclimate.com/github/kkirsche/elasticsearch_update) [![Dependency Status](https://gemnasium.com/kkirsche/elasticsearch_update.svg)](https://gemnasium.com/kkirsche/elasticsearch_update)
2
- # Elasticsearch Update v1.0.1
1
+ [![Build Status](https://travis-ci.org/kkirsche/elasticsearch_update.svg?branch=master)](https://travis-ci.org/kkirsche/elasticsearch_update) [![Code Climate](https://codeclimate.com/github/kkirsche/elasticsearch_update/badges/gpa.svg)](https://codeclimate.com/github/kkirsche/elasticsearch_update) [![Test Coverage](https://codeclimate.com/github/kkirsche/elasticsearch_update/badges/coverage.svg)](https://codeclimate.com/github/kkirsche/elasticsearch_update) [![Dependency Status](https://gemnasium.com/kkirsche/elasticsearch_update.svg)](https://gemnasium.com/kkirsche/elasticsearch_update) [![Gem Version](https://badge.fury.io/rb/elasticsearch_update.svg)](http://badge.fury.io/rb/elasticsearch_update)
2
+ # Elasticsearch Update
3
3
 
4
4
  This gem allows users to easily update their 1.0 and later Elasticsearch instance on the local machine from one of the following formats.
5
5
 
@@ -13,6 +13,8 @@ Gem::Specification.new do |spec|
13
13
  spec.homepage = "https://github.com/kkirsche/elasticsearch_update"
14
14
  spec.license = "MIT"
15
15
 
16
+ spec.required_ruby_version = '>= 2.0.0'
17
+
16
18
  spec.files = `git ls-files -z`.split("\x0")
17
19
  spec.executables << 'elasticsearch_update'
18
20
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
@@ -1,8 +1,20 @@
1
1
  require 'logger'
2
2
 
3
3
  module ElasticsearchUpdate
4
- # This class is in charge of retrieving and downloading data.
4
+ # == CLI
5
+ # ElasticsearchUpdate::Cli class is used to begin application execution
6
+ # and walks the user through the update process
7
+ #
8
+ # == Parameters
9
+ #
10
+ # Start takes no parameters or options.
5
11
  class Cli
12
+ # Start the command line update process which calls all necessary
13
+ # methods and classes to complete an Elasticsearch update.
14
+ #
15
+ # ==== Example
16
+ #
17
+ # ElasticsearchUpdate::Cli.start
6
18
  def self.start
7
19
  @log = Logger.new(STDOUT)
8
20
  @log.level = Logger::INFO
@@ -4,10 +4,42 @@ require 'tempfile'
4
4
  require 'open-uri'
5
5
 
6
6
  module ElasticsearchUpdate
7
- # This class is in charge of retrieving and downloading data.
7
+ # == Downloader
8
+ # ElasticsearchUpdate::Downloader class is used to download the
9
+ # Elasticsearch update file
10
+ #
11
+ # == Parameters
12
+ #
13
+ # Initilization requires a +hash+ and optional +test+ parameter.
14
+ #
15
+ # +hash+ is a ruby hash in the following format:
16
+ # { host: String, port: Integer }
17
+ #
18
+ # +test+ is a boolean identifying whether or not we are in a test
19
+ # if we are, we set the Logger to logging FATAL errors only.
20
+ #
21
+ # == Example
22
+ #
23
+ # ElasticsearchUpdate::Downloader.new({ host: 'localhost', port: 9200 })
8
24
  class Downloader
9
25
  attr_reader :extension, :base, :version, :download_url, :verify_url
10
26
  attr_accessor :update_file
27
+ # == initialize
28
+ # Allows us to create an instance of the Downloader
29
+ #
30
+ # == Parameters
31
+ #
32
+ # initialize requires a +hash+ and optional +test+ parameter.
33
+ #
34
+ # +hash+ is a ruby hash in the following format:
35
+ # { host: String, port: Integer }
36
+ #
37
+ # +test+ is a boolean identifying whether or not we are in a test
38
+ # if we are, we set the Logger to logging FATAL errors only.
39
+ #
40
+ # == Example
41
+ #
42
+ # ElasticsearchUpdate::Downloader.new({ host: 'localhost', port: 9200 })
11
43
  def initialize(hash, test = false)
12
44
  @log = Logger.new(STDOUT)
13
45
  if test
@@ -29,6 +61,21 @@ module ElasticsearchUpdate
29
61
  @extension + '.sha1.txt'
30
62
  end
31
63
 
64
+ # == write_file_from_url
65
+ # Allows us to write data from a URL to a file.
66
+ #
67
+ # == Parameters
68
+ #
69
+ # write_file_from_url requires a +file+ to write to and a +url+ from which
70
+ # to download the file from.
71
+ #
72
+ # +file+ is a ruby File or Tempfile object
73
+ #
74
+ # +url+ is a string for the URL.
75
+ #
76
+ # == Example
77
+ #
78
+ # write_file_from_url(Tempfile.new('example'), http://foo.bar/file.zip)
32
79
  def write_file_from_url(file, url)
33
80
  Net::HTTP.start(@base) do |http|
34
81
  begin
@@ -43,6 +90,22 @@ module ElasticsearchUpdate
43
90
  end
44
91
  end
45
92
 
93
+ # == download_file
94
+ # Begins the download process of the Elasticsearch update file.
95
+ #
96
+ # == Parameters
97
+ #
98
+ # download_file takes an optional boolean argument, named +test+.
99
+ #
100
+ # +test+ is an optional boolean which allows us to avoid actually writing to
101
+ # a file while running our tests.
102
+ #
103
+ # == Example
104
+ #
105
+ # # Not a test
106
+ # download_file
107
+ # # Test
108
+ # download_file(true)
46
109
  def download_file(test = false)
47
110
  @update_file = Tempfile.new(['elasticsearch_update_file', @extension])
48
111
 
@@ -53,6 +116,21 @@ module ElasticsearchUpdate
53
116
  @update_file
54
117
  end
55
118
 
119
+ # == verify_update_file
120
+ # Begins the verification process the Elasticsearch update file by
121
+ # using the instance variables of the file and the downloaded SHA1 value.
122
+ #
123
+ # == Parameters
124
+ #
125
+ # verify_update_file takes no parameters.
126
+ #
127
+ # == Requires
128
+ #
129
+ # verify_update_file requires @update_file to be set as a file.
130
+ #
131
+ # == Example
132
+ #
133
+ # verify_update_file
56
134
  def verify_update_file
57
135
  @log.info('Beginning integrity check of downloaded file .')
58
136
  @file_sha1 = Digest::SHA1.file(@update_file.path).hexdigest
@@ -67,6 +145,22 @@ module ElasticsearchUpdate
67
145
  end
68
146
  end
69
147
 
148
+ # == download_remote_sha1
149
+ # Begins the download of the Elasticsearch update file SHA1 text file.
150
+ # It then separates the SHA1 value from the filename.
151
+ #
152
+ # == Parameters
153
+ #
154
+ # download_remote_sha1 takes no parameters.
155
+ #
156
+ # == Requires
157
+ #
158
+ # download_remote_sha1 requires @verify_url to be set as a string to a
159
+ # .txt file.
160
+ #
161
+ # == Example
162
+ #
163
+ # download_remote_sha1
70
164
  def download_remote_sha1
71
165
  @log.info('Downloading Elasticsearch SHA1.')
72
166
 
@@ -3,9 +3,46 @@ require 'json'
3
3
  require 'net/http'
4
4
 
5
5
  module ElasticsearchUpdate
6
- # This class is in charge of retrieving and downloading data.
6
+ # == Elasticsearch
7
+ # ElasticsearchUpdate::Elasticsearch class is used to interact with
8
+ # the local Elasticsearch instance.
9
+ #
10
+ # == Parameters
11
+ #
12
+ # Initilization takes an optional +hash+ and optional +test+ parameter.
13
+ #
14
+ # +hash+ is a ruby hash in the following format:
15
+ # { host: String, port: Integer }
16
+ #
17
+ # +test+ is a boolean identifying whether or not we are in a test
18
+ # if we are, we set the Logger to logging FATAL errors only.
19
+ #
20
+ # == Example
21
+ #
22
+ # ElasticsearchUpdate::Elasticsearch.new({ host: 'localhost', port: 9200 })
7
23
  class Elasticsearch
8
24
  attr_reader :es_host, :es_port
25
+ # == initialize
26
+ # Allows us to create an instance of the Elasticsearch interaction client.
27
+ #
28
+ # == Parameters
29
+ #
30
+ # initialize takes an optional +hash+ and optional +test+ parameter.
31
+ #
32
+ # +hash+ is a ruby hash in the following format:
33
+ # { host: String, port: Integer }
34
+ #
35
+ # +test+ is a boolean identifying whether or not we are in a test
36
+ # if we are, we set the Logger to logging FATAL errors only.
37
+ #
38
+ # == Example
39
+ #
40
+ # # Not a test, default host and port
41
+ # ElasticsearchUpdate::Elasticsearch.new
42
+ # # Not a test, manually set host and port
43
+ # ElasticsearchUpdate::Elasticsearch.new({ host: 'localhost', port: 9200 })
44
+ # # Test
45
+ # ElasticsearchUpdate::Elasticsearch.new({ host: 'localhost', port: 9200 }, true)
9
46
  def initialize(hash = { host: 'localhost', port: 9200 }, test = false)
10
47
  @log = Logger.new(STDOUT)
11
48
  if test
@@ -20,6 +57,27 @@ module ElasticsearchUpdate
20
57
  @es_port = hash[:port]
21
58
  end
22
59
 
60
+ # == cluster_routing_allocation
61
+ # Allows us to enable or disable Elasticsearch's cluster routing allocation
62
+ # setting via the HTTP API. Learn more in Elasticsearch's documentation:
63
+ # http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-cluster.html
64
+ #
65
+ # == Parameters
66
+ #
67
+ # cluster_routing_allocation takes an optional +type+.
68
+ #
69
+ # +type+ is a String. Possible values include:
70
+ # 'all' -- (default) Allows shard allocation for all kinds of shards.
71
+ # 'primaries' -- Allows shard allocation only for primary shards.
72
+ # 'new_primaries' -- Allows shard allocation only for primary shards for new indices.
73
+ # 'none' -- No shard allocations of any kind are allowed for all indices.
74
+ #
75
+ # == Example
76
+ #
77
+ # # Disabling shard allocation
78
+ # cluster_routing_allocation('none')
79
+ # # Allowing shard allocation
80
+ # cluster_routing_allocation('all')
23
81
  def cluster_routing_allocation(type)
24
82
  @log.info('Disabling cluster routing allocation')
25
83
 
@@ -38,6 +96,19 @@ module ElasticsearchUpdate
38
96
  response
39
97
  end
40
98
 
99
+ # == shutdown_local_node
100
+ # Allows us to shutdown a the local Elasticsearch node via the HTTP API.
101
+ # Requires @es_host and @es_port which were set during initialization.
102
+ # Learn more in Elasticsearch's documentation:
103
+ # http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/cluster-nodes-shutdown.html
104
+ #
105
+ # == Parameters
106
+ #
107
+ # shutdown_local_node takes no parameters
108
+ #
109
+ # == Example
110
+ #
111
+ # shutdown_local_node
41
112
  def shutdown_local_node
42
113
  @log.info('Shutting down local node')
43
114
  @shutdown_uri = URI('http://' + @es_host + ':' + @es_port.to_s + '/_cluster/nodes/_local/_shutdown')
@@ -46,16 +117,49 @@ module ElasticsearchUpdate
46
117
  response
47
118
  end
48
119
 
120
+ # == start_elasticsearch_service
121
+ # Allows us to begin the Linux Elasticsearch service
122
+ #
123
+ # == Parameters
124
+ #
125
+ # start_elasticsearch_service takes a sudo +password+ parameter as a String.
126
+ #
127
+ # == Example
128
+ #
129
+ # start_elasticsearch_service('test_password')
49
130
  def start_elasticsearch_service(password)
50
131
  @log.info('Starting elasticsearch service')
51
132
  system('echo ' + password + ' | sudo -S service elasticsearch start')
52
133
  end
53
134
 
135
+ # == start_elasticsearch_binary
136
+ # Allows us to begin a Unix / Linux binary instance of Elasticsearch
137
+ # Windows users require a slightly different command.
138
+ #
139
+ # == Parameters
140
+ #
141
+ # start_elasticsearch_binary takes a +path+ parameter as a String.
142
+ #
143
+ # == Example
144
+ #
145
+ # start_elasticsearch_binary('/path/to/elasticsearch')
54
146
  def start_elasticsearch_binary(path)
55
147
  @log.info('Starting elasticsearch binary')
56
148
  system(path + 'bin/elasticsearch')
57
149
  end
58
150
 
151
+ # == start_elasticsearch
152
+ # Allows us to use the proper command when starting Elasticsearch.
153
+ #
154
+ # == Parameters
155
+ #
156
+ # start_elasticsearch takes a +installer+ parameter which is an instance of
157
+ # ElasticsearchUpdate::Installer.
158
+ #
159
+ # == Example
160
+ #
161
+ # installer = ElasticsearchUpdate::Installer.new('test_password', '.deb')
162
+ # start_elasticsearch(installer)
59
163
  def start_elasticsearch(installer_obj)
60
164
  case installer_obj.extension
61
165
  when '.zip'
@@ -1,9 +1,43 @@
1
1
  require 'logger'
2
2
 
3
3
  module ElasticsearchUpdate
4
- # This class is in charge of retrieving and downloading data.
4
+ # == Installer
5
+ # ElasticsearchUpdate::Installer class is used to install the downloaded
6
+ # Elasticsearch update file.
7
+ #
8
+ # == Parameters
9
+ #
10
+ # Initilization requires a sudo +password+, file +extension+, and optional +test+ parameter.
11
+ #
12
+ # +password+ is String. Ex. 'test_password'
13
+ #
14
+ # +extension+ is String. Ex. '.deb'
15
+ #
16
+ # +test+ is a boolean identifying whether or not we are in a test
17
+ # if we are, we set the Logger to logging FATAL errors only.
18
+ #
19
+ # == Example
20
+ #
21
+ # ElasticsearchUpdate::Installer.new('test_password', '.deb')
5
22
  class Installer
6
23
  attr_accessor :sudo_password, :extension
24
+ # == initialize
25
+ # Allows us to create an instance of the Installer.
26
+ #
27
+ # == Parameters
28
+ #
29
+ # Initilization requires a sudo +password+, file +extension+, and optional +test+ parameter.
30
+ #
31
+ # +password+ is String. Ex. 'test_password'
32
+ #
33
+ # +extension+ is String. Ex. '.deb'
34
+ #
35
+ # +test+ is a boolean identifying whether or not we are in a test
36
+ # if we are, we set the Logger to logging FATAL errors only.
37
+ #
38
+ # == Example
39
+ #
40
+ # ElasticsearchUpdate::Installer.new('test_password', '.deb')
7
41
  def initialize(password, extension, test = false)
8
42
  @log = Logger.new(STDOUT)
9
43
  if test
@@ -18,6 +52,19 @@ module ElasticsearchUpdate
18
52
  @extension = extension
19
53
  end
20
54
 
55
+ # == install_file
56
+ # Uses the extension found in the @extension variable set on initilization
57
+ # to determine what command should be used to install the update file.
58
+ #
59
+ # == Parameters
60
+ #
61
+ # install_file requires the update +file+ as a parameter.
62
+ #
63
+ # +file+ is File or Tempfile object. Ex. Tempfile.new('es_update_file')
64
+ #
65
+ # == Example
66
+ #
67
+ # install_file(Tempfile.new('es_update_file'))
21
68
  def install_file(file)
22
69
  case @extension
23
70
  when '.zip'
@@ -31,6 +78,21 @@ module ElasticsearchUpdate
31
78
  end
32
79
  end
33
80
 
81
+ # == install_update_file
82
+ # Uses the given file and extension to install the service version of
83
+ # Elasticsearch from an RPM or DEB file.
84
+ #
85
+ # == Parameters
86
+ #
87
+ # install_update_file requires the update +file+ and +extension+ as a parameter.
88
+ #
89
+ # +file+ is File or Tempfile object. Ex. Tempfile.new('es_update_file')
90
+ #
91
+ # +extension+ is String. Ex. '.deb'
92
+ #
93
+ # == Example
94
+ #
95
+ # install_update_file(Tempfile.new('es_update_file'), '.deb')
34
96
  def install_update_file(file, extension)
35
97
  @log.info('Installing' + extension + 'file.')
36
98
  command = 'echo ' + @sudo_password + ' | '
@@ -43,6 +105,8 @@ module ElasticsearchUpdate
43
105
  Kernel.system(command)
44
106
  end
45
107
 
108
+ # == unzip_file
109
+ # In development. Nothing occurs.
46
110
  def unzip_file(file)
47
111
  end
48
112
  end
@@ -1,3 +1,3 @@
1
1
  module ElasticsearchUpdate
2
- VERSION = "1.0.1"
2
+ VERSION = "1.0.2"
3
3
  end
@@ -1,8 +1,36 @@
1
1
  require 'highline/import'
2
2
 
3
3
  module ElasticsearchUpdate
4
- # This class is in charge of retrieving and downloading data.
4
+ # == Wizard
5
+ # ElasticsearchUpdate::Wizard class is used to ask questions
6
+ # to the user using the highline gem.
7
+ #
8
+ # == Parameters
9
+ #
10
+ # Initilization requires no parameters.
11
+ #
12
+ # == Example
13
+ #
14
+ # ElasticsearchUpdate::Wizard.new
5
15
  class Wizard
16
+ # == extension
17
+ # extension is used to provide a menu to the user asking which file
18
+ # type they would like to use when updating Elasticsearch
19
+ #
20
+ # == Parameters
21
+ #
22
+ # Requires no parameters.
23
+ #
24
+ # == Returns
25
+ #
26
+ # Returns +@choice+ which is a string containing either:
27
+ # 1. '.deb'
28
+ # 2. '.rpm'
29
+ #
30
+ # == Example
31
+ #
32
+ # wizard = ElasticsearchUpdate::Wizard.new
33
+ # extension = wizard.extension
6
34
  def extension
7
35
  choose do |menu|
8
36
  menu.prompt = 'Which type of upgrade are we doing? '
@@ -16,10 +44,42 @@ module ElasticsearchUpdate
16
44
  @choice
17
45
  end
18
46
 
47
+ # == version
48
+ # version is used to ask the user which version of Elasticsearch
49
+ # they would like to use.
50
+ #
51
+ # == Parameters
52
+ #
53
+ # Requires no parameters.
54
+ #
55
+ # == Returns
56
+ #
57
+ # Returns a string containing a version number. Ex: '1.4.3'
58
+ #
59
+ # == Example
60
+ #
61
+ # wizard = ElasticsearchUpdate::Wizard.new
62
+ # version = wizard.version
19
63
  def version
20
64
  ask('What version of Elasticsearch should we update to? (major.minor.path) ', String) { |q| q.validate = /\d\.\d\.\d/ }
21
65
  end
22
66
 
67
+ # == host
68
+ # host is used to ask the user the hostname of Elasticsearch so we
69
+ # can interact with it over it's HTTP API.
70
+ #
71
+ # == Parameters
72
+ #
73
+ # Requires no parameters.
74
+ #
75
+ # == Returns
76
+ #
77
+ # Returns a string containing the hostname. Ex: 'localhost'
78
+ #
79
+ # == Example
80
+ #
81
+ # wizard = ElasticsearchUpdate::Wizard.new
82
+ # host = wizard.host
23
83
  def host
24
84
  response = ask('What is your Elasticsearch hostname? (Default: localhost) ', String)
25
85
  response = 'localhost' if response == ''
@@ -27,6 +87,22 @@ module ElasticsearchUpdate
27
87
  response
28
88
  end
29
89
 
90
+ # == port
91
+ # port is used to ask the user the port of Elasticsearch so we
92
+ # can interact with it over it's HTTP API.
93
+ #
94
+ # == Parameters
95
+ #
96
+ # Requires no parameters.
97
+ #
98
+ # == Returns
99
+ #
100
+ # Returns a string containing the port. Ex: '9200'
101
+ #
102
+ # == Example
103
+ #
104
+ # wizard = ElasticsearchUpdate::Wizard.new
105
+ # port = wizard.port
30
106
  def port
31
107
  response = ask('What is your Elasticsearch port? (Default: 9200) ', String)
32
108
 
@@ -35,6 +111,23 @@ module ElasticsearchUpdate
35
111
  response
36
112
  end
37
113
 
114
+ # == es_location_hash
115
+ # es_location_hash is used construct the location hash used by other
116
+ # gem classes.
117
+ #
118
+ # == Parameters
119
+ #
120
+ # Requires no parameters.
121
+ #
122
+ # == Returns
123
+ #
124
+ # Returns a hash containing the host and port.
125
+ # Ex: { host: 'localhost', port: 9200 }
126
+ #
127
+ # == Example
128
+ #
129
+ # wizard = ElasticsearchUpdate::Wizard.new
130
+ # location_hash = wizard.es_location_hash
38
131
  def es_location_hash
39
132
  {
40
133
  host: host,
@@ -42,14 +135,64 @@ module ElasticsearchUpdate
42
135
  }
43
136
  end
44
137
 
138
+ # == elasticsearch_fs_location
139
+ # elasticsearch_fs_location is used to find where the Elasticsearch
140
+ # binary file is so that we can update from .zip or .tar.gz and
141
+ # successfully start elasticsearch after the update
142
+ #
143
+ # == Parameters
144
+ #
145
+ # Requires no parameters.
146
+ #
147
+ # == Returns
148
+ #
149
+ # Returns a string containing path.
150
+ # Ex: '/path/to/elasticsearch/'
151
+ #
152
+ # == Example
153
+ #
154
+ # wizard = ElasticsearchUpdate::Wizard.new
155
+ # fs_location = wizard.elasticsearch_fs_location
45
156
  def elasticsearch_fs_location
46
157
  ask('In what directory does Elasticsearch run? ', String)
47
158
  end
48
159
 
160
+ # == sudo_password
161
+ # sudo_password is used to get the sudo password for use while installing
162
+ # the updated Elasticsearch files. Echo's "x" for each keypress.
163
+ #
164
+ # == Parameters
165
+ #
166
+ # Requires no parameters.
167
+ #
168
+ # == Returns
169
+ #
170
+ # Returns a string containing the password.
171
+ # Ex: 'example_password'
172
+ #
173
+ # == Example
174
+ #
175
+ # wizard = ElasticsearchUpdate::Wizard.new
176
+ # password = wizard.sudo_password
49
177
  def sudo_password
50
178
  ask('What password should be used while updating Elasticsearch? ') { |q| q.echo = "x" }
51
179
  end
52
180
 
181
+ # == download_hash
182
+ # download_hash is used to construct the hash used by the Downloader
183
+ #
184
+ # == Parameters
185
+ #
186
+ # Requires no parameters.
187
+ #
188
+ # == Returns
189
+ #
190
+ # Returns a hash containing the base_url, version, and extension.
191
+ #
192
+ # == Example
193
+ #
194
+ # wizard = ElasticsearchUpdate::Wizard.new
195
+ # hash = wizard.download_hash
53
196
  def download_hash
54
197
  {
55
198
  base_url: 'download.elasticsearch.org',
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elasticsearch_update
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Kirsche
@@ -108,7 +108,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
108
108
  requirements:
109
109
  - - ">="
110
110
  - !ruby/object:Gem::Version
111
- version: '0'
111
+ version: 2.0.0
112
112
  required_rubygems_version: !ruby/object:Gem::Requirement
113
113
  requirements:
114
114
  - - ">="