invoker 1.0.2 → 1.0.3
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 +6 -14
- data/.gitignore +2 -0
- data/.rspec +2 -0
- data/Rakefile +7 -5
- data/invoker.gemspec +3 -3
- data/lib/invoker.rb +2 -0
- data/lib/invoker/commander.rb +12 -9
- data/lib/invoker/errors.rb +1 -0
- data/lib/invoker/parsers/config.rb +49 -14
- data/lib/invoker/parsers/option_parser.rb +1 -1
- data/lib/invoker/parsers/procfile.rb +86 -0
- data/lib/invoker/power.rb +1 -0
- data/lib/invoker/power/balancer.rb +16 -1
- data/lib/invoker/power/http_response.rb +81 -0
- data/lib/invoker/power/setup.rb +13 -1
- data/lib/invoker/power/templates/404.html +40 -0
- data/lib/invoker/power/templates/503.html +40 -0
- data/lib/invoker/runner.rb +6 -0
- data/lib/invoker/version.rb +1 -1
- data/spec/invoker/command_listener/client_spec.rb +1 -1
- data/spec/invoker/command_worker_spec.rb +1 -1
- data/spec/invoker/commander_spec.rb +10 -10
- data/spec/invoker/config_spec.rb +55 -17
- data/spec/invoker/event/manager_spec.rb +13 -18
- data/spec/invoker/invoker_spec.rb +5 -5
- data/spec/invoker/power/config_spec.rb +4 -4
- data/spec/invoker/power/http_response_spec.rb +34 -0
- data/spec/invoker/power/port_finder_spec.rb +2 -2
- data/spec/invoker/power/setup_spec.rb +22 -30
- data/spec/spec_helper.rb +58 -8
- metadata +26 -19
@@ -9,12 +9,12 @@ describe "Invoker Power configuration" do
|
|
9
9
|
config = Invoker::Power::Config.create(
|
10
10
|
dns_port: 1200, http_port: 1201, ipfw_rule_number: 010
|
11
11
|
)
|
12
|
-
File.exists?(Invoker::Power::Config::CONFIG_LOCATION).
|
12
|
+
expect(File.exists?(Invoker::Power::Config::CONFIG_LOCATION)).to be_true
|
13
13
|
|
14
14
|
config = Invoker::Power::Config.load_config()
|
15
|
-
config.dns_port.
|
16
|
-
config.http_port.
|
17
|
-
config.ipfw_rule_number.
|
15
|
+
expect(config.dns_port).to eq(1200)
|
16
|
+
expect(config.http_port).to eq(1201)
|
17
|
+
expect(config.ipfw_rule_number).to eq(010)
|
18
18
|
ensure
|
19
19
|
File.exists?(Invoker::Power::Config::CONFIG_LOCATION) &&
|
20
20
|
File.delete(Invoker::Power::Config::CONFIG_LOCATION)
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "tempfile"
|
3
|
+
|
4
|
+
describe Invoker::Power::HttpResponse do
|
5
|
+
before do
|
6
|
+
@http_response = Invoker::Power::HttpResponse.new()
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should allow user to send a file" do
|
10
|
+
begin
|
11
|
+
file = Tempfile.new("error.html")
|
12
|
+
file_content = "Error message"
|
13
|
+
file.write(file_content)
|
14
|
+
file.close
|
15
|
+
|
16
|
+
@http_response.use_file_as_body(file.path)
|
17
|
+
expect(@http_response.body).to eq(file_content)
|
18
|
+
expect(@http_response.http_string).to include(file_content)
|
19
|
+
ensure
|
20
|
+
file.unlink
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should allow user to set headers" do
|
25
|
+
@http_response["Content-Type"] = "text/html"
|
26
|
+
expect(@http_response.header["Content-Type"]).to eq("text/html")
|
27
|
+
expect(@http_response.http_string).to include("Content-Type")
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should allow user to set status" do
|
31
|
+
@http_response.status = 503
|
32
|
+
expect(@http_response.http_string).to include(Invoker::Power::HttpResponse::STATUS_MAPS[503])
|
33
|
+
end
|
34
|
+
end
|
@@ -7,10 +7,10 @@ describe "PortFinder" do
|
|
7
7
|
end
|
8
8
|
|
9
9
|
it "should find a http port" do
|
10
|
-
@port_finder.http_port.
|
10
|
+
expect(@port_finder.http_port).not_to be_nil
|
11
11
|
end
|
12
12
|
|
13
13
|
it "should find a dns port" do
|
14
|
-
@port_finder.dns_port.
|
14
|
+
expect(@port_finder.dns_port).not_to be_nil
|
15
15
|
end
|
16
16
|
end
|
@@ -1,34 +1,6 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
describe "Setup" do
|
4
|
-
before {
|
5
|
-
@original_verbosity = $VERBOSE
|
6
|
-
$VERBOSE = nil
|
7
|
-
@old_config = Invoker::Power::Config::CONFIG_LOCATION
|
8
|
-
Invoker::Power::Config.const_set(:CONFIG_LOCATION, "/tmp/.invoker")
|
9
|
-
|
10
|
-
File.exists?(Invoker::Power::Config::CONFIG_LOCATION) &&
|
11
|
-
File.delete(Invoker::Power::Config::CONFIG_LOCATION)
|
12
|
-
|
13
|
-
@old_resolver = Invoker::Power::Setup::RESOLVER_FILE
|
14
|
-
Invoker::Power::Setup.const_set(:RESOLVER_FILE, "/tmp/invoker-dev")
|
15
|
-
|
16
|
-
File.exists?(Invoker::Power::Setup::RESOLVER_FILE) &&
|
17
|
-
File.delete(Invoker::Power::Setup::RESOLVER_FILE)
|
18
|
-
}
|
19
|
-
|
20
|
-
after {
|
21
|
-
File.exists?(Invoker::Power::Config::CONFIG_LOCATION) &&
|
22
|
-
File.delete(Invoker::Power::Config::CONFIG_LOCATION)
|
23
|
-
|
24
|
-
Invoker::Power::Config.const_set(:CONFIG_LOCATION, @old_config)
|
25
|
-
|
26
|
-
File.exists?(Invoker::Power::Setup::RESOLVER_FILE) &&
|
27
|
-
File.delete(Invoker::Power::Setup::RESOLVER_FILE)
|
28
|
-
Invoker::Power::Setup.const_set(:RESOLVER_FILE, @old_resolver)
|
29
|
-
$VERBOSE = @original_verbosity
|
30
|
-
}
|
31
|
-
|
32
4
|
describe "When no setup exists" do
|
33
5
|
it "should create a config file with port etc" do
|
34
6
|
setup = Invoker::Power::Setup.new()
|
@@ -40,8 +12,8 @@ describe "Setup" do
|
|
40
12
|
setup.setup_invoker
|
41
13
|
|
42
14
|
config = Invoker::Power::Config.load_config()
|
43
|
-
config.http_port.
|
44
|
-
config.dns_port.
|
15
|
+
expect(config.http_port).not_to be_nil
|
16
|
+
expect(config.dns_port).not_to be_nil
|
45
17
|
end
|
46
18
|
end
|
47
19
|
|
@@ -109,4 +81,24 @@ describe "Setup" do
|
|
109
81
|
setup.uninstall_invoker
|
110
82
|
end
|
111
83
|
end
|
84
|
+
|
85
|
+
describe "setup on fresh osx install" do
|
86
|
+
context "when resolver directory does not exist" do
|
87
|
+
before do
|
88
|
+
@setup = Invoker::Power::Setup.new()
|
89
|
+
FileUtils.rm_rf(Invoker::Power::Setup::RESOLVER_DIR)
|
90
|
+
end
|
91
|
+
|
92
|
+
it "should create the directory and install" do
|
93
|
+
@setup.expects(:setup_resolver_file).returns(true)
|
94
|
+
@setup.expects(:drop_to_normal_user).returns(true)
|
95
|
+
@setup.expects(:flush_dns_rules).returns(true)
|
96
|
+
@setup.expects(:install_firewall).once()
|
97
|
+
|
98
|
+
@setup.setup_invoker()
|
99
|
+
|
100
|
+
expect(Dir.exists?(Invoker::Power::Setup::RESOLVER_DIR)).to be_true
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
112
104
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,12 +1,64 @@
|
|
1
|
-
require "bacon"
|
2
|
-
require "mocha-on-bacon"
|
3
|
-
|
4
|
-
__LIB_PATH__ = File.join(File.dirname(__FILE__), "..")
|
5
|
-
$: << __LIB_PATH__
|
6
|
-
|
7
1
|
require "pry"
|
8
2
|
require "invoker"
|
9
3
|
|
4
|
+
# This file was generated by the `rspec --init` command. Conventionally, all
|
5
|
+
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
6
|
+
# Require this file using `require "spec_helper"` to ensure that it is only
|
7
|
+
# loaded once.
|
8
|
+
#
|
9
|
+
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
10
|
+
RSpec.configure do |config|
|
11
|
+
config.expect_with :rspec do |c|
|
12
|
+
c.syntax = :expect
|
13
|
+
end
|
14
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
15
|
+
config.run_all_when_everything_filtered = true
|
16
|
+
config.filter_run :focus
|
17
|
+
config.mock_framework = :mocha
|
18
|
+
|
19
|
+
config.before(:each) do
|
20
|
+
@original_verbosity = $VERBOSE
|
21
|
+
$VERBOSE = nil
|
22
|
+
@old_config = Invoker::Power::Config::CONFIG_LOCATION
|
23
|
+
Invoker::Power::Config.const_set(:CONFIG_LOCATION, "/tmp/.invoker")
|
24
|
+
|
25
|
+
File.exists?(Invoker::Power::Config::CONFIG_LOCATION) &&
|
26
|
+
File.delete(Invoker::Power::Config::CONFIG_LOCATION)
|
27
|
+
|
28
|
+
@old_resolver = Invoker::Power::Setup::RESOLVER_FILE
|
29
|
+
Invoker::Power::Setup.const_set(:RESOLVER_FILE, "/tmp/resolver/invoker-dev")
|
30
|
+
Invoker::Power::Setup.const_set(:RESOLVER_DIR, "/tmp/resolver")
|
31
|
+
|
32
|
+
unless Dir.exists?(Invoker::Power::Setup::RESOLVER_DIR)
|
33
|
+
FileUtils.mkdir(Invoker::Power::Setup::RESOLVER_DIR)
|
34
|
+
end
|
35
|
+
|
36
|
+
File.exists?(Invoker::Power::Setup::RESOLVER_FILE) &&
|
37
|
+
File.delete(Invoker::Power::Setup::RESOLVER_FILE)
|
38
|
+
end
|
39
|
+
|
40
|
+
config.after(:each) do
|
41
|
+
File.exists?(Invoker::Power::Config::CONFIG_LOCATION) &&
|
42
|
+
File.delete(Invoker::Power::Config::CONFIG_LOCATION)
|
43
|
+
|
44
|
+
Invoker::Power::Config.const_set(:CONFIG_LOCATION, @old_config)
|
45
|
+
|
46
|
+
File.exists?(Invoker::Power::Setup::RESOLVER_FILE) &&
|
47
|
+
File.delete(Invoker::Power::Setup::RESOLVER_FILE)
|
48
|
+
|
49
|
+
FileUtils.rm_rf(Invoker::Power::Setup::RESOLVER_DIR)
|
50
|
+
Invoker::Power::Setup.const_set(:RESOLVER_FILE, @old_resolver)
|
51
|
+
|
52
|
+
$VERBOSE = @original_verbosity
|
53
|
+
end
|
54
|
+
|
55
|
+
# Run specs in random order to surface order dependencies. If you find an
|
56
|
+
# order dependency and want to debug it, you can fix the order by providing
|
57
|
+
# the seed, which is printed after each run.
|
58
|
+
# --seed 1234
|
59
|
+
config.order = 'random'
|
60
|
+
end
|
61
|
+
|
10
62
|
ENV["INVOKER_TESTS"] = "true"
|
11
63
|
|
12
64
|
def invoker_config
|
@@ -26,5 +78,3 @@ def invoker_commander
|
|
26
78
|
Invoker::COMMANDER
|
27
79
|
end
|
28
80
|
end
|
29
|
-
|
30
|
-
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: invoker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hemant Kumar
|
@@ -137,59 +137,59 @@ dependencies:
|
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: 0.6.0
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
140
|
+
name: dotenv
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
|
-
- -
|
143
|
+
- - ~>
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
146
|
-
type: :
|
145
|
+
version: 0.9.0
|
146
|
+
type: :runtime
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- -
|
150
|
+
- - ~>
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
152
|
+
version: 0.9.0
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
154
|
+
name: rspec
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
|
-
- -
|
157
|
+
- - '>='
|
158
158
|
- !ruby/object:Gem::Version
|
159
159
|
version: '0'
|
160
160
|
type: :development
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
|
-
- -
|
164
|
+
- - '>='
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: '0'
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
|
-
name: mocha
|
168
|
+
name: mocha
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
|
-
- -
|
171
|
+
- - '>='
|
172
172
|
- !ruby/object:Gem::Version
|
173
173
|
version: '0'
|
174
174
|
type: :development
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
|
-
- -
|
178
|
+
- - '>='
|
179
179
|
- !ruby/object:Gem::Version
|
180
180
|
version: '0'
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: rake
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
184
184
|
requirements:
|
185
|
-
- -
|
185
|
+
- - '>='
|
186
186
|
- !ruby/object:Gem::Version
|
187
187
|
version: '0'
|
188
188
|
type: :development
|
189
189
|
prerelease: false
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
191
191
|
requirements:
|
192
|
-
- -
|
192
|
+
- - '>='
|
193
193
|
- !ruby/object:Gem::Version
|
194
194
|
version: '0'
|
195
195
|
description: Something small for process management
|
@@ -200,6 +200,7 @@ extensions: []
|
|
200
200
|
extra_rdoc_files: []
|
201
201
|
files:
|
202
202
|
- .gitignore
|
203
|
+
- .rspec
|
203
204
|
- .travis.yml
|
204
205
|
- Gemfile
|
205
206
|
- MIT-LICENSE
|
@@ -217,13 +218,17 @@ files:
|
|
217
218
|
- lib/invoker/logger.rb
|
218
219
|
- lib/invoker/parsers/config.rb
|
219
220
|
- lib/invoker/parsers/option_parser.rb
|
221
|
+
- lib/invoker/parsers/procfile.rb
|
220
222
|
- lib/invoker/power.rb
|
221
223
|
- lib/invoker/power/balancer.rb
|
222
224
|
- lib/invoker/power/config.rb
|
223
225
|
- lib/invoker/power/dns.rb
|
226
|
+
- lib/invoker/power/http_response.rb
|
224
227
|
- lib/invoker/power/port_finder.rb
|
225
228
|
- lib/invoker/power/powerup.rb
|
226
229
|
- lib/invoker/power/setup.rb
|
230
|
+
- lib/invoker/power/templates/404.html
|
231
|
+
- lib/invoker/power/templates/503.html
|
227
232
|
- lib/invoker/process_printer.rb
|
228
233
|
- lib/invoker/reactor.rb
|
229
234
|
- lib/invoker/runner.rb
|
@@ -236,10 +241,11 @@ files:
|
|
236
241
|
- spec/invoker/event/manager_spec.rb
|
237
242
|
- spec/invoker/invoker_spec.rb
|
238
243
|
- spec/invoker/power/config_spec.rb
|
244
|
+
- spec/invoker/power/http_response_spec.rb
|
239
245
|
- spec/invoker/power/port_finder_spec.rb
|
240
246
|
- spec/invoker/power/setup_spec.rb
|
241
247
|
- spec/spec_helper.rb
|
242
|
-
homepage: http://
|
248
|
+
homepage: http://invoker.codemancers.com
|
243
249
|
licenses:
|
244
250
|
- MIT
|
245
251
|
metadata: {}
|
@@ -249,17 +255,17 @@ require_paths:
|
|
249
255
|
- lib
|
250
256
|
required_ruby_version: !ruby/object:Gem::Requirement
|
251
257
|
requirements:
|
252
|
-
- -
|
258
|
+
- - '>='
|
253
259
|
- !ruby/object:Gem::Version
|
254
260
|
version: '0'
|
255
261
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
256
262
|
requirements:
|
257
|
-
- -
|
263
|
+
- - '>='
|
258
264
|
- !ruby/object:Gem::Version
|
259
265
|
version: '0'
|
260
266
|
requirements: []
|
261
267
|
rubyforge_project:
|
262
|
-
rubygems_version: 2.0.
|
268
|
+
rubygems_version: 2.0.3
|
263
269
|
signing_key:
|
264
270
|
specification_version: 4
|
265
271
|
summary: Something small for Process management
|
@@ -271,6 +277,7 @@ test_files:
|
|
271
277
|
- spec/invoker/event/manager_spec.rb
|
272
278
|
- spec/invoker/invoker_spec.rb
|
273
279
|
- spec/invoker/power/config_spec.rb
|
280
|
+
- spec/invoker/power/http_response_spec.rb
|
274
281
|
- spec/invoker/power/port_finder_spec.rb
|
275
282
|
- spec/invoker/power/setup_spec.rb
|
276
283
|
- spec/spec_helper.rb
|