desi 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/README.md +8 -3
- data/desi.gemspec +1 -0
- data/lib/desi/configuration.rb +5 -3
- data/lib/desi/index_manager.rb +4 -3
- data/lib/desi/process_manager.rb +2 -1
- data/lib/desi/runner.rb +7 -2
- data/lib/desi/version.rb +1 -1
- metadata +18 -8
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -144,9 +144,13 @@ will be spun up by (`desi start`)
|
|
144
144
|
|
145
145
|
## Change setting(s)
|
146
146
|
|
147
|
-
|
148
|
-
directory
|
149
|
-
|
147
|
+
There are two settings at the moment: location of the installation directory
|
148
|
+
(`directory`, default: `~/elasticsearch`) and ES host address (`server`,
|
149
|
+
default: `localhost:9200`).
|
150
|
+
|
151
|
+
Desi will look for files `/etc/desi.yml` or `~/.desi.yml` (the options found in
|
152
|
+
the former will be overriden by the ones found in the latter).
|
153
|
+
|
150
154
|
|
151
155
|
* command-line
|
152
156
|
|
@@ -157,6 +161,7 @@ the *directory* entry specified. The default directory is `~/elasticsearch`.
|
|
157
161
|
```ruby
|
158
162
|
Desi.configure do |c|
|
159
163
|
c.directory = "~/local/foo"
|
164
|
+
c.server = "192.168.1.42:9200"
|
160
165
|
end
|
161
166
|
```
|
162
167
|
|
data/desi.gemspec
CHANGED
@@ -21,6 +21,7 @@ an Elastic Search local install for development purposes.}
|
|
21
21
|
gem.add_development_dependency "guard-yard"
|
22
22
|
gem.add_development_dependency "redcarpet"
|
23
23
|
gem.add_development_dependency "rb-inotify"
|
24
|
+
gem.add_development_dependency "pry"
|
24
25
|
|
25
26
|
gem.files = `git ls-files`.split($\)
|
26
27
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
data/lib/desi/configuration.rb
CHANGED
@@ -15,9 +15,10 @@ module Desi
|
|
15
15
|
@directory = Pathname(File.expand_path(dir))
|
16
16
|
end
|
17
17
|
|
18
|
+
attr_accessor :server
|
19
|
+
|
18
20
|
def load_configuration!
|
19
|
-
config = config_files_data
|
20
|
-
config = defaults if config.empty?
|
21
|
+
config = defaults.merge(config_files_data)
|
21
22
|
|
22
23
|
public_methods(false).select {|m| m.to_s =~ /=$/ }.each do |setter|
|
23
24
|
attr_name = setter.to_s.tr('=', '')
|
@@ -57,7 +58,7 @@ module Desi
|
|
57
58
|
end
|
58
59
|
|
59
60
|
def defaults
|
60
|
-
{'directory' => "~/elasticsearch"}
|
61
|
+
{'directory' => "~/elasticsearch", "server" => "localhost:9200"}
|
61
62
|
end
|
62
63
|
|
63
64
|
instance.load_configuration!
|
@@ -72,6 +73,7 @@ module Desi
|
|
72
73
|
#
|
73
74
|
# Desi.configure do |c|
|
74
75
|
# c.directory = "~/es"
|
76
|
+
# c.server = "127.0.0.53:9200"
|
75
77
|
# end
|
76
78
|
#
|
77
79
|
# @return [Desi::Configuration] the configuration
|
data/lib/desi/index_manager.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
require "desi/http_client"
|
4
|
+
require "desi/configuration"
|
4
5
|
|
5
6
|
module Desi
|
6
7
|
|
@@ -33,7 +34,7 @@ module Desi
|
|
33
34
|
#
|
34
35
|
# @param [#to_hash] opts Hash of extra opts
|
35
36
|
#
|
36
|
-
# @option opts [#to_s] :host ('http://
|
37
|
+
# @option opts [#to_s] :host ('http://localhost:9200') Host to manage indices for
|
37
38
|
# @option opts [Boolean] :verbose (nil) Whether to output the actions' result
|
38
39
|
# on STDOUT
|
39
40
|
# @option opts [#new] :http_client_factory (Desi::HttpClient) HTTP transport class
|
@@ -45,7 +46,7 @@ module Desi
|
|
45
46
|
#
|
46
47
|
# @api public
|
47
48
|
def initialize(opts = {})
|
48
|
-
@host = to_uri(opts.fetch(:host
|
49
|
+
@host = to_uri(opts.fetch(:host) { Desi.configuration.server })
|
49
50
|
@verbose = opts[:verbose]
|
50
51
|
@outputter = opts.fetch(:outputter, Kernel)
|
51
52
|
@client = opts.fetch(:http_client_factory, Desi::HttpClient).new(@host)
|
@@ -137,7 +138,7 @@ module Desi
|
|
137
138
|
end
|
138
139
|
|
139
140
|
def to_uri(host_string)
|
140
|
-
scheme, host, port = ['http', '
|
141
|
+
scheme, host, port = ['http', 'localhost', 9200]
|
141
142
|
|
142
143
|
%r{(?<scheme>(https?|))(?:\:\/\/|)(?<host>[^:]*?):?(?<port>\d*)/?$}.match(host_string.to_s) do |m|
|
143
144
|
scheme = m[:scheme] unless m[:scheme].empty?
|
data/lib/desi/process_manager.rb
CHANGED
@@ -5,6 +5,7 @@ require "desi/cocaine"
|
|
5
5
|
require "ostruct"
|
6
6
|
require "desi/http_client"
|
7
7
|
require "desi/local_install"
|
8
|
+
require "desi/configuration"
|
8
9
|
|
9
10
|
module Desi
|
10
11
|
|
@@ -23,7 +24,7 @@ module Desi
|
|
23
24
|
class ProcessManager
|
24
25
|
|
25
26
|
def initialize(opts = {})
|
26
|
-
@host = opts.fetch(:host
|
27
|
+
@host = opts.fetch(:host) { Desi.configuration.server }
|
27
28
|
@verbose = opts[:verbose]
|
28
29
|
@foreground = opts[:foreground]
|
29
30
|
@local_install = LocalInstall.new
|
data/lib/desi/runner.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
require 'boson/runner'
|
4
|
+
require "desi/configuration"
|
4
5
|
|
5
6
|
module Desi
|
6
7
|
class Runner < Boson::Runner
|
@@ -84,7 +85,7 @@ module Desi
|
|
84
85
|
|
85
86
|
desc "Show current status"
|
86
87
|
verbosity_option
|
87
|
-
option "--host", type: :string, desc: "Elastic Search cluster URL", default:
|
88
|
+
option "--host", type: :string, desc: "Elastic Search cluster URL", default: Desi.configuration.server
|
88
89
|
def status(options = {})
|
89
90
|
set_verbosity!(options)
|
90
91
|
Desi::ProcessManager.new(options).status
|
@@ -92,7 +93,7 @@ module Desi
|
|
92
93
|
|
93
94
|
desc "List indices"
|
94
95
|
verbosity_option
|
95
|
-
option "--host", type: :string, desc: "Elastic Search cluster URL", default:
|
96
|
+
option "--host", type: :string, desc: "Elastic Search cluster URL", default: Desi.configuration.server
|
96
97
|
option "--delete", type: :boolean, desc: "Delete the specified indices (You've been warned!)", default: false
|
97
98
|
option "--empty", type: :boolean, desc: "Delete all documents from the specified indices", default: false
|
98
99
|
def indices(pattern = nil, options = {})
|
@@ -106,6 +107,10 @@ module Desi
|
|
106
107
|
else
|
107
108
|
index_manager.list(pattern)
|
108
109
|
end
|
110
|
+
|
111
|
+
rescue Errno::ECONNREFUSED
|
112
|
+
warn "Server #{options[:host]} appears to be unavailable!"
|
113
|
+
exit 1
|
109
114
|
end
|
110
115
|
|
111
116
|
desc "Show tail output from Elastic Search's log file"
|
data/lib/desi/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: desi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-03-
|
12
|
+
date: 2013-03-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: boson
|
@@ -155,6 +155,22 @@ dependencies:
|
|
155
155
|
- - ! '>='
|
156
156
|
- !ruby/object:Gem::Version
|
157
157
|
version: '0'
|
158
|
+
- !ruby/object:Gem::Dependency
|
159
|
+
name: pry
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
161
|
+
none: false
|
162
|
+
requirements:
|
163
|
+
- - ! '>='
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '0'
|
166
|
+
type: :development
|
167
|
+
prerelease: false
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
170
|
+
requirements:
|
171
|
+
- - ! '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
158
174
|
description: ! 'Desi (Developper ElasticSearch Installer) is very simple tool to quickly
|
159
175
|
set up
|
160
176
|
|
@@ -206,18 +222,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
206
222
|
- - ! '>='
|
207
223
|
- !ruby/object:Gem::Version
|
208
224
|
version: '0'
|
209
|
-
segments:
|
210
|
-
- 0
|
211
|
-
hash: 2218572512027312974
|
212
225
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
213
226
|
none: false
|
214
227
|
requirements:
|
215
228
|
- - ! '>='
|
216
229
|
- !ruby/object:Gem::Version
|
217
230
|
version: '0'
|
218
|
-
segments:
|
219
|
-
- 0
|
220
|
-
hash: 2218572512027312974
|
221
231
|
requirements: []
|
222
232
|
rubyforge_project:
|
223
233
|
rubygems_version: 1.8.23
|