legionio 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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: []