sample_core_api 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: 9871bcc82b21ca288bd84bb26e06242e75853db5ac3899f1ecb0af5ac909e377
4
- data.tar.gz: 138d04f4a7644070009b1ad34fb9b1123bfb9312402041f4e270c2a4c2935951
2
+ SHA1:
3
+ metadata.gz: 9ce57ddca1656c1c4b1cf29aff4790ac0874914f
4
+ data.tar.gz: a6094edffaa60dbaa866b2044173bbea3e5a0190
5
5
  SHA512:
6
- metadata.gz: 44bb035ec4860a4d43998d744a6f0eca23ae8d104c3421f17936b6188180398e49ae9471352abda75d20aedb12e103fa6bd5c30fc0a7bef59554fe407c513b47
7
- data.tar.gz: f65aaf76b3332c6b389dde316f648073818b2e918cd400ca60141efb4e44d02b844267167c03b55555bd6fa48e8d6f4919390a754b6fddee3941425b097afa83
6
+ metadata.gz: 55c16eca7f830487f48b5c0cbc2f73e8b49f5c4b54285144e0292b18b8c98d8ec0c179dd4edc93131f600eb2fd4dbce229ec7a054221539ab022d2e896f4d4cf
7
+ data.tar.gz: 3fce448044bc187baf19c9d909de0605f099fbe07bb727da775f7e8ca44de1cac83336c06f932db47ac7c4ebf6745ae352f89286cb886098fefa6c576d5ceb28
@@ -2,10 +2,23 @@ module ApplicationConfiguration
2
2
  def config
3
3
  {
4
4
  consul: {
5
-
5
+ consul_service_data: {
6
+ name: "Service-1",
7
+ id: "Service1",
8
+ port: 9292,
9
+ check: {
10
+ id: "bluesky-api",
11
+ name: "HTTP Health Check API on port 9292",
12
+ http: "http://localhost:9292/health-check-new",
13
+ tls_skip_verify: false,
14
+ method: "GET",
15
+ interval: "10s",
16
+ timeout: "1s"
17
+ }
18
+ }
6
19
  },
7
20
  rest: {
8
-
21
+ consul_check_http: "/health-check-new"
9
22
  },
10
23
  }
11
24
  end
@@ -1,4 +1,5 @@
1
1
  require 'cassandra'
2
+ require './lib/container'
2
3
  require_relative 'abstracted_cassandra_repository'
3
4
 
4
5
  class CassandraService
@@ -8,11 +9,11 @@ class CassandraService
8
9
 
9
10
  def initialize
10
11
  puts 'init cassandra'
11
- self.cassandra_cluster = Cassandra.cluster
12
+ self.cassandra_cluster = Cassandra.cluster
12
13
  end
13
14
 
14
- def start(keyspace_name)
15
- puts 'start cassandra, create cluster, session'
15
+ def start
16
+ puts 'start cassandra, create cluster'
16
17
  if !cassandra_cluster
17
18
  cassandra_cluster = Cassandra.cluster
18
19
  end
@@ -26,4 +27,6 @@ class CassandraService
26
27
  cassandra_cluster.close
27
28
  end
28
29
  end
29
- end
30
+ end
31
+
32
+ registerService CassandraService.new
@@ -1,4 +1,5 @@
1
1
  require 'diplomat'
2
+ require './lib/container'
2
3
  require_relative 'consul_configuration'
3
4
 
4
5
  class ConsulService
@@ -9,7 +10,6 @@ class ConsulService
9
10
  def initialize
10
11
  puts 'init consul'
11
12
  self.consul_service_data = ConsulService::configure
12
- Diplomat::Service.register(consul_service_data)
13
13
  end
14
14
 
15
15
  def start
@@ -17,10 +17,13 @@ class ConsulService
17
17
  if !consul_service_data
18
18
  consul_service_data = ConsulService::configure
19
19
  end
20
+ Diplomat::Service.register(consul_service_data)
20
21
  end
21
22
 
22
23
  def stop
23
24
  puts 'stop consul'
24
25
  Diplomat::Service.deregister(consul_service_data[:id])
25
26
  end
26
- end
27
+ end
28
+
29
+ registerService ConsulService.new
data/lib/container.rb ADDED
@@ -0,0 +1,11 @@
1
+ require "dry-container"
2
+ require "dry-auto_inject"
3
+
4
+ Container = Dry::Container.new
5
+ Inject = Dry::AutoInject(Container)
6
+
7
+ def registerService instance
8
+ class_name = instance.class.name
9
+ name = class_name.sub(class_name[0], class_name[0].downcase)
10
+ Container.register(name, instance)
11
+ end
@@ -4,6 +4,7 @@ module RestConfiguration
4
4
  CONFIG = {
5
5
  host: 'localhost:9292',
6
6
  path: '/api/v1',
7
+ consul_check_http: "/health-check"
7
8
  }.merge( RestConfiguration.config[:rest] )
8
9
 
9
10
  end
@@ -30,7 +30,7 @@ class RestService < RestApplication
30
30
  extend ::RestResponseModel
31
31
 
32
32
  # Health Check for Consul
33
- get '/health-check' do
33
+ get RestConfiguration::CONFIG[:consul_check_http] do
34
34
  'The service is healthy!'
35
35
  end
36
36
 
@@ -1,11 +1,32 @@
1
1
  require 'bundler/setup'
2
+ require 'sinatra/base'
2
3
  require_relative 'application_configuration'
3
- # require_relative 'application_service'
4
- Dir["#{File.dirname(__FILE__)}/**/*.rb"].each {|file| require file }
4
+ require_relative 'cassandra/cassandra_service'
5
+ require_relative 'consul/consul_service'
6
+ require_relative 'rest/rest_service'
7
+ require_relative 'container'
8
+ # Dir["#{File.dirname(__FILE__)}/**/*.rb"].each {|file| require file }
5
9
 
6
10
  class SampleCoreApi
7
- extend ::ApplicationService
8
11
  extend ::ApplicationConfiguration
9
- end
12
+ include Inject["consulService","cassandraService"]
13
+
14
+ def initialize(config)
15
+ @config = config
16
+ end
17
+
18
+ def run_rest_services
19
+ RestService.run!
20
+ end
10
21
 
11
- SampleCoreApi.load_services
22
+ def start
23
+ Container["consulService"].start
24
+ Container["cassandraService"].start
25
+ run_rest_services
26
+ end
27
+
28
+ def stop
29
+ consulService.stop
30
+ cassandraService.stop
31
+ end
32
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sample_core_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fusin Thang
@@ -10,6 +10,46 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2018-06-11 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: dry-container
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.6.0
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.6.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: 0.6.0
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 0.6.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: dry-auto_inject
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: 0.4.6
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 0.4.6
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: 0.4.6
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 0.4.6
13
53
  - !ruby/object:Gem::Dependency
14
54
  name: sinatra
15
55
  requirement: !ruby/object:Gem::Requirement
@@ -177,11 +217,11 @@ extensions: []
177
217
  extra_rdoc_files: []
178
218
  files:
179
219
  - lib/application_configuration.rb
180
- - lib/application_service.rb
181
220
  - lib/cassandra/abstracted_cassandra_repository.rb
182
221
  - lib/cassandra/cassandra_service.rb
183
222
  - lib/consul/consul_configuration.rb
184
223
  - lib/consul/consul_service.rb
224
+ - lib/container.rb
185
225
  - lib/rest/rest_common_error.rb
186
226
  - lib/rest/rest_configuration.rb
187
227
  - lib/rest/rest_error_handler.rb
@@ -208,7 +248,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
208
248
  version: '0'
209
249
  requirements: []
210
250
  rubyforge_project:
211
- rubygems_version: 2.7.7
251
+ rubygems_version: 2.6.13
212
252
  signing_key:
213
253
  specification_version: 4
214
254
  summary: Sample Core Api
@@ -1,15 +0,0 @@
1
- module ApplicationService
2
- IMPORT_SERVICES = ['cassandra_service', 'consul_service']
3
-
4
- def load_services
5
- $service_list = {}
6
- IMPORT_SERVICES.each do |service_name|
7
- if !service_name.include?('rest_service')
8
- puts "load_services #{service_name}"
9
- class_name = service_name.split('_').map{|e| e.capitalize}.join
10
- class_object = Object.const_get(class_name)
11
- $service_list["#{service_name}"] = class_object.new
12
- end
13
- end
14
- end
15
- end