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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +21 -0
  3. data/.gitignore +1 -1
  4. data/.rubocop.yml +42 -9
  5. data/CHANGELOG.md +9 -0
  6. data/Gemfile +0 -12
  7. data/Rakefile +1 -1
  8. data/bin/legion +6 -17
  9. data/exe/legion +10 -18
  10. data/legion.gemspec +9 -10
  11. data/lib/legion.rb +2 -2
  12. data/lib/legion/exceptions/invalidjson.rb +0 -3
  13. data/lib/legion/exceptions/missingargument.rb +0 -2
  14. data/lib/legion/exceptions/wrongtypes/array.rb +0 -3
  15. data/lib/legion/exceptions/wrongtypes/hash.rb +0 -3
  16. data/lib/legion/exceptions/wrongtypes/integer.rb +0 -3
  17. data/lib/legion/exceptions/wrongtypes/string.rb +0 -3
  18. data/lib/legion/extensions.rb +25 -12
  19. data/lib/legion/extensions/actors/base.rb +2 -6
  20. data/lib/legion/extensions/actors/every.rb +0 -2
  21. data/lib/legion/extensions/actors/loop.rb +0 -2
  22. data/lib/legion/extensions/actors/once.rb +0 -2
  23. data/lib/legion/extensions/actors/poll.rb +1 -3
  24. data/lib/legion/extensions/actors/subscription.rb +20 -10
  25. data/lib/legion/extensions/builders/actors.rb +4 -5
  26. data/lib/legion/extensions/builders/base.rb +0 -2
  27. data/lib/legion/extensions/builders/helpers.rb +0 -2
  28. data/lib/legion/extensions/builders/runners.rb +2 -3
  29. data/lib/legion/extensions/core.rb +15 -5
  30. data/lib/legion/extensions/data.rb +10 -0
  31. data/lib/legion/extensions/helpers/base.rb +1 -7
  32. data/lib/legion/extensions/helpers/core.rb +24 -3
  33. data/lib/legion/extensions/helpers/lex.rb +0 -2
  34. data/lib/legion/extensions/helpers/logger.rb +3 -4
  35. data/lib/legion/extensions/helpers/task.rb +1 -3
  36. data/lib/legion/extensions/helpers/transport.rb +0 -2
  37. data/lib/legion/extensions/transport.rb +4 -5
  38. data/lib/legion/process.rb +1 -13
  39. data/lib/legion/runner.rb +1 -3
  40. data/lib/legion/runner/log.rb +0 -2
  41. data/lib/legion/runner/status.rb +0 -3
  42. data/lib/legion/service.rb +18 -20
  43. data/lib/legion/{supervison.rb → supervision.rb} +1 -0
  44. data/lib/legion/version.rb +1 -3
  45. data/settings/client.json +14 -0
  46. metadata +22 -49
@@ -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: {} }
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Legion
4
2
  module Runner
5
3
  module Log
@@ -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 }
@@ -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 "node name: #{Legion::Settings[:client][:name]}"
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
- setup_cache if cache
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(_log_level = 'info')
45
+ def setup_logging(log_level: 'info', **_opts)
48
46
  require 'legion/logging'
49
- Legion::Logging.setup(level: 'info', trace: true)
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(:transport, Legion::Transport::Settings.default)
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
- require_relative('supervison')
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
@@ -2,6 +2,7 @@ module Legion
2
2
  module Supervision
3
3
  class << self
4
4
  attr_accessor :timer_tasks
5
+
5
6
  def setup
6
7
  @timer_tasks = Concurrent::AtomicReference.new([])
7
8
  @once_tasks = Concurrent::AtomicReference.new([])
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Legion
4
- VERSION = '0.2.0'
2
+ VERSION = '0.3.0'.freeze
5
3
  end
@@ -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.2.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-03-12 00:00:00.000000000 Z
11
+ date: 2020-08-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: legion-data
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-settings
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: concurrent-ruby
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-ext
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: vault
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-logging
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: sleepiq
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: bundler
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: :development
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: codecov
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: :development
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: memory_profiler
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: pry
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/supervison.rb
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: '0'
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.0.8
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: []