lex-node 0.1.7 → 0.2.3
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/.github/workflows/ci.yml +16 -0
- data/.rubocop.yml +40 -10
- data/CHANGELOG.md +19 -0
- data/CLAUDE.md +109 -0
- data/Dockerfile +1 -1
- data/Gemfile +10 -2
- data/Gemfile.lock +60 -93
- data/README.md +65 -5
- data/docker_deploy.rb +1 -0
- data/lex-node.gemspec +10 -14
- data/lib/legion/extensions/node/actors/beat.rb +27 -19
- data/lib/legion/extensions/node/actors/crypt.rb +12 -4
- data/lib/legion/extensions/node/actors/push_key.rb +27 -19
- data/lib/legion/extensions/node/actors/vault.rb +27 -19
- data/lib/legion/extensions/node/actors/vault_token_request.rb +27 -19
- data/lib/legion/extensions/node/data_test/migrations/001_nodes_table.rb +28 -0
- data/lib/legion/extensions/node/data_test/migrations/002_node_history_table.rb +27 -0
- data/lib/legion/extensions/node/data_test/migrations/003_legion_version_colume.rb +10 -0
- data/lib/legion/extensions/node/data_test/migrations/004_node_extensions.rb +24 -0
- data/lib/legion/extensions/node/runners/beat.rb +17 -9
- data/lib/legion/extensions/node/runners/crypt.rb +60 -52
- data/lib/legion/extensions/node/runners/node.rb +109 -52
- data/lib/legion/extensions/node/runners/vault.rb +44 -36
- data/lib/legion/extensions/node/transport/exchanges/node.rb +13 -4
- data/lib/legion/extensions/node/transport/messages/beat.rb +85 -22
- data/lib/legion/extensions/node/transport/messages/public_key.rb +24 -14
- data/lib/legion/extensions/node/transport/messages/push_cluster_secret.rb +34 -24
- data/lib/legion/extensions/node/transport/messages/push_vault_token.rb +33 -26
- data/lib/legion/extensions/node/transport/messages/request_cluster_secret.rb +26 -16
- data/lib/legion/extensions/node/transport/messages/request_public_keys.rb +23 -13
- data/lib/legion/extensions/node/transport/messages/request_vault_token.rb +31 -21
- data/lib/legion/extensions/node/transport/messages/update_result.rb +36 -0
- data/lib/legion/extensions/node/transport/queues/crypt.rb +14 -4
- data/lib/legion/extensions/node/transport/queues/health.rb +14 -4
- data/lib/legion/extensions/node/transport/queues/node.rb +18 -7
- data/lib/legion/extensions/node/transport/queues/vault.rb +14 -4
- data/lib/legion/extensions/node/transport.rb +17 -8
- data/lib/legion/extensions/node/version.rb +3 -1
- data/lib/legion/extensions/node.rb +2 -0
- metadata +23 -104
- data/.circleci/config.yml +0 -82
- data/Rakefile +0 -6
- data/bitbucket-pipelines.yml +0 -19
- /data/{LICENSE.txt → LICENSE} +0 -0
|
@@ -1,9 +1,18 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'legion/transport/exchanges/node'
|
|
2
4
|
|
|
3
|
-
module Legion
|
|
4
|
-
module
|
|
5
|
-
module
|
|
6
|
-
|
|
5
|
+
module Legion
|
|
6
|
+
module Extensions
|
|
7
|
+
module Node
|
|
8
|
+
module Transport
|
|
9
|
+
module Exchanges
|
|
10
|
+
class Node < Legion::Transport::Exchanges::Node
|
|
11
|
+
def exchange_name
|
|
12
|
+
'node'
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
7
16
|
end
|
|
8
17
|
end
|
|
9
18
|
end
|
|
@@ -1,31 +1,94 @@
|
|
|
1
|
-
|
|
2
|
-
class Beat < Legion::Transport::Message
|
|
3
|
-
def routing_key
|
|
4
|
-
'health'
|
|
5
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
6
2
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
module Legion
|
|
4
|
+
module Extensions
|
|
5
|
+
module Node
|
|
6
|
+
module Transport
|
|
7
|
+
module Messages
|
|
8
|
+
class Beat < Legion::Transport::Message
|
|
9
|
+
def routing_key
|
|
10
|
+
'status'
|
|
11
|
+
end
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
def type
|
|
14
|
+
'heartbeat'
|
|
15
|
+
end
|
|
14
16
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
def expiration
|
|
18
|
+
5000
|
|
19
|
+
end
|
|
18
20
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
def encrypt?
|
|
22
|
+
false
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def message
|
|
26
|
+
hash = {
|
|
27
|
+
name: Legion::Settings[:client][:hostname],
|
|
28
|
+
pid: ::Process.pid,
|
|
29
|
+
timestamp: Time.now,
|
|
30
|
+
status: @options[:status].nil? ? 'healthy' : @options[:status]
|
|
31
|
+
}
|
|
32
|
+
hash[:version] = Legion::VERSION if defined?(Legion::VERSION)
|
|
33
|
+
hash[:metrics] = collect_metrics
|
|
34
|
+
hash[:hosted_worker_ids] = collect_worker_ids
|
|
35
|
+
hash
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def validate
|
|
39
|
+
raise 'status should be a string' unless @options[:status].is_a?(String) || @options[:status].nil?
|
|
40
|
+
|
|
41
|
+
@valid = true
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
private
|
|
45
|
+
|
|
46
|
+
def collect_metrics
|
|
47
|
+
times = ::Process.times
|
|
48
|
+
{
|
|
49
|
+
memory_rss_mb: rss_mb,
|
|
50
|
+
cpu_user_seconds: times.utime.round(2),
|
|
51
|
+
cpu_system_seconds: times.stime.round(2),
|
|
52
|
+
thread_count: Thread.list.count,
|
|
53
|
+
loaded_extensions: loaded_extension_count,
|
|
54
|
+
uptime_seconds: uptime_seconds
|
|
55
|
+
}
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def rss_mb
|
|
59
|
+
if RUBY_PLATFORM.include?('darwin')
|
|
60
|
+
`ps -o rss= -p #{::Process.pid}`.strip.to_i / 1024.0
|
|
61
|
+
else
|
|
62
|
+
File.read("/proc/#{::Process.pid}/statm").split[1].to_i * (4096.0 / 1_048_576)
|
|
63
|
+
end
|
|
64
|
+
rescue StandardError
|
|
65
|
+
0.0
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def loaded_extension_count
|
|
69
|
+
return 0 unless defined?(Legion::Extensions)
|
|
70
|
+
|
|
71
|
+
Legion::Extensions.respond_to?(:loaded_extensions) ? Legion::Extensions.loaded_extensions.count : 0
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def uptime_seconds
|
|
75
|
+
(::Process.clock_gettime(::Process::CLOCK_MONOTONIC) - boot_time).round(0)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def boot_time
|
|
79
|
+
@boot_time ||= ::Process.clock_gettime(::Process::CLOCK_MONOTONIC)
|
|
80
|
+
end
|
|
24
81
|
|
|
25
|
-
|
|
26
|
-
|
|
82
|
+
def collect_worker_ids
|
|
83
|
+
return [] unless defined?(Legion::DigitalWorker)
|
|
27
84
|
|
|
28
|
-
|
|
85
|
+
Legion::DigitalWorker.active_local_ids
|
|
86
|
+
rescue StandardError
|
|
87
|
+
[]
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
29
92
|
end
|
|
30
93
|
end
|
|
31
94
|
end
|
|
@@ -1,21 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
class PublicKey < Legion::Transport::Message
|
|
3
|
-
def routing_key
|
|
4
|
-
'node.crypt.update_public_key'
|
|
5
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
6
2
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
module Legion
|
|
4
|
+
module Extensions
|
|
5
|
+
module Node
|
|
6
|
+
module Transport
|
|
7
|
+
module Messages
|
|
8
|
+
class PublicKey < Legion::Transport::Message
|
|
9
|
+
def routing_key
|
|
10
|
+
'node.crypt.update_public_key'
|
|
11
|
+
end
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
def type
|
|
14
|
+
'task'
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def encrypt?
|
|
18
|
+
false
|
|
19
|
+
end
|
|
14
20
|
|
|
15
|
-
|
|
16
|
-
|
|
21
|
+
def validate
|
|
22
|
+
raise 'public_key should be a string' unless @options[:public_key].is_a?(String)
|
|
17
23
|
|
|
18
|
-
|
|
24
|
+
@valid = true
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
19
29
|
end
|
|
20
30
|
end
|
|
21
31
|
end
|
|
@@ -1,32 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
class PushClusterSecret < Legion::Transport::Message
|
|
3
|
-
def routing_key
|
|
4
|
-
@options[:queue_name]
|
|
5
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
6
2
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
module Legion
|
|
4
|
+
module Extensions
|
|
5
|
+
module Node
|
|
6
|
+
module Transport
|
|
7
|
+
module Messages
|
|
8
|
+
class PushClusterSecret < Legion::Transport::Message
|
|
9
|
+
def routing_key
|
|
10
|
+
@options[:queue_name]
|
|
11
|
+
end
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
message: @options[:message],
|
|
15
|
-
validation_string: @options[:validation_string] || nil,
|
|
16
|
-
encrypted_string: @options[:encrypted_string] || nil,
|
|
17
|
-
public_key: Base64.encode64(Legion::Crypt.public_key) }
|
|
18
|
-
end
|
|
13
|
+
def exchange
|
|
14
|
+
Legion::Transport::Exchanges::Node
|
|
15
|
+
end
|
|
19
16
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
def message
|
|
18
|
+
{ function: 'receive_cluster_secret',
|
|
19
|
+
runner_class: 'Legion::Extensions::Node::Runners::Crypt',
|
|
20
|
+
message: @options[:message],
|
|
21
|
+
validation_string: @options[:validation_string] || nil,
|
|
22
|
+
encrypted_string: @options[:encrypted_string] || nil,
|
|
23
|
+
public_key: Base64.encode64(Legion::Crypt.public_key) }
|
|
24
|
+
end
|
|
23
25
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
def type
|
|
27
|
+
'task'
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def encrypt?
|
|
31
|
+
false
|
|
32
|
+
end
|
|
27
33
|
|
|
28
|
-
|
|
29
|
-
|
|
34
|
+
def validate
|
|
35
|
+
@valid = true
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
30
40
|
end
|
|
31
41
|
end
|
|
32
42
|
end
|
|
@@ -1,35 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
class PushVaultToken < Legion::Transport::Message
|
|
3
|
-
def routing_key
|
|
4
|
-
"node.#{@options[:queue_name]}"
|
|
5
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
6
2
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
module Legion
|
|
4
|
+
module Extensions
|
|
5
|
+
module Node
|
|
6
|
+
module Transport
|
|
7
|
+
module Messages
|
|
8
|
+
class PushVaultToken < Legion::Transport::Message
|
|
9
|
+
def routing_key
|
|
10
|
+
"node.#{@options[:queue_name]}"
|
|
11
|
+
end
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
runner_class: 'Legion::Extensions::Node::Runners::Vault',
|
|
15
|
-
message: @options[:token],
|
|
16
|
-
public_key: Base64.encode64(Legion::Crypt.public_key) }
|
|
13
|
+
def exchange
|
|
14
|
+
Legion::Transport::Exchanges::Node
|
|
15
|
+
end
|
|
17
16
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
def message
|
|
18
|
+
{
|
|
19
|
+
function: 'receive_vault_token',
|
|
20
|
+
runner_class: 'Legion::Extensions::Node::Runners::Vault',
|
|
21
|
+
message: @options[:token],
|
|
22
|
+
public_key: Base64.encode64(Legion::Crypt.public_key)
|
|
23
|
+
}
|
|
24
|
+
end
|
|
22
25
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
+
def type
|
|
27
|
+
'task'
|
|
28
|
+
end
|
|
26
29
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
def encrypt?
|
|
31
|
+
false
|
|
32
|
+
end
|
|
30
33
|
|
|
31
|
-
|
|
32
|
-
|
|
34
|
+
def validate
|
|
35
|
+
@valid = true
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
33
40
|
end
|
|
34
41
|
end
|
|
35
42
|
end
|
|
@@ -1,23 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
class RequestClusterSecret < Legion::Transport::Message
|
|
3
|
-
def routing_key
|
|
4
|
-
'node.crypt.push_cluster_secret'
|
|
5
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
6
2
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
module Legion
|
|
4
|
+
module Extensions
|
|
5
|
+
module Node
|
|
6
|
+
module Transport
|
|
7
|
+
module Messages
|
|
8
|
+
class RequestClusterSecret < Legion::Transport::Message
|
|
9
|
+
def routing_key
|
|
10
|
+
'node.crypt.push_cluster_secret'
|
|
11
|
+
end
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
def message
|
|
14
|
+
{ function: 'push_cluster_secret', node_name: Legion::Settings[:client][:name] }
|
|
15
|
+
end
|
|
14
16
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
def type
|
|
18
|
+
'task'
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def encrypt?
|
|
22
|
+
false
|
|
23
|
+
end
|
|
18
24
|
|
|
19
|
-
|
|
20
|
-
|
|
25
|
+
def validate
|
|
26
|
+
@valid = true
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
21
31
|
end
|
|
22
32
|
end
|
|
23
33
|
end
|
|
@@ -1,19 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
class RequestPublicKeys < Legion::Transport::Message
|
|
3
|
-
def routing_key
|
|
4
|
-
'node'
|
|
5
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
6
2
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
module Legion
|
|
4
|
+
module Extensions
|
|
5
|
+
module Node
|
|
6
|
+
module Transport
|
|
7
|
+
module Messages
|
|
8
|
+
class RequestPublicKeys < Legion::Transport::Message
|
|
9
|
+
def routing_key
|
|
10
|
+
'node'
|
|
11
|
+
end
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
def type
|
|
14
|
+
'task'
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def encrypt?
|
|
18
|
+
false
|
|
19
|
+
end
|
|
14
20
|
|
|
15
|
-
|
|
16
|
-
|
|
21
|
+
def validate
|
|
22
|
+
@valid = true
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
17
27
|
end
|
|
18
28
|
end
|
|
19
29
|
end
|
|
@@ -1,28 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
class RequestVaultToken < Legion::Transport::Message
|
|
3
|
-
def routing_key
|
|
4
|
-
'vault'
|
|
5
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
6
2
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
3
|
+
module Legion
|
|
4
|
+
module Extensions
|
|
5
|
+
module Node
|
|
6
|
+
module Transport
|
|
7
|
+
module Messages
|
|
8
|
+
class RequestVaultToken < Legion::Transport::Message
|
|
9
|
+
def routing_key
|
|
10
|
+
'vault'
|
|
11
|
+
end
|
|
15
12
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
def message
|
|
14
|
+
{
|
|
15
|
+
function: 'push_vault_token',
|
|
16
|
+
node_name: Legion::Settings[:client][:name],
|
|
17
|
+
runner_class: 'Legion::Extensions::Node::Runners::Vault',
|
|
18
|
+
public_key: Legion::Crypt.public_key
|
|
19
|
+
}
|
|
20
|
+
end
|
|
19
21
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
def type
|
|
23
|
+
'task'
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def encrypt?
|
|
27
|
+
false
|
|
28
|
+
end
|
|
23
29
|
|
|
24
|
-
|
|
25
|
-
|
|
30
|
+
def validate
|
|
31
|
+
@valid = true
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
26
36
|
end
|
|
27
37
|
end
|
|
28
38
|
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Legion
|
|
4
|
+
module Extensions
|
|
5
|
+
module Node
|
|
6
|
+
module Transport
|
|
7
|
+
module Messages
|
|
8
|
+
class UpdateResult < Legion::Transport::Message
|
|
9
|
+
def routing_key
|
|
10
|
+
"node.#{Legion::Settings[:client][:name]}.update_result"
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def exchange
|
|
14
|
+
Legion::Transport::Exchanges::Node
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def type
|
|
18
|
+
'task'
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def encrypt?
|
|
22
|
+
false
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def validate
|
|
26
|
+
raise 'action is required' unless @options[:action].is_a?(String)
|
|
27
|
+
raise 'status is required' unless @options[:status].is_a?(String)
|
|
28
|
+
|
|
29
|
+
@valid = true
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -1,7 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Legion
|
|
4
|
+
module Extensions
|
|
5
|
+
module Node
|
|
6
|
+
module Transport
|
|
7
|
+
module Queues
|
|
8
|
+
class Crypt < Legion::Transport::Queue
|
|
9
|
+
def queue_options
|
|
10
|
+
{ auto_delete: false }
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
5
15
|
end
|
|
6
16
|
end
|
|
7
17
|
end
|
|
@@ -1,7 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Legion
|
|
4
|
+
module Extensions
|
|
5
|
+
module Node
|
|
6
|
+
module Transport
|
|
7
|
+
module Queues
|
|
8
|
+
class Health < Legion::Transport::Queue
|
|
9
|
+
def queue_options
|
|
10
|
+
{ arguments: { 'x-single-active-consumer': true }, auto_delete: false }
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
5
15
|
end
|
|
6
16
|
end
|
|
7
17
|
end
|
|
@@ -1,13 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'socket'
|
|
2
4
|
|
|
3
|
-
module Legion
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
module Legion
|
|
6
|
+
module Extensions
|
|
7
|
+
module Node
|
|
8
|
+
module Transport
|
|
9
|
+
module Queues
|
|
10
|
+
class Node < Legion::Transport::Queue
|
|
11
|
+
def queue_name
|
|
12
|
+
"node.#{Legion::Settings[:client][:name]}"
|
|
13
|
+
end
|
|
8
14
|
|
|
9
|
-
|
|
10
|
-
|
|
15
|
+
def queue_options
|
|
16
|
+
{ durable: false, exclusive: true, auto_delete: true,
|
|
17
|
+
arguments: { 'x-queue-type': 'classic' } }
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
11
22
|
end
|
|
12
23
|
end
|
|
13
24
|
end
|
|
@@ -1,7 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Legion
|
|
4
|
+
module Extensions
|
|
5
|
+
module Node
|
|
6
|
+
module Transport
|
|
7
|
+
module Queues
|
|
8
|
+
class Vault < Legion::Transport::Queue
|
|
9
|
+
def queue_options
|
|
10
|
+
{ auto_delete: false }
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
5
15
|
end
|
|
6
16
|
end
|
|
7
17
|
end
|
|
@@ -1,12 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'legion/extensions/transport'
|
|
2
4
|
|
|
3
|
-
module Legion
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
module Legion
|
|
6
|
+
module Extensions
|
|
7
|
+
module Node
|
|
8
|
+
module Transport
|
|
9
|
+
extend Legion::Extensions::Transport
|
|
10
|
+
|
|
11
|
+
def self.additional_e_to_q
|
|
12
|
+
array = [{ from: 'node', to: 'node', routing_key: "node.#{Legion::Settings[:client][:name]}" }]
|
|
13
|
+
array.push(from: 'node', to: 'node', routing_key: 'node.data.#') if Legion::Settings[:data][:connected]
|
|
14
|
+
array.push(from: 'node', to: 'node', routing_key: 'node.cache.#') if Legion::Settings[:cache][:connected]
|
|
15
|
+
array.push(from: 'node', to: 'node', routing_key: 'node.crypt.#')
|
|
16
|
+
array
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
11
20
|
end
|
|
12
21
|
end
|