invoker 1.4.1 → 1.5.1

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.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -1
  3. data/.rubocop.yml +0 -1
  4. data/.travis.yml +4 -2
  5. data/Dockerfile +7 -0
  6. data/Gemfile +3 -0
  7. data/Rakefile +8 -0
  8. data/examples/hello_sinatra.rb +26 -0
  9. data/examples/sample.ini +3 -0
  10. data/invoker.gemspec +2 -1
  11. data/lib/invoker.rb +20 -3
  12. data/lib/invoker/cli.rb +32 -6
  13. data/lib/invoker/dns_cache.rb +2 -2
  14. data/lib/invoker/ipc/add_http_command.rb +1 -1
  15. data/lib/invoker/ipc/dns_check_command.rb +2 -1
  16. data/lib/invoker/ipc/message.rb +2 -2
  17. data/lib/invoker/parsers/config.rb +4 -1
  18. data/lib/invoker/power/balancer.rb +16 -4
  19. data/lib/invoker/power/config.rb +3 -2
  20. data/lib/invoker/power/dns.rb +1 -1
  21. data/lib/invoker/power/pf_migrate.rb +1 -1
  22. data/lib/invoker/power/setup.rb +43 -4
  23. data/lib/invoker/power/setup/distro/arch.rb +1 -4
  24. data/lib/invoker/power/setup/distro/base.rb +23 -21
  25. data/lib/invoker/power/setup/distro/debian.rb +1 -1
  26. data/lib/invoker/power/setup/distro/opensuse.rb +11 -0
  27. data/lib/invoker/power/setup/distro/redhat.rb +1 -7
  28. data/lib/invoker/power/setup/files/invoker_forwarder.sh.erb +17 -0
  29. data/lib/invoker/power/setup/files/socat_invoker.service +12 -0
  30. data/lib/invoker/power/setup/linux_setup.rb +46 -29
  31. data/lib/invoker/power/setup/osx_setup.rb +16 -28
  32. data/lib/invoker/power/url_rewriter.rb +6 -3
  33. data/lib/invoker/process_manager.rb +13 -7
  34. data/lib/invoker/version.rb +1 -1
  35. data/readme.md +4 -4
  36. data/spec/invoker/commander_spec.rb +19 -8
  37. data/spec/invoker/config_spec.rb +22 -27
  38. data/spec/invoker/invoker_spec.rb +2 -1
  39. data/spec/invoker/ipc/client_handler_spec.rb +11 -1
  40. data/spec/invoker/power/config_spec.rb +2 -1
  41. data/spec/invoker/power/pf_migrate_spec.rb +7 -0
  42. data/spec/invoker/power/setup/linux_setup_spec.rb +57 -9
  43. data/spec/invoker/power/setup/osx_setup_spec.rb +22 -8
  44. data/spec/invoker/power/url_rewriter_spec.rb +33 -1
  45. data/spec/invoker/power/web_sockets_spec.rb +61 -0
  46. data/spec/invoker/process_manager_spec.rb +34 -2
  47. data/spec/spec_helper.rb +12 -16
  48. metadata +27 -35
  49. data/spec/support/mock_setup_file.rb +0 -64
@@ -1,5 +1,7 @@
1
1
  require "pry"
2
2
  require "simplecov"
3
+ require 'fakefs/spec_helpers'
4
+
3
5
  SimpleCov.start do
4
6
  add_filter "/spec/"
5
7
  end
@@ -7,24 +9,14 @@ end
7
9
 
8
10
  require "invoker"
9
11
  require "invoker/power/power"
10
- $: << File.join(File.dirname(__FILE__), "support")
11
- require "mock_setup_file"
12
12
  MM = Invoker::IPC::Message
13
13
 
14
14
  RSpec.configure do |config|
15
15
  config.run_all_when_everything_filtered = true
16
16
  config.filter_run :focus
17
17
  config.mock_framework = :mocha
18
- config.include MockSetupFile
19
-
20
- config.around do |example|
21
- original_verbosity = $VERBOSE
22
- $VERBOSE = nil
23
- setup_mocked_config_files
24
- example.run
25
- remove_mocked_config_files
26
- $VERBOSE = original_verbosity
27
- end
18
+ config.include FakeFS::SpecHelpers, fakefs: true
19
+
28
20
  # Run specs in random order to surface order dependencies. If you find an
29
21
  # order dependency and want to debug it, you can fix the order by providing
30
22
  # the seed, which is printed after each run.
@@ -34,10 +26,6 @@ end
34
26
 
35
27
  ENV["INVOKER_TESTS"] = "true"
36
28
 
37
- def invoker_config
38
- Invoker.config ||= mock
39
- end
40
-
41
29
  def invoker_commander
42
30
  Invoker.commander ||= mock
43
31
  end
@@ -45,3 +33,11 @@ end
45
33
  def invoker_dns_cache
46
34
  Invoker.dns_cache ||= mock
47
35
  end
36
+
37
+ def inv_conf_dir
38
+ File.join(ENV['HOME'], '.invoker')
39
+ end
40
+
41
+ def inv_conf_file
42
+ File.join(inv_conf_dir, 'config')
43
+ end
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.4.1
4
+ version: 1.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hemant Kumar
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-11-30 00:00:00.000000000 Z
12
+ date: 2016-08-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
@@ -157,14 +157,14 @@ dependencies:
157
157
  requirements:
158
158
  - - "~>"
159
159
  - !ruby/object:Gem::Version
160
- version: 1.0.2
160
+ version: '2.0'
161
161
  type: :runtime
162
162
  prerelease: false
163
163
  version_requirements: !ruby/object:Gem::Requirement
164
164
  requirements:
165
165
  - - "~>"
166
166
  - !ruby/object:Gem::Version
167
- version: 1.0.2
167
+ version: '2.0'
168
168
  - !ruby/object:Gem::Dependency
169
169
  name: rspec
170
170
  requirement: !ruby/object:Gem::Requirement
@@ -207,6 +207,20 @@ dependencies:
207
207
  - - ">="
208
208
  - !ruby/object:Gem::Version
209
209
  version: '0'
210
+ - !ruby/object:Gem::Dependency
211
+ name: fakefs
212
+ requirement: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - ">="
215
+ - !ruby/object:Gem::Version
216
+ version: '0'
217
+ type: :development
218
+ prerelease: false
219
+ version_requirements: !ruby/object:Gem::Requirement
220
+ requirements:
221
+ - - ">="
222
+ - !ruby/object:Gem::Version
223
+ version: '0'
210
224
  description: Something small for process management
211
225
  email: hemant@codemancers.com
212
226
  executables:
@@ -219,6 +233,7 @@ files:
219
233
  - ".rspec"
220
234
  - ".rubocop.yml"
221
235
  - ".travis.yml"
236
+ - Dockerfile
222
237
  - Gemfile
223
238
  - MIT-LICENSE
224
239
  - Rakefile
@@ -226,6 +241,8 @@ files:
226
241
  - bin/invoker
227
242
  - contrib/completion/invoker-completion.bash
228
243
  - contrib/completion/invoker-completion.zsh
244
+ - examples/hello_sinatra.rb
245
+ - examples/sample.ini
229
246
  - invoker.gemspec
230
247
  - lib/invoker.rb
231
248
  - lib/invoker/cli.rb
@@ -272,8 +289,11 @@ files:
272
289
  - lib/invoker/power/setup/distro/base.rb
273
290
  - lib/invoker/power/setup/distro/debian.rb
274
291
  - lib/invoker/power/setup/distro/mint.rb
292
+ - lib/invoker/power/setup/distro/opensuse.rb
275
293
  - lib/invoker/power/setup/distro/redhat.rb
276
294
  - lib/invoker/power/setup/distro/ubuntu.rb
295
+ - lib/invoker/power/setup/files/invoker_forwarder.sh.erb
296
+ - lib/invoker/power/setup/files/socat_invoker.service
277
297
  - lib/invoker/power/setup/linux_setup.rb
278
298
  - lib/invoker/power/setup/osx_setup.rb
279
299
  - lib/invoker/power/templates/400.html
@@ -310,10 +330,10 @@ files:
310
330
  - spec/invoker/power/setup/osx_setup_spec.rb
311
331
  - spec/invoker/power/setup_spec.rb
312
332
  - spec/invoker/power/url_rewriter_spec.rb
333
+ - spec/invoker/power/web_sockets_spec.rb
313
334
  - spec/invoker/process_manager_spec.rb
314
335
  - spec/invoker/reactor_spec.rb
315
336
  - spec/spec_helper.rb
316
- - spec/support/mock_setup_file.rb
317
337
  homepage: http://invoker.codemancers.com
318
338
  licenses:
319
339
  - MIT
@@ -334,36 +354,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
334
354
  version: '0'
335
355
  requirements: []
336
356
  rubyforge_project:
337
- rubygems_version: 2.4.5.1
357
+ rubygems_version: 2.5.1
338
358
  signing_key:
339
359
  specification_version: 4
340
360
  summary: Something small for Process management
341
- test_files:
342
- - spec/invoker/cli/pinger_spec.rb
343
- - spec/invoker/cli/tail_watcher_spec.rb
344
- - spec/invoker/cli_spec.rb
345
- - spec/invoker/command_worker_spec.rb
346
- - spec/invoker/commander_spec.rb
347
- - spec/invoker/config_spec.rb
348
- - spec/invoker/daemon_spec.rb
349
- - spec/invoker/event/manager_spec.rb
350
- - spec/invoker/invoker_spec.rb
351
- - spec/invoker/ipc/client_handler_spec.rb
352
- - spec/invoker/ipc/dns_check_command_spec.rb
353
- - spec/invoker/ipc/message/list_response_spec.rb
354
- - spec/invoker/ipc/message_spec.rb
355
- - spec/invoker/ipc/unix_client_spec.rb
356
- - spec/invoker/power/balancer_spec.rb
357
- - spec/invoker/power/config_spec.rb
358
- - spec/invoker/power/http_parser_spec.rb
359
- - spec/invoker/power/http_response_spec.rb
360
- - spec/invoker/power/pf_migrate_spec.rb
361
- - spec/invoker/power/port_finder_spec.rb
362
- - spec/invoker/power/setup/linux_setup_spec.rb
363
- - spec/invoker/power/setup/osx_setup_spec.rb
364
- - spec/invoker/power/setup_spec.rb
365
- - spec/invoker/power/url_rewriter_spec.rb
366
- - spec/invoker/process_manager_spec.rb
367
- - spec/invoker/reactor_spec.rb
368
- - spec/spec_helper.rb
369
- - spec/support/mock_setup_file.rb
361
+ test_files: []
@@ -1,64 +0,0 @@
1
- module MockSetupFile
2
- def setup_mocked_config_files
3
- setup_invoker_config
4
- setup_osx_resolver_path
5
- setup_linux_resolver_path
6
- end
7
-
8
- def remove_mocked_config_files
9
- restore_invoker_config
10
- restore_osx_resolver_setup
11
- restore_linux_resolver_path
12
- end
13
-
14
- def safe_remove_file(file_location)
15
- File.exist?(file_location) &&
16
- File.delete(file_location)
17
- end
18
-
19
- def safe_make_directory(directory)
20
- FileUtils.mkdir(directory) unless Dir.exist?(directory)
21
- end
22
-
23
- private
24
-
25
- def setup_invoker_config
26
- Invoker::Power::Config.stubs(:config_file).returns("/tmp/.invoker/config")
27
- Invoker::Power::Config.stubs(:config_dir).returns("/tmp/.invoker")
28
- safe_make_directory("/tmp/.invoker")
29
- safe_remove_file(Invoker::Power::Config.config_file)
30
- end
31
-
32
- def restore_invoker_config
33
- safe_remove_file("/tmp/.invoker/config")
34
- end
35
-
36
- def restore_osx_resolver_setup
37
- safe_remove_file(Invoker::Power::OsxSetup::RESOLVER_FILE)
38
- FileUtils.rm_rf(Invoker::Power::OsxSetup::RESOLVER_DIR)
39
- Invoker::Power::OsxSetup.const_set(:RESOLVER_FILE, @old_osx_resolver)
40
- end
41
-
42
- def setup_osx_resolver_path
43
- @old_osx_resolver = Invoker::Power::OsxSetup::RESOLVER_FILE
44
- Invoker::Power::OsxSetup.const_set(:RESOLVER_FILE, "/tmp/resolver/invoker-dev")
45
- Invoker::Power::OsxSetup.const_set(:RESOLVER_DIR, "/tmp/resolver")
46
-
47
- safe_make_directory(Invoker::Power::OsxSetup::RESOLVER_DIR)
48
- safe_remove_file(Invoker::Power::OsxSetup::RESOLVER_FILE)
49
- end
50
-
51
- def setup_linux_resolver_path
52
- @old_linux_resolver = Invoker::Power::Distro::Base::RESOLVER_FILE
53
- @old_rinetd_config = Invoker::Power::Distro::Base::RINETD_FILE
54
- Invoker::Power::Distro::Base.const_set(:RESOLVER_FILE, "/tmp/dev-tld")
55
- Invoker::Power::Distro::Base.const_set(:RINETD_FILE, "/tmp/rinetd.conf")
56
- end
57
-
58
- def restore_linux_resolver_path
59
- safe_remove_file(Invoker::Power::Distro::Base::RESOLVER_FILE)
60
- safe_remove_file(Invoker::Power::Distro::Base::RINETD_FILE)
61
- Invoker::Power::Distro::Base.const_set(:RESOLVER_FILE, @old_linux_resolver)
62
- Invoker::Power::Distro::Base.const_set(:RINETD_FILE, @old_rinetd_config)
63
- end
64
- end