invoker 1.5.7 → 2.0.0

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
  SHA256:
3
- metadata.gz: 55217109e2c3f44ebbbfd25c36f3b4d8d3dedff2c8380cc262cb12653cc1a1b1
4
- data.tar.gz: 7f9e9a0d4a100d44549400473a81686d09773ee0d9d5ec8f193ccbee999bebe9
3
+ metadata.gz: 0a7d6cd0f3813f71b87e23b50c9567824af843b071669ca621403c8f67a4a467
4
+ data.tar.gz: 345781951e90374a1678c10c0ac646db757147edea30350c095fe0ccb9da8aa2
5
5
  SHA512:
6
- metadata.gz: 4221997cbbcf54911d116f2dde24cc30ba91e36013f72b3ed1e392fcb96c0be43186f2837be0735da43932e09ddd1725452784ee2a3e7fd0b12928daebd7f337
7
- data.tar.gz: f4c3a7697a1ce22121cce85e58770ad0a3fd8f816d731b82115c5b0dcba5cda404822d3a56b1710766171bf776c2cccb44223e8759974f9e231956e2125e2ef6
6
+ metadata.gz: dd2cde6b1eee858f0ede71af4f58ef1c46bb29326b99e0fa2fa4196b9276c519a07e81633bebc4163962063cce3849599ed34159d4df791c763d401a62ff0a5c
7
+ data.tar.gz: ded01a508b2f643f0e6f74fcf39e28ab75546db85e85007149335b8d0c277297598d93bed35903d4f3c17c35981bd552dec053b59702efd96ecb1ed6f14cd359
data/lib/invoker/cli.rb CHANGED
@@ -98,12 +98,27 @@ module Invoker
98
98
  type: :boolean,
99
99
  banner: "Print process list in raw text format",
100
100
  aliases: [:r]
101
+ option :wait,
102
+ type: :boolean,
103
+ banner: "wait for update",
104
+ aliases: [:w]
101
105
  def list
102
- unix_socket.send_command('list') do |response_object|
103
- if options[:raw]
104
- Invoker::ProcessPrinter.new(response_object).tap { |printer| printer.print_raw_text }
105
- else
106
- Invoker::ProcessPrinter.new(response_object).tap { |printer| printer.print_table }
106
+ if options[:wait]
107
+ Signal.trap("INT") { exit(0) }
108
+ loop do
109
+ puts "\e[H\e[2J"
110
+ unix_socket.send_command('list') do |response_object|
111
+ Invoker::ProcessPrinter.new(response_object).tap { |printer| printer.print_table }
112
+ end
113
+ sleep(5)
114
+ end
115
+ else
116
+ unix_socket.send_command('list') do |response_object|
117
+ if options[:raw]
118
+ Invoker::ProcessPrinter.new(response_object).tap { |printer| printer.print_raw_text }
119
+ else
120
+ Invoker::ProcessPrinter.new(response_object).tap { |printer| printer.print_table }
121
+ end
107
122
  end
108
123
  end
109
124
  end
@@ -13,7 +13,7 @@ module Invoker
13
13
  Invoker::Logger.puts "Invoker daemon is already running"
14
14
  exit(0)
15
15
  elsif dead?
16
- File.delete(pid_file) if File.exists?(pid_file)
16
+ File.delete(pid_file) if File.exist?(pid_file)
17
17
  end
18
18
  Invoker::Logger.puts "Running Invoker daemon"
19
19
  daemonize
@@ -65,12 +65,14 @@ module Invoker
65
65
  return
66
66
  end
67
67
  @session = UUID.generate()
68
- if !headers['Host'] || headers['Host'].empty?
68
+ headers = headers.transform_keys(&:downcase)
69
+
70
+ if !headers['host'] || headers['host'].empty?
69
71
  return_error_page(400)
70
72
  return
71
73
  end
72
74
 
73
- dns_check_response = UrlRewriter.new.select_backend_config(headers['Host'])
75
+ dns_check_response = UrlRewriter.new.select_backend_config(headers['host'])
74
76
  if dns_check_response && dns_check_response.port
75
77
  connection.server(session, host: dns_check_response.ip, port: dns_check_response.port)
76
78
  else
@@ -52,7 +52,7 @@ module Invoker
52
52
  end
53
53
 
54
54
  def use_file_as_body(file_name)
55
- if file_name && File.exists?(file_name)
55
+ if file_name && File.exist?(file_name)
56
56
  file_content = File.read(file_name)
57
57
  self.body = file_content
58
58
  else
@@ -56,7 +56,7 @@ module Invoker
56
56
  end
57
57
 
58
58
  def check_if_setup_can_run?
59
- !File.exists?(Invoker::Power::Config.config_file)
59
+ !File.exist?(Invoker::Power::Config.config_file)
60
60
  end
61
61
 
62
62
  def create_config_file
@@ -86,7 +86,7 @@ module Invoker
86
86
  end
87
87
 
88
88
  def safe_remove_file(file)
89
- File.delete(file) if File.exists?(file)
89
+ File.delete(file) if File.exist?(file)
90
90
  end
91
91
  end
92
92
  end
@@ -43,5 +43,5 @@ module Invoker
43
43
  Version.new(next_splits.join('.'))
44
44
  end
45
45
  end
46
- VERSION = "1.5.7"
46
+ VERSION = "2.0.0"
47
47
  end
data/lib/invoker.rb CHANGED
@@ -94,7 +94,7 @@ module Invoker
94
94
 
95
95
  def run_without_bundler
96
96
  if defined?(Bundler)
97
- Bundler.with_clean_env do
97
+ Bundler.with_unbundled_env do
98
98
  yield
99
99
  end
100
100
  else
@@ -6,6 +6,37 @@ describe Invoker::Power::Balancer do
6
6
  @balancer = Invoker::Power::Balancer.new(@http_connection, "http")
7
7
  end
8
8
 
9
+ context "when Host field is not capitalized" do
10
+ before(:all) do
11
+ @original_invoker_config = Invoker.config
12
+ end
13
+
14
+ def mock_invoker_tld_as(domain)
15
+ Invoker.config = mock
16
+ Invoker.config.stubs(:tld).returns(domain)
17
+ end
18
+
19
+ after(:all) do
20
+ Invoker.config = @original_invoker_config
21
+ end
22
+
23
+ it "should not return 400 when host is lowercase" do
24
+ headers = { 'host' => 'somehost.com' }
25
+ mock_invoker_tld_as('test')
26
+ @http_connection.expects(:send_data).with() { |value| value =~ /404 Not Found/i }
27
+ @http_connection.expects(:close_connection_after_writing)
28
+ @balancer.headers_received(headers)
29
+ end
30
+
31
+ it "should not return 400 when host is written as HoSt" do
32
+ headers = { 'HoSt' => 'somehost.com' }
33
+ mock_invoker_tld_as('test')
34
+ @http_connection.expects(:send_data).with() { |value| value =~ /404 Not Found/i }
35
+ @http_connection.expects(:close_connection_after_writing)
36
+ @balancer.headers_received(headers)
37
+ end
38
+ end
39
+
9
40
  context "when Host field is missing in the request" do
10
41
  it "should return 400 as response when Host is missing" do
11
42
  headers = {}
@@ -147,7 +147,7 @@ describe Invoker::Power::Distro::Base, docker: true do
147
147
  describe '.distro_installer' do
148
148
  it 'correctly recognizes the current distro' do
149
149
  case ENV['DISTRO']
150
- when 'archlinux/base', 'manjarolinux/base'
150
+ when 'archlinux', 'manjarolinux/base'
151
151
  expect(described_class.distro_installer('')).to be_a Invoker::Power::Distro::Arch
152
152
  when 'debian'
153
153
  expect(described_class.distro_installer('')).to be_a Invoker::Power::Distro::Debian
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: invoker
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.7
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hemant Kumar
8
8
  - Amitava Basak
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-04-24 00:00:00.000000000 Z
12
+ date: 2024-05-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
@@ -135,14 +135,14 @@ dependencies:
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: '0.6'
138
+ version: '1.0'
139
139
  type: :runtime
140
140
  prerelease: false
141
141
  version_requirements: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: '0.6'
145
+ version: '1.0'
146
146
  - !ruby/object:Gem::Dependency
147
147
  name: dotenv
148
148
  requirement: !ruby/object:Gem::Requirement
@@ -319,15 +319,15 @@ files:
319
319
  - spec/invoker/process_manager_spec.rb
320
320
  - spec/invoker/reactor_spec.rb
321
321
  - spec/spec_helper.rb
322
- homepage: https://invoker.codemancers.com
322
+ homepage: https://invoker.c9s.dev
323
323
  licenses:
324
324
  - MIT
325
325
  metadata:
326
326
  bug_tracker_uri: https://github.com/code-mancers/invoker/issues
327
327
  changelog_uri: https://github.com/code-mancers/invoker/blob/master/CHANGELOG.md
328
- documentation_uri: https://invoker.codemancers.com/
329
- source_code_uri: https://github.com/code-mancers/invoker/tree/v1.5.7
330
- post_install_message:
328
+ documentation_uri: https://invoker.c9s.dev/
329
+ source_code_uri: https://github.com/code-mancers/invoker/tree/v2.0.0
330
+ post_install_message:
331
331
  rdoc_options: []
332
332
  require_paths:
333
333
  - lib
@@ -335,42 +335,42 @@ required_ruby_version: !ruby/object:Gem::Requirement
335
335
  requirements:
336
336
  - - ">="
337
337
  - !ruby/object:Gem::Version
338
- version: '0'
338
+ version: 3.0.0
339
339
  required_rubygems_version: !ruby/object:Gem::Requirement
340
340
  requirements:
341
341
  - - ">="
342
342
  - !ruby/object:Gem::Version
343
343
  version: '0'
344
344
  requirements: []
345
- rubygems_version: 3.1.2
346
- signing_key:
345
+ rubygems_version: 3.4.10
346
+ signing_key:
347
347
  specification_version: 4
348
348
  summary: Something small for Process management
349
349
  test_files:
350
- - spec/spec_helper.rb
351
- - spec/invoker/power/port_finder_spec.rb
352
- - spec/invoker/power/config_spec.rb
353
- - spec/invoker/power/setup_spec.rb
354
- - spec/invoker/power/setup/osx_setup_spec.rb
355
- - spec/invoker/power/setup/linux_setup_spec.rb
356
- - spec/invoker/power/http_parser_spec.rb
357
- - spec/invoker/power/url_rewriter_spec.rb
358
- - spec/invoker/power/balancer_spec.rb
359
- - spec/invoker/power/web_sockets_spec.rb
360
- - spec/invoker/power/http_response_spec.rb
361
- - spec/invoker/config_spec.rb
362
- - spec/invoker/invoker_spec.rb
363
- - spec/invoker/cli_spec.rb
364
- - spec/invoker/command_worker_spec.rb
365
- - spec/invoker/reactor_spec.rb
366
350
  - spec/invoker/cli/pinger_spec.rb
367
351
  - spec/invoker/cli/tail_watcher_spec.rb
352
+ - spec/invoker/cli_spec.rb
353
+ - spec/invoker/command_worker_spec.rb
354
+ - spec/invoker/commander_spec.rb
355
+ - spec/invoker/config_spec.rb
368
356
  - spec/invoker/daemon_spec.rb
369
- - spec/invoker/ipc/unix_client_spec.rb
357
+ - spec/invoker/event/manager_spec.rb
358
+ - spec/invoker/invoker_spec.rb
359
+ - spec/invoker/ipc/client_handler_spec.rb
360
+ - spec/invoker/ipc/dns_check_command_spec.rb
370
361
  - spec/invoker/ipc/message/list_response_spec.rb
371
362
  - spec/invoker/ipc/message_spec.rb
372
- - spec/invoker/ipc/dns_check_command_spec.rb
373
- - spec/invoker/ipc/client_handler_spec.rb
374
- - spec/invoker/event/manager_spec.rb
363
+ - spec/invoker/ipc/unix_client_spec.rb
364
+ - spec/invoker/power/balancer_spec.rb
365
+ - spec/invoker/power/config_spec.rb
366
+ - spec/invoker/power/http_parser_spec.rb
367
+ - spec/invoker/power/http_response_spec.rb
368
+ - spec/invoker/power/port_finder_spec.rb
369
+ - spec/invoker/power/setup/linux_setup_spec.rb
370
+ - spec/invoker/power/setup/osx_setup_spec.rb
371
+ - spec/invoker/power/setup_spec.rb
372
+ - spec/invoker/power/url_rewriter_spec.rb
373
+ - spec/invoker/power/web_sockets_spec.rb
375
374
  - spec/invoker/process_manager_spec.rb
376
- - spec/invoker/commander_spec.rb
375
+ - spec/invoker/reactor_spec.rb
376
+ - spec/spec_helper.rb