legion-transport 1.1.9 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rubocop-analysis.yml +41 -0
  3. data/.github/workflows/sourcehawk-scan.yml +20 -0
  4. data/.gitignore +4 -2
  5. data/.rubocop.yml +0 -6
  6. data/CHANGELOG.md +2 -29
  7. data/CODE_OF_CONDUCT.md +75 -0
  8. data/CONTRIBUTING.md +55 -0
  9. data/Gemfile +7 -0
  10. data/INDIVIDUAL_CONTRIBUTOR_LICENSE.md +30 -0
  11. data/LICENSE +201 -0
  12. data/NOTICE.txt +9 -0
  13. data/README.md +90 -2
  14. data/SECURITY.md +9 -0
  15. data/attribution.txt +1 -0
  16. data/legion-transport.gemspec +20 -27
  17. data/lib/legion/transport.rb +25 -2
  18. data/lib/legion/transport/common.rb +3 -3
  19. data/lib/legion/transport/connection.rb +9 -5
  20. data/lib/legion/transport/connection/ssl.rb +35 -0
  21. data/lib/legion/transport/connection/vault.rb +9 -0
  22. data/lib/legion/transport/consumer.rb +0 -0
  23. data/lib/legion/transport/exchange.rb +10 -2
  24. data/lib/legion/transport/exchanges/crypt.rb +1 -1
  25. data/lib/legion/transport/exchanges/extensions.rb +11 -0
  26. data/lib/legion/transport/exchanges/lex.rb +1 -4
  27. data/lib/legion/transport/exchanges/node.rb +0 -0
  28. data/lib/legion/transport/exchanges/task.rb +0 -0
  29. data/lib/legion/transport/message.rb +37 -4
  30. data/lib/legion/transport/messages/check_subtask.rb +0 -0
  31. data/lib/legion/transport/messages/dynamic.rb +0 -0
  32. data/lib/legion/transport/messages/{node_health.rb → extension.rb} +4 -4
  33. data/lib/legion/transport/messages/lex_register.rb +3 -3
  34. data/lib/legion/transport/messages/request_cluster_secret.rb +0 -0
  35. data/lib/legion/transport/messages/subtask.rb +0 -0
  36. data/lib/legion/transport/messages/task.rb +0 -0
  37. data/lib/legion/transport/messages/task_log.rb +0 -0
  38. data/lib/legion/transport/messages/task_update.rb +0 -0
  39. data/lib/legion/transport/queue.rb +1 -1
  40. data/lib/legion/transport/queues/node.rb +0 -0
  41. data/lib/legion/transport/queues/node_crypt.rb +0 -0
  42. data/lib/legion/transport/queues/node_status.rb +0 -0
  43. data/lib/legion/transport/queues/task_log.rb +0 -0
  44. data/lib/legion/transport/queues/task_update.rb +0 -0
  45. data/lib/legion/transport/settings.rb +15 -8
  46. data/lib/legion/transport/version.rb +1 -1
  47. data/sonar-project.properties +1 -1
  48. data/sourcehawk.yml +4 -0
  49. metadata +48 -132
  50. data/.circleci/config.yml +0 -84
  51. data/.rspec +0 -1
  52. data/Rakefile +0 -6
  53. data/bitbucket-pipelines.yml +0 -14
  54. data/settings/transport.json +0 -5
File without changes
File without changes
@@ -1,15 +1,15 @@
1
- require 'legion/transport/exchanges/lex'
1
+ require 'legion/transport/exchanges/extensions'
2
2
 
3
3
  module Legion
4
4
  module Transport
5
5
  module Messages
6
- class NodeHealth < Legion::Transport::Message
6
+ class LexRegister < Legion::Transport::Message
7
7
  def exchange
8
- Legion::Transport::Exchanges::Node
8
+ Legion::Transport::Exchanges::Extensions
9
9
  end
10
10
 
11
11
  def routing_key
12
- 'health'
12
+ 'extensions.register.'
13
13
  end
14
14
 
15
15
  def validate
@@ -1,15 +1,15 @@
1
- require 'legion/transport/exchanges/lex'
1
+ require 'legion/transport/exchanges/extensions'
2
2
 
3
3
  module Legion
4
4
  module Transport
5
5
  module Messages
6
6
  class LexRegister < Legion::Transport::Message
7
7
  def exchange
8
- Legion::Transport::Exchanges::Lex
8
+ Legion::Transport::Exchanges::Extensions
9
9
  end
10
10
 
11
11
  def routing_key
12
- 'lex.register.save'
12
+ 'extension_manager.register.save'
13
13
  end
14
14
 
15
15
  def validate
File without changes
File without changes
File without changes
File without changes
@@ -14,7 +14,7 @@ module Legion
14
14
  end
15
15
 
16
16
  def recreate_queue(queue)
17
- Legion::Logging.warn "Queue:#{queue} exists with wrong parameters, deleting and creating"
17
+ Legion::Transport.logger.warn "Queue:#{queue} exists with wrong parameters, deleting and creating"
18
18
  queue = ::Bunny::Queue.new(Legion::Transport::Connection.channel, queue, no_declare: true, passive: true)
19
19
  queue.delete(if_empty: true)
20
20
  end
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -26,10 +26,12 @@ module Legion
26
26
  def self.grab_vault_creds
27
27
  return {} unless Legion::Settings[:crypt][:vault][:connected]
28
28
 
29
+ Legion::Transport.logger.info 'Attempting to grab RabbitMQ creds from vault'
29
30
  lease = Legion::Crypt.read('rabbitmq/creds/legion', type: nil)
30
- Legion::Logging.debug 'successfully grabbed amqp username from Vault'
31
+ Legion::Transport.logger.debug 'successfully grabbed amqp username from Vault'
31
32
  { user: lease[:username], password: lease[:password] }
32
33
  rescue StandardError
34
+ Legion::Transport.logger.warn 'Error reading rabbitmq creds from vault'
33
35
  {}
34
36
  end
35
37
 
@@ -61,16 +63,21 @@ module Legion
61
63
  }
62
64
  end
63
65
 
66
+ def self.messages
67
+ {
68
+ encrypt: ENV['transport.messsages.encrypt'] == 'true',
69
+ ttl: ENV['transport.messages.ttl'],
70
+ priority: ENV['transport.messages.priority'].to_i || 0,
71
+ persistent: ENV['transport.messages.persistent'] == 'true'
72
+ }
73
+ end
74
+
64
75
  def self.default
65
76
  {
66
77
  type: 'rabbitmq',
67
78
  connected: false,
68
79
  logger_level: ENV['transport.logger_level'] || 'info',
69
- messages: {
70
- encrypt: false,
71
- ttl: nil,
72
- priority: 0
73
- },
80
+ messages: messages,
74
81
  prefetch: ENV['transport.prefetch'].to_i || 2,
75
82
  exchanges: exchanges,
76
83
  queues: queues,
@@ -84,6 +91,6 @@ end
84
91
 
85
92
  begin
86
93
  Legion::Settings.merge_settings('transport', Legion::Transport::Settings.default) if Legion.const_defined?('Settings')
87
- rescue StandardError => e
88
- Legion::Logging.fatal(e.message) if Legion::Logging.method_defined?(:fatal)
94
+ rescue StandardError
95
+ Legion::Transport.logger.fatal(e.message)
89
96
  end
@@ -1,5 +1,5 @@
1
1
  module Legion
2
2
  module Transport
3
- VERSION = '1.1.9'.freeze
3
+ VERSION = '1.2.0'.freeze
4
4
  end
5
5
  end
@@ -9,4 +9,4 @@ sonar.ruby.file.suffixes=rb,ruby
9
9
  sonar.ruby.coverage.framework=RSpec
10
10
  sonar.ruby.rubocopConfig=.rubocop.yml
11
11
  sonar.ruby.rubocop.reportPath=rubocop-result.json
12
- sonar.ruby.rubocop.filePath=.
12
+ sonar.ruby.rubocop.filePath=.
data/sourcehawk.yml ADDED
@@ -0,0 +1,4 @@
1
+
2
+ config-locations:
3
+ - https://raw.githubusercontent.com/optum/.github/main/sourcehawk.yml
4
+
metadata CHANGED
@@ -1,157 +1,59 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: legion-transport
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.9
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-21 00:00:00.000000000 Z
11
+ date: 2021-06-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: legion-logging
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :development
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-settings
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: rake
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: rspec
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: rspec_junit_formatter
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: rubocop
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: simplecov
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: simplecov_json_formatter
14
+ name: bunny
113
15
  requirement: !ruby/object:Gem::Requirement
114
16
  requirements:
115
17
  - - ">="
116
18
  - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
19
+ version: 2.17.0
20
+ type: :runtime
119
21
  prerelease: false
120
22
  version_requirements: !ruby/object:Gem::Requirement
121
23
  requirements:
122
24
  - - ">="
123
25
  - !ruby/object:Gem::Version
124
- version: '0'
26
+ version: 2.17.0
125
27
  - !ruby/object:Gem::Dependency
126
- name: bunny
28
+ name: concurrent-ruby
127
29
  requirement: !ruby/object:Gem::Requirement
128
30
  requirements:
129
31
  - - ">="
130
32
  - !ruby/object:Gem::Version
131
- version: 2.17.0
33
+ version: 1.1.7
132
34
  type: :runtime
133
35
  prerelease: false
134
36
  version_requirements: !ruby/object:Gem::Requirement
135
37
  requirements:
136
38
  - - ">="
137
39
  - !ruby/object:Gem::Version
138
- version: 2.17.0
40
+ version: 1.1.7
139
41
  - !ruby/object:Gem::Dependency
140
- name: concurrent-ruby
42
+ name: legion-json
141
43
  requirement: !ruby/object:Gem::Requirement
142
44
  requirements:
143
45
  - - ">="
144
46
  - !ruby/object:Gem::Version
145
- version: 1.1.7
47
+ version: '0'
146
48
  type: :runtime
147
49
  prerelease: false
148
50
  version_requirements: !ruby/object:Gem::Requirement
149
51
  requirements:
150
52
  - - ">="
151
53
  - !ruby/object:Gem::Version
152
- version: 1.1.7
54
+ version: '0'
153
55
  - !ruby/object:Gem::Dependency
154
- name: legion-json
56
+ name: legion-settings
155
57
  requirement: !ruby/object:Gem::Requirement
156
58
  requirements:
157
59
  - - ">="
@@ -164,38 +66,49 @@ dependencies:
164
66
  - - ">="
165
67
  - !ruby/object:Gem::Version
166
68
  version: '0'
167
- description: The Legion transport gem
69
+ description: The Gem to connect LegionIO and it's extensions to the transport tier
168
70
  email:
169
71
  - matthewdiverson@gmail.com
72
+ - ruby@optum.com
170
73
  executables: []
171
74
  extensions: []
172
- extra_rdoc_files: []
75
+ extra_rdoc_files:
76
+ - README.md
77
+ - LICENSE
78
+ - CHANGELOG.md
173
79
  files:
174
- - ".circleci/config.yml"
80
+ - ".github/workflows/rubocop-analysis.yml"
81
+ - ".github/workflows/sourcehawk-scan.yml"
175
82
  - ".gitignore"
176
- - ".rspec"
177
83
  - ".rubocop.yml"
178
84
  - CHANGELOG.md
85
+ - CODE_OF_CONDUCT.md
86
+ - CONTRIBUTING.md
179
87
  - Gemfile
180
- - Gemfile.lock
88
+ - INDIVIDUAL_CONTRIBUTOR_LICENSE.md
89
+ - LICENSE
90
+ - NOTICE.txt
181
91
  - README.md
182
- - Rakefile
183
- - bitbucket-pipelines.yml
92
+ - SECURITY.md
93
+ - attribution.txt
184
94
  - legion-transport.gemspec
185
95
  - lib/legion/transport.rb
186
96
  - lib/legion/transport/common.rb
187
97
  - lib/legion/transport/connection.rb
98
+ - lib/legion/transport/connection/ssl.rb
99
+ - lib/legion/transport/connection/vault.rb
188
100
  - lib/legion/transport/consumer.rb
189
101
  - lib/legion/transport/exchange.rb
190
102
  - lib/legion/transport/exchanges/crypt.rb
103
+ - lib/legion/transport/exchanges/extensions.rb
191
104
  - lib/legion/transport/exchanges/lex.rb
192
105
  - lib/legion/transport/exchanges/node.rb
193
106
  - lib/legion/transport/exchanges/task.rb
194
107
  - lib/legion/transport/message.rb
195
108
  - lib/legion/transport/messages/check_subtask.rb
196
109
  - lib/legion/transport/messages/dynamic.rb
110
+ - lib/legion/transport/messages/extension.rb
197
111
  - lib/legion/transport/messages/lex_register.rb
198
- - lib/legion/transport/messages/node_health.rb
199
112
  - lib/legion/transport/messages/request_cluster_secret.rb
200
113
  - lib/legion/transport/messages/subtask.rb
201
114
  - lib/legion/transport/messages/task.rb
@@ -209,16 +122,19 @@ files:
209
122
  - lib/legion/transport/queues/task_update.rb
210
123
  - lib/legion/transport/settings.rb
211
124
  - lib/legion/transport/version.rb
212
- - settings/transport.json
213
125
  - sonar-project.properties
214
- homepage: https://bitbucket.org/legion-io/legion-transport
215
- licenses: []
126
+ - sourcehawk.yml
127
+ homepage: https://github.com/Optum/legion-transport
128
+ licenses:
129
+ - Apache-2.0
216
130
  metadata:
217
- bug_tracker_uri: https://legionio.atlassian.net/projects/TRANSPORT/issues
218
- changelog_uri: https://bitbucket.org/legion-io/legion-transport/src/master/CHANGELOG.md
219
- homepage_uri: https://bitbucket.org/legion-io/legion-transport
220
- wiki_uri: https://bitbucket.org/legion-io/legion-transport/wiki/Home
221
- post_install_message:
131
+ bug_tracker_uri: https://github.com/Optum/legion-transport/issues
132
+ changelog_uri: https://github.com/Optum/legion-transport/src/main/CHANGELOG.md
133
+ documentation_uri: https://github.com/Optum/legion-transport
134
+ homepage_uri: https://github.com/Optum/LegionIO
135
+ source_code_uri: https://github.com/Optum/legion-transport
136
+ wiki_uri: https://github.com/Optum/legion-transport/wiki
137
+ post_install_message:
222
138
  rdoc_options: []
223
139
  require_paths:
224
140
  - lib
@@ -226,15 +142,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
226
142
  requirements:
227
143
  - - ">="
228
144
  - !ruby/object:Gem::Version
229
- version: 2.5.0
145
+ version: '2.5'
230
146
  required_rubygems_version: !ruby/object:Gem::Requirement
231
147
  requirements:
232
148
  - - ">="
233
149
  - !ruby/object:Gem::Version
234
150
  version: '0'
235
151
  requirements: []
236
- rubygems_version: 3.1.4
237
- signing_key:
152
+ rubygems_version: 3.1.6
153
+ signing_key:
238
154
  specification_version: 4
239
- summary: Used by Legion to connect with RabbitMQ
155
+ summary: Manages the connection to the transport tier(RabbitMQ)
240
156
  test_files: []
data/.circleci/config.yml DELETED
@@ -1,84 +0,0 @@
1
- version: 2.1
2
- orbs:
3
- ruby: circleci/ruby@1.1.2
4
- sonarcloud: sonarsource/sonarcloud@1.0.2
5
-
6
- jobs:
7
- "rubocop":
8
- docker:
9
- - image: circleci/ruby:2.7-node
10
- steps:
11
- - checkout
12
- - run: gem install bundler
13
- - run: bundle update
14
- - run: bundle exec rubocop --format=json --out=rubocop-result.json
15
- - store_test_results:
16
- path: rubocop-result.json
17
- - sonarcloud/scan
18
- - run: bundle exec rubocop
19
- "ruby-two-five":
20
- docker:
21
- - image: circleci/ruby:2.5
22
- - image: rabbitmq:3.7
23
- steps:
24
- - checkout
25
- - run: gem install bundler
26
- - run: bundle update
27
- - run: bundle exec rspec --format progress --format RspecJunitFormatter -o rspec-results.xml
28
- - store_test_results:
29
- path: rspec-results.xml
30
- - sonarcloud/scan
31
- "ruby-two-six":
32
- docker:
33
- - image: circleci/ruby:2.6
34
- - image: rabbitmq:3.7
35
- steps:
36
- - checkout
37
- - run: gem install bundler
38
- - run: bundle update
39
- - run: bundle exec rspec --format progress --format RspecJunitFormatter -o rspec-results.xml
40
- - store_test_results:
41
- path: rspec-results.xml
42
- - sonarcloud/scan
43
- "ruby-two-seven":
44
- docker:
45
- - image: circleci/ruby:2.7
46
- - image: rabbitmq:3.7
47
- steps:
48
- - checkout
49
- - run: gem install bundler
50
- - run: bundle update
51
- - run: bundle exec rspec --format progress --format RspecJunitFormatter -o rspec-results.xml
52
- - store_test_results:
53
- path: rspec-results.xml
54
- - sonarcloud/scan
55
- "ruby-three":
56
- docker:
57
- - image: circleci/ruby:3-node
58
- - image: rabbitmq:3.7
59
- steps:
60
- - checkout
61
- - run: gem install bundler
62
- - run: bundle update
63
- - run: bundle exec rspec --format progress --format RspecJunitFormatter -o rspec-results.xml
64
- - store_test_results:
65
- path: rspec-results.xml
66
- - sonarcloud/scan
67
-
68
- workflows:
69
- version: 2
70
- rubocop-rspec:
71
- jobs:
72
- - rubocop
73
- - ruby-two-five:
74
- requires:
75
- - rubocop
76
- - ruby-two-six:
77
- requires:
78
- - ruby-two-five
79
- - ruby-two-seven:
80
- requires:
81
- - ruby-two-five
82
- - ruby-three:
83
- requires:
84
- - ruby-two-five