radar-app 0.9.0 → 0.10.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 +5 -5
- data/Guardfile +10 -1
- data/lib/radar/app.rb +2 -0
- data/lib/radar/app/Healthz.rb +9 -0
- data/lib/radar/app/multiplexed_processor.rb +20 -0
- data/lib/radar/app/runner.rb +1 -0
- data/lib/radar/app/server.rb +6 -1
- data/lib/radar/app/tasks.rb +1 -0
- data/lib/radar/app/tasks/server.rb +3 -0
- data/lib/radar/app/tasks/status.rb +32 -0
- data/lib/radar/app/version.rb +1 -1
- data/radar-app.gemspec +2 -1
- data/spec/lib/radar/app/tasks/status_spec.rb +26 -0
- metadata +26 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 9968d291e85ae6a4ab8301ee64bc479a539862bb1c38a6fb863824e11a1c1575
|
4
|
+
data.tar.gz: 77a8cca4490407185c660f3f38be20102d7e228e083c29a23721fd80021deaba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e9f699c85c8b82f9a8728b3dc83a2fdb0fd8d2ba6ce4fee999f146886fc07981ac6743093ee43961e6ce2e9e4d47c0632c845efcf04c9c3abf03eb899ead2fc8
|
7
|
+
data.tar.gz: f6850b2b331a259fb95df90929db17bb6c79c84853a88ed1b9c88b4948d7a21104ef017df7b9c1b5d3b4fff3198e3a141fa7d114cc0fbd64d923155abb787a5f
|
data/Guardfile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
guard :rspec do
|
1
|
+
guard :rspec, cmd: "bundle exec rspec" do
|
2
2
|
watch(%r{^spec/.+_spec\.rb$})
|
3
3
|
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
4
4
|
watch('spec/spec_helper.rb') { "spec" }
|
@@ -8,3 +8,12 @@ guard 'rake', :task => 'install' do
|
|
8
8
|
watch(%r{^lib/(.+)\.rb$})
|
9
9
|
watch(/^bin/)
|
10
10
|
end
|
11
|
+
|
12
|
+
# Note: The cmd option is now required due to the increasing number of ways
|
13
|
+
# rspec may be run, below are examples of the most common uses.
|
14
|
+
# * bundler: 'bundle exec rspec'
|
15
|
+
# * bundler binstubs: 'bin/rspec'
|
16
|
+
# * spring: 'bin/rspec' (This will use spring if running and you have
|
17
|
+
# installed the spring binstubs per the docs)
|
18
|
+
# * zeus: 'zeus rspec' (requires the server to be started separately)
|
19
|
+
# * 'just' rspec: 'rspec'
|
data/lib/radar/app.rb
CHANGED
@@ -7,7 +7,9 @@ require 'radar/app/analyzer_controller'
|
|
7
7
|
require 'radar/app/server'
|
8
8
|
require 'radar/app/bootstrap'
|
9
9
|
require 'radar/app/analyzer'
|
10
|
+
require 'radar/app/healthz'
|
10
11
|
require 'radar/app/processor_factory'
|
12
|
+
require 'radar/app/multiplexed_processor'
|
11
13
|
|
12
14
|
require 'radar-api'
|
13
15
|
require 'connection_pool'
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class Radar::App::MultiplexedProcessor < Thrift::MultiplexedProcessor
|
2
|
+
def process(iprot, oprot)
|
3
|
+
begin
|
4
|
+
name, type, seqid = iprot.read_message_begin
|
5
|
+
super(Thrift::StoredMessageProtocol.new(iprot, [name, type, seqid]), oprot)
|
6
|
+
rescue Thrift::Exception => e
|
7
|
+
write_error(Thrift::ApplicationException.new(Thrift::ApplicationException::INTERNAL_ERROR, e.message), oprot, name, seqid)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
protected
|
12
|
+
|
13
|
+
def write_error(err, oprot, name, seqid)
|
14
|
+
oprot.write_message_begin(name, Thrift::MessageTypes::EXCEPTION, seqid)
|
15
|
+
err.write(oprot)
|
16
|
+
oprot.write_message_end
|
17
|
+
oprot.trans.flush
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
data/lib/radar/app/runner.rb
CHANGED
@@ -8,6 +8,7 @@ module Radar
|
|
8
8
|
register(Radar::App::Tasks::New, :new, 'new APP', 'Create a new app')
|
9
9
|
register(Radar::App::Tasks::Generate, :generate, 'generate TYPE NAME', 'Generate source files')
|
10
10
|
register(Radar::App::Tasks::Server, :server, 'server', 'Start the app server')
|
11
|
+
register(Radar::App::Tasks::Status, :status, 'status', 'Check the server status')
|
11
12
|
register(Radar::App::Tasks::Console, :console, 'console', 'Start the console for test')
|
12
13
|
end
|
13
14
|
end
|
data/lib/radar/app/server.rb
CHANGED
@@ -7,7 +7,7 @@ module Radar
|
|
7
7
|
include Radar::App::Logger
|
8
8
|
|
9
9
|
def start
|
10
|
-
multiplexer =
|
10
|
+
multiplexer = MultiplexedProcessor.new
|
11
11
|
analyzer_controller = Radar::App::AnalyzerController.new
|
12
12
|
multiplexer.register_processor(
|
13
13
|
'PortfolioAnalyzer',
|
@@ -28,6 +28,11 @@ module Radar
|
|
28
28
|
new(Radar::App.transaction_file_importer)
|
29
29
|
)
|
30
30
|
end
|
31
|
+
multiplexer.register_processor(
|
32
|
+
'Healthz',
|
33
|
+
ProcessorFactory.create_processor(Radar::API::Healthz::Processor).
|
34
|
+
new(Radar::App::Healthz.new)
|
35
|
+
)
|
31
36
|
transport = Thrift::ServerSocket.new(port)
|
32
37
|
server = Thrift::NonblockingServer.new(multiplexer, transport, Thrift::FramedTransportFactory.new)
|
33
38
|
logger.info { "Starting app on port #{port}..." }
|
data/lib/radar/app/tasks.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'sigdump'
|
2
|
+
|
1
3
|
module Radar
|
2
4
|
module App
|
3
5
|
module Tasks
|
@@ -6,6 +8,7 @@ module Radar
|
|
6
8
|
namespace :server
|
7
9
|
|
8
10
|
def start_server
|
11
|
+
Sigdump.setup('TTIN', '-')
|
9
12
|
Radar::App::Bootstrap.startup
|
10
13
|
Radar::App::Server.new(ENV['PORT'] || 5000).start
|
11
14
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'thrift'
|
2
|
+
require 'radar-api'
|
3
|
+
|
4
|
+
module Radar
|
5
|
+
module App
|
6
|
+
module Tasks
|
7
|
+
class Status < Thor::Group
|
8
|
+
include Thor::Actions
|
9
|
+
namespace :status
|
10
|
+
|
11
|
+
def status
|
12
|
+
transport = Thrift::FramedTransport.new(Thrift::Socket.new('127.0.0.1', ENV['PORT'] || 5000))
|
13
|
+
protocol = Thrift::MultiplexedProtocol.new(Thrift::BinaryProtocolAccelerated.new(transport), 'Healthz')
|
14
|
+
client = Radar::API::Healthz::Client.new(protocol)
|
15
|
+
begin
|
16
|
+
transport.open
|
17
|
+
client.status
|
18
|
+
rescue Thrift::TransportException => e
|
19
|
+
case e.type
|
20
|
+
when 1
|
21
|
+
puts "Server is down!"
|
22
|
+
else
|
23
|
+
puts "Server is not ready: #{e}"
|
24
|
+
end
|
25
|
+
exit 100 + e.type
|
26
|
+
end
|
27
|
+
puts "Server is up!"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/lib/radar/app/version.rb
CHANGED
data/radar-app.gemspec
CHANGED
@@ -24,9 +24,10 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.add_development_dependency "rspec"
|
25
25
|
|
26
26
|
spec.add_dependency "thor", "~> 0.19"
|
27
|
-
spec.add_dependency "radar-api", "
|
27
|
+
spec.add_dependency "radar-api", ">= 0.10.0"
|
28
28
|
spec.add_dependency "thin", "1.6.2"
|
29
29
|
spec.add_dependency "connection_pool", "~> 2.0"
|
30
30
|
spec.add_dependency "activesupport", "~> 4.1"
|
31
31
|
spec.add_dependency "RaymondChou-thrift_client", "~> 0.9"
|
32
|
+
spec.add_dependency "sigdump", "~> 0.2.4"
|
32
33
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'radar/app/runner'
|
2
|
+
require 'radar/app'
|
3
|
+
require 'socket'
|
4
|
+
|
5
|
+
describe Radar::App::Tasks::Status do
|
6
|
+
describe '#status' do
|
7
|
+
let(:port) do
|
8
|
+
server = TCPServer.new('127.0.0.1', 0)
|
9
|
+
port = server.addr[1]
|
10
|
+
server.close
|
11
|
+
port
|
12
|
+
end
|
13
|
+
before :each do
|
14
|
+
allow(ENV).to receive(:[]).and_return nil
|
15
|
+
allow(ENV).to receive(:[]).with('PORT').and_return port
|
16
|
+
end
|
17
|
+
it 'exits with error code when cannot connect to server' do
|
18
|
+
expect { Radar::App::Runner.start(%w{status}) }.to raise_error SystemExit
|
19
|
+
end
|
20
|
+
it 'does not exit with error when PONG is received' do
|
21
|
+
Thread.new { @server = Radar::App::Server.new(port).start }
|
22
|
+
sleep 0.3
|
23
|
+
expect { Radar::App::Runner.start(%w{status}) }.not_to raise_error
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: radar-app
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Leonardo Mendonca
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2019-08-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -85,16 +85,16 @@ dependencies:
|
|
85
85
|
name: radar-api
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
|
-
- - "
|
88
|
+
- - ">="
|
89
89
|
- !ruby/object:Gem::Version
|
90
|
-
version:
|
90
|
+
version: 0.10.0
|
91
91
|
type: :runtime
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
|
-
- - "
|
95
|
+
- - ">="
|
96
96
|
- !ruby/object:Gem::Version
|
97
|
-
version:
|
97
|
+
version: 0.10.0
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
99
|
name: thin
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
@@ -151,6 +151,20 @@ dependencies:
|
|
151
151
|
- - "~>"
|
152
152
|
- !ruby/object:Gem::Version
|
153
153
|
version: '0.9'
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
name: sigdump
|
156
|
+
requirement: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - "~>"
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: 0.2.4
|
161
|
+
type: :runtime
|
162
|
+
prerelease: false
|
163
|
+
version_requirements: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - "~>"
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: 0.2.4
|
154
168
|
description: generates and run a radar-app.
|
155
169
|
email:
|
156
170
|
- desenvolvimento@investtools.com.br
|
@@ -169,6 +183,7 @@ files:
|
|
169
183
|
- bin/radar-app
|
170
184
|
- lib/radar-app.rb
|
171
185
|
- lib/radar/app.rb
|
186
|
+
- lib/radar/app/Healthz.rb
|
172
187
|
- lib/radar/app/analyzer.rb
|
173
188
|
- lib/radar/app/analyzer_controller.rb
|
174
189
|
- lib/radar/app/bootstrap.rb
|
@@ -176,6 +191,7 @@ files:
|
|
176
191
|
- lib/radar/app/core_ext.rb
|
177
192
|
- lib/radar/app/core_ext/date.rb
|
178
193
|
- lib/radar/app/logger.rb
|
194
|
+
- lib/radar/app/multiplexed_processor.rb
|
179
195
|
- lib/radar/app/processor_factory.rb
|
180
196
|
- lib/radar/app/runner.rb
|
181
197
|
- lib/radar/app/server.rb
|
@@ -185,11 +201,13 @@ files:
|
|
185
201
|
- lib/radar/app/tasks/generate.rb
|
186
202
|
- lib/radar/app/tasks/new.rb
|
187
203
|
- lib/radar/app/tasks/server.rb
|
204
|
+
- lib/radar/app/tasks/status.rb
|
188
205
|
- lib/radar/app/version.rb
|
189
206
|
- radar-app.gemspec
|
190
207
|
- spec/lib/radar/app/analyzer_spec.rb
|
191
208
|
- spec/lib/radar/app/processor_factory_spec.rb
|
192
209
|
- spec/lib/radar/app/tasks/generate_spec.rb
|
210
|
+
- spec/lib/radar/app/tasks/status_spec.rb
|
193
211
|
- templates/DOKKU_SCALE
|
194
212
|
- templates/Gemfile
|
195
213
|
- templates/Procfile
|
@@ -215,8 +233,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
215
233
|
- !ruby/object:Gem::Version
|
216
234
|
version: '0'
|
217
235
|
requirements: []
|
218
|
-
|
219
|
-
rubygems_version: 2.5.1
|
236
|
+
rubygems_version: 3.0.4
|
220
237
|
signing_key:
|
221
238
|
specification_version: 4
|
222
239
|
summary: radar-app generator
|
@@ -224,3 +241,4 @@ test_files:
|
|
224
241
|
- spec/lib/radar/app/analyzer_spec.rb
|
225
242
|
- spec/lib/radar/app/processor_factory_spec.rb
|
226
243
|
- spec/lib/radar/app/tasks/generate_spec.rb
|
244
|
+
- spec/lib/radar/app/tasks/status_spec.rb
|