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 +5 -5
- data/lib/application_configuration.rb +15 -2
- data/lib/cassandra/cassandra_service.rb +7 -4
- data/lib/consul/consul_service.rb +5 -2
- data/lib/container.rb +11 -0
- data/lib/rest/rest_configuration.rb +1 -0
- data/lib/rest/rest_service.rb +1 -1
- data/lib/sample_core_api.rb +26 -5
- metadata +43 -3
- data/lib/application_service.rb +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 9ce57ddca1656c1c4b1cf29aff4790ac0874914f
|
4
|
+
data.tar.gz: a6094edffaa60dbaa866b2044173bbea3e5a0190
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
12
|
+
self.cassandra_cluster = Cassandra.cluster
|
12
13
|
end
|
13
14
|
|
14
|
-
def start
|
15
|
-
puts 'start cassandra, create cluster
|
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
|
data/lib/rest/rest_service.rb
CHANGED
data/lib/sample_core_api.rb
CHANGED
@@ -1,11 +1,32 @@
|
|
1
1
|
require 'bundler/setup'
|
2
|
+
require 'sinatra/base'
|
2
3
|
require_relative 'application_configuration'
|
3
|
-
|
4
|
-
|
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
|
-
|
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
|
-
|
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.
|
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.
|
251
|
+
rubygems_version: 2.6.13
|
212
252
|
signing_key:
|
213
253
|
specification_version: 4
|
214
254
|
summary: Sample Core Api
|
data/lib/application_service.rb
DELETED
@@ -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
|