legionio 0.2.0 → 0.3.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 +4 -4
- data/.circleci/config.yml +21 -0
- data/.gitignore +1 -1
- data/.rubocop.yml +42 -9
- data/CHANGELOG.md +9 -0
- data/Gemfile +0 -12
- data/Rakefile +1 -1
- data/bin/legion +6 -17
- data/exe/legion +10 -18
- data/legion.gemspec +9 -10
- data/lib/legion.rb +2 -2
- data/lib/legion/exceptions/invalidjson.rb +0 -3
- data/lib/legion/exceptions/missingargument.rb +0 -2
- data/lib/legion/exceptions/wrongtypes/array.rb +0 -3
- data/lib/legion/exceptions/wrongtypes/hash.rb +0 -3
- data/lib/legion/exceptions/wrongtypes/integer.rb +0 -3
- data/lib/legion/exceptions/wrongtypes/string.rb +0 -3
- data/lib/legion/extensions.rb +25 -12
- data/lib/legion/extensions/actors/base.rb +2 -6
- data/lib/legion/extensions/actors/every.rb +0 -2
- data/lib/legion/extensions/actors/loop.rb +0 -2
- data/lib/legion/extensions/actors/once.rb +0 -2
- data/lib/legion/extensions/actors/poll.rb +1 -3
- data/lib/legion/extensions/actors/subscription.rb +20 -10
- data/lib/legion/extensions/builders/actors.rb +4 -5
- data/lib/legion/extensions/builders/base.rb +0 -2
- data/lib/legion/extensions/builders/helpers.rb +0 -2
- data/lib/legion/extensions/builders/runners.rb +2 -3
- data/lib/legion/extensions/core.rb +15 -5
- data/lib/legion/extensions/data.rb +10 -0
- data/lib/legion/extensions/helpers/base.rb +1 -7
- data/lib/legion/extensions/helpers/core.rb +24 -3
- data/lib/legion/extensions/helpers/lex.rb +0 -2
- data/lib/legion/extensions/helpers/logger.rb +3 -4
- data/lib/legion/extensions/helpers/task.rb +1 -3
- data/lib/legion/extensions/helpers/transport.rb +0 -2
- data/lib/legion/extensions/transport.rb +4 -5
- data/lib/legion/process.rb +1 -13
- data/lib/legion/runner.rb +1 -3
- data/lib/legion/runner/log.rb +0 -2
- data/lib/legion/runner/status.rb +0 -3
- data/lib/legion/service.rb +18 -20
- data/lib/legion/{supervison.rb → supervision.rb} +1 -0
- data/lib/legion/version.rb +1 -3
- data/settings/client.json +14 -0
- metadata +22 -49
data/lib/legion/runner.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
1
|
require 'legion/exceptions/handled_task'
|
4
2
|
require_relative 'runner/log'
|
5
3
|
require_relative 'runner/status'
|
@@ -25,7 +23,7 @@ module Legion
|
|
25
23
|
args[:master_id] = master_id unless master_id.nil?
|
26
24
|
args[:parent_id] = parent_id unless parent_id.nil?
|
27
25
|
|
28
|
-
result = runner_class.send(function, args)
|
26
|
+
result = runner_class.send(function, **args)
|
29
27
|
rescue Legion::Exception::HandledTask
|
30
28
|
status = 'task.exception'
|
31
29
|
result = { error: {} }
|
data/lib/legion/runner/log.rb
CHANGED
data/lib/legion/runner/status.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
1
|
module Legion
|
4
2
|
module Runner
|
5
3
|
module Status
|
@@ -58,7 +56,6 @@ module Legion
|
|
58
56
|
next unless opts.key? column
|
59
57
|
|
60
58
|
insert[column] = opts[column].is_a?(Hash) ? Legion::JSON.dump(opts[column]) : opts[column]
|
61
|
-
# insert[column] = opts[column] if opts.key? column
|
62
59
|
end
|
63
60
|
|
64
61
|
{ success: true, task_id: Legion::Data::Model::Task.insert(insert), **insert }
|
data/lib/legion/service.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
1
|
module Legion
|
4
2
|
class Service
|
5
3
|
def modules
|
@@ -7,30 +5,30 @@ module Legion
|
|
7
5
|
end
|
8
6
|
|
9
7
|
def initialize(transport: true, cache: true, data: true, supervision: true, extensions: true, crypt: true, log_level: 'info') # rubocop:disable Metrics/ParameterLists
|
10
|
-
setup_logging(log_level)
|
8
|
+
setup_logging(log_level: log_level)
|
11
9
|
Legion::Logging.debug('Starting Legion::Service')
|
12
10
|
setup_settings
|
13
|
-
Legion::Logging.info
|
11
|
+
Legion::Logging.info("node name: #{Legion::Settings[:client][:name]}")
|
12
|
+
|
13
|
+
if crypt
|
14
|
+
require 'legion/crypt'
|
15
|
+
Legion::Crypt.start
|
16
|
+
end
|
14
17
|
|
15
|
-
require 'legion/crypt' if crypt
|
16
|
-
Legion::Crypt.start if crypt
|
17
18
|
setup_transport if transport
|
18
|
-
|
19
|
+
|
20
|
+
require 'legion/cache' if cache
|
21
|
+
|
19
22
|
setup_data if data
|
23
|
+
|
20
24
|
setup_supervision if supervision
|
21
25
|
require 'legion/runner'
|
22
|
-
|
23
26
|
load_extensions if extensions
|
24
|
-
Legion::Crypt.setup_safe if crypt
|
25
27
|
|
28
|
+
Legion::Crypt.cs if crypt
|
26
29
|
Legion::Settings[:client][:ready] = true
|
27
30
|
end
|
28
31
|
|
29
|
-
def setup_cache
|
30
|
-
require 'legion/cache'
|
31
|
-
Legion::Cache.setup
|
32
|
-
end
|
33
|
-
|
34
32
|
def setup_data
|
35
33
|
require 'legion/data'
|
36
34
|
Legion::Settings.merge_settings(:data, Legion::Data::Settings.default)
|
@@ -44,28 +42,28 @@ module Legion
|
|
44
42
|
Legion::Logging.info('Legion::Settings Loaded')
|
45
43
|
end
|
46
44
|
|
47
|
-
def setup_logging(
|
45
|
+
def setup_logging(log_level: 'info', **_opts)
|
48
46
|
require 'legion/logging'
|
49
|
-
Legion::Logging.setup(level:
|
47
|
+
Legion::Logging.setup(log_level: log_level, level: log_level, trace: true)
|
50
48
|
end
|
51
49
|
|
52
50
|
def setup_transport
|
53
51
|
require 'legion/transport'
|
54
|
-
Legion::Settings.merge_settings(
|
52
|
+
Legion::Settings.merge_settings('transport', Legion::Transport::Settings.default)
|
55
53
|
Legion::Transport::Connection.setup
|
56
54
|
end
|
57
55
|
|
58
56
|
def setup_supervision
|
59
|
-
|
57
|
+
require 'legion/supervision'
|
60
58
|
@supervision = Legion::Supervision.setup
|
61
59
|
end
|
62
60
|
|
63
61
|
def shutdown
|
64
62
|
Legion::Logging.info('Legion::Service.shutdown was called')
|
65
63
|
@shutdown = true
|
64
|
+
Legion::Settings[:client][:shutting_down] = true
|
65
|
+
sleep(1)
|
66
66
|
Legion::Extensions.shutdown
|
67
|
-
|
68
|
-
sleep(0.2)
|
69
67
|
Legion::Data.shutdown
|
70
68
|
Legion::Cache.shutdown
|
71
69
|
Legion::Transport::Connection.shutdown
|
data/lib/legion/version.rb
CHANGED
data/settings/client.json
CHANGED
@@ -5,5 +5,19 @@
|
|
5
5
|
"warning": 10
|
6
6
|
}
|
7
7
|
}
|
8
|
+
},
|
9
|
+
"data": {
|
10
|
+
"connection": {
|
11
|
+
"max_connections": 25
|
12
|
+
}
|
13
|
+
},
|
14
|
+
"crypt": {
|
15
|
+
"vault": {
|
16
|
+
"read_cluster_secret": false,
|
17
|
+
"connected": false,
|
18
|
+
"renewer": false,
|
19
|
+
"token": "s.660l1zqqjezPhPLo71tY7dsz",
|
20
|
+
"protocol": "http"
|
21
|
+
}
|
8
22
|
}
|
9
23
|
}
|
metadata
CHANGED
@@ -1,31 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: legionio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Esity
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-08-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: legion-json
|
14
|
+
name: concurrent-ruby-ext
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
30
16
|
requirements:
|
31
17
|
- - ">="
|
@@ -39,7 +25,7 @@ dependencies:
|
|
39
25
|
- !ruby/object:Gem::Version
|
40
26
|
version: '0'
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
|
-
name: legion-
|
28
|
+
name: legion-data
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
44
30
|
requirements:
|
45
31
|
- - ">="
|
@@ -67,7 +53,7 @@ dependencies:
|
|
67
53
|
- !ruby/object:Gem::Version
|
68
54
|
version: '0'
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
56
|
+
name: oj
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
72
58
|
requirements:
|
73
59
|
- - ">="
|
@@ -81,7 +67,7 @@ dependencies:
|
|
81
67
|
- !ruby/object:Gem::Version
|
82
68
|
version: '0'
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
|
-
name: concurrent-ruby
|
70
|
+
name: concurrent-ruby
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
86
72
|
requirements:
|
87
73
|
- - ">="
|
@@ -123,7 +109,7 @@ dependencies:
|
|
123
109
|
- !ruby/object:Gem::Version
|
124
110
|
version: '0'
|
125
111
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
112
|
+
name: bunny
|
127
113
|
requirement: !ruby/object:Gem::Requirement
|
128
114
|
requirements:
|
129
115
|
- - ">="
|
@@ -179,7 +165,7 @@ dependencies:
|
|
179
165
|
- !ruby/object:Gem::Version
|
180
166
|
version: '0'
|
181
167
|
- !ruby/object:Gem::Dependency
|
182
|
-
name: legion-
|
168
|
+
name: legion-json
|
183
169
|
requirement: !ruby/object:Gem::Requirement
|
184
170
|
requirements:
|
185
171
|
- - ">="
|
@@ -193,7 +179,7 @@ dependencies:
|
|
193
179
|
- !ruby/object:Gem::Version
|
194
180
|
version: '0'
|
195
181
|
- !ruby/object:Gem::Dependency
|
196
|
-
name:
|
182
|
+
name: legion-logging
|
197
183
|
requirement: !ruby/object:Gem::Requirement
|
198
184
|
requirements:
|
199
185
|
- - ">="
|
@@ -207,27 +193,13 @@ dependencies:
|
|
207
193
|
- !ruby/object:Gem::Version
|
208
194
|
version: '0'
|
209
195
|
- !ruby/object:Gem::Dependency
|
210
|
-
name:
|
211
|
-
requirement: !ruby/object:Gem::Requirement
|
212
|
-
requirements:
|
213
|
-
- - ">="
|
214
|
-
- !ruby/object:Gem::Version
|
215
|
-
version: '0'
|
216
|
-
type: :development
|
217
|
-
prerelease: false
|
218
|
-
version_requirements: !ruby/object:Gem::Requirement
|
219
|
-
requirements:
|
220
|
-
- - ">="
|
221
|
-
- !ruby/object:Gem::Version
|
222
|
-
version: '0'
|
223
|
-
- !ruby/object:Gem::Dependency
|
224
|
-
name: cli-tree
|
196
|
+
name: legion-settings
|
225
197
|
requirement: !ruby/object:Gem::Requirement
|
226
198
|
requirements:
|
227
199
|
- - ">="
|
228
200
|
- !ruby/object:Gem::Version
|
229
201
|
version: '0'
|
230
|
-
type: :
|
202
|
+
type: :runtime
|
231
203
|
prerelease: false
|
232
204
|
version_requirements: !ruby/object:Gem::Requirement
|
233
205
|
requirements:
|
@@ -235,13 +207,13 @@ dependencies:
|
|
235
207
|
- !ruby/object:Gem::Version
|
236
208
|
version: '0'
|
237
209
|
- !ruby/object:Gem::Dependency
|
238
|
-
name:
|
210
|
+
name: lex-node
|
239
211
|
requirement: !ruby/object:Gem::Requirement
|
240
212
|
requirements:
|
241
213
|
- - ">="
|
242
214
|
- !ruby/object:Gem::Version
|
243
215
|
version: '0'
|
244
|
-
type: :
|
216
|
+
type: :runtime
|
245
217
|
prerelease: false
|
246
218
|
version_requirements: !ruby/object:Gem::Requirement
|
247
219
|
requirements:
|
@@ -249,7 +221,7 @@ dependencies:
|
|
249
221
|
- !ruby/object:Gem::Version
|
250
222
|
version: '0'
|
251
223
|
- !ruby/object:Gem::Dependency
|
252
|
-
name:
|
224
|
+
name: bundler
|
253
225
|
requirement: !ruby/object:Gem::Requirement
|
254
226
|
requirements:
|
255
227
|
- - ">="
|
@@ -263,7 +235,7 @@ dependencies:
|
|
263
235
|
- !ruby/object:Gem::Version
|
264
236
|
version: '0'
|
265
237
|
- !ruby/object:Gem::Dependency
|
266
|
-
name:
|
238
|
+
name: codecov
|
267
239
|
requirement: !ruby/object:Gem::Requirement
|
268
240
|
requirements:
|
269
241
|
- - ">="
|
@@ -392,6 +364,7 @@ files:
|
|
392
364
|
- lib/legion/extensions/builders/helpers.rb
|
393
365
|
- lib/legion/extensions/builders/runners.rb
|
394
366
|
- lib/legion/extensions/core.rb
|
367
|
+
- lib/legion/extensions/data.rb
|
395
368
|
- lib/legion/extensions/helpers/base.rb
|
396
369
|
- lib/legion/extensions/helpers/core.rb
|
397
370
|
- lib/legion/extensions/helpers/lex.rb
|
@@ -404,14 +377,14 @@ files:
|
|
404
377
|
- lib/legion/runner/log.rb
|
405
378
|
- lib/legion/runner/status.rb
|
406
379
|
- lib/legion/service.rb
|
407
|
-
- lib/legion/
|
380
|
+
- lib/legion/supervision.rb
|
408
381
|
- lib/legion/version.rb
|
409
382
|
- settings/client.json
|
410
383
|
homepage: https://bitbucket.org/legion-io/legion/
|
411
384
|
licenses:
|
412
385
|
- MIT
|
413
386
|
metadata: {}
|
414
|
-
post_install_message:
|
387
|
+
post_install_message:
|
415
388
|
rdoc_options: []
|
416
389
|
require_paths:
|
417
390
|
- lib
|
@@ -419,15 +392,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
419
392
|
requirements:
|
420
393
|
- - ">="
|
421
394
|
- !ruby/object:Gem::Version
|
422
|
-
version:
|
395
|
+
version: 2.5.0
|
423
396
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
424
397
|
requirements:
|
425
398
|
- - ">="
|
426
399
|
- !ruby/object:Gem::Version
|
427
400
|
version: '0'
|
428
401
|
requirements: []
|
429
|
-
rubygems_version: 3.
|
430
|
-
signing_key:
|
402
|
+
rubygems_version: 3.1.2
|
403
|
+
signing_key:
|
431
404
|
specification_version: 4
|
432
405
|
summary: Legion Core Software to string it all together
|
433
406
|
test_files: []
|