rsmp 0.11.2 → 0.11.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/rsmp/collect/collector.rb +7 -2
- data/lib/rsmp/collect/state_collector.rb +82 -8
- data/lib/rsmp/proxy.rb +7 -10
- data/lib/rsmp/site_proxy.rb +1 -1
- data/lib/rsmp/supervisor_proxy.rb +1 -5
- data/lib/rsmp/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5e36c6f5f96850c9ad1a07ab856efc1e094deafee596074a611a08a2535f57ec
|
4
|
+
data.tar.gz: efedbe0726d80f1fff7e3d37fa171fa1afe1df1705cf50e142eee0667c6e8dff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6f4362c8689573a0c7ce8e91ea079c0ce06a6b8d73bc27ce964d781dd64ee53b92c271a7ba41f31e89af62475adf341ae2a5b6682418758d3558930e72c037d3
|
7
|
+
data.tar.gz: 9f595995ec7247fdfb2e782e235c83adb475b1db85c8834aa434a42b5bc5e1ca6f4ae8e71233473bcee21b7c722b8f5a4862a8531098f793f629e7832b0eda3c
|
data/Gemfile.lock
CHANGED
@@ -279,12 +279,17 @@ module RSMP
|
|
279
279
|
true
|
280
280
|
end
|
281
281
|
|
282
|
+
# return a string describing the types of messages we're collecting
|
283
|
+
def describe_types
|
284
|
+
[@options[:type]].flatten.join('/')
|
285
|
+
end
|
286
|
+
|
282
287
|
# return a string that describes whe number of messages, and type of message we're collecting
|
283
288
|
def describe_num_and_type
|
284
289
|
if @options[:num] && @options[:num] > 1
|
285
|
-
"#{@options[:num]} #{
|
290
|
+
"#{@options[:num]} #{describe_types}s"
|
286
291
|
else
|
287
|
-
|
292
|
+
describe_types
|
288
293
|
end
|
289
294
|
end
|
290
295
|
|
@@ -119,21 +119,95 @@ module RSMP
|
|
119
119
|
|
120
120
|
# return a string that describes the attributes that we're looking for
|
121
121
|
def describe_query
|
122
|
-
|
123
|
-
|
122
|
+
"#{super} matching #{query_want_hash.to_s}"
|
123
|
+
end
|
124
|
+
|
125
|
+
# return a hash that describe the status of all queries
|
126
|
+
def progress_hash
|
127
|
+
h = {}
|
128
|
+
@queries.each do |query|
|
129
|
+
want = query.want
|
130
|
+
if want['cCI']
|
131
|
+
cCI = want['cCI']
|
132
|
+
h[cCI] ||= {}
|
133
|
+
cO = h['cO']
|
134
|
+
n = h['n']
|
135
|
+
v = h['v']
|
136
|
+
h[cCI][cO] ||= {}
|
137
|
+
h[cCI][cO][n] = v
|
138
|
+
elsif want['sCI']
|
139
|
+
sCI = want['sCI']
|
140
|
+
h[sCI] ||= {}
|
141
|
+
n = want['n']
|
142
|
+
s = want['s']
|
143
|
+
if query.got && query.got['s']
|
144
|
+
h[sCI][n] = { {s=>query.got['s']} => query.done? }
|
145
|
+
else
|
146
|
+
h[sCI][n] = { s=>nil }
|
147
|
+
end
|
148
|
+
end
|
149
|
+
end
|
150
|
+
h
|
124
151
|
end
|
125
152
|
|
126
153
|
# return a string that describe how many many messages have been collected
|
127
154
|
def describe_progress
|
128
155
|
num_queries = @queries.size
|
129
156
|
num_matched = @queries.count { |query| query.done? }
|
157
|
+
".. Matched #{num_matched}/#{num_queries} with #{progress_hash.to_s}"
|
158
|
+
end
|
159
|
+
|
160
|
+
def query_want_hash
|
161
|
+
h = {}
|
162
|
+
@queries.each do |query|
|
163
|
+
item = query.want
|
164
|
+
if item['cCI']
|
165
|
+
cCI = item['cCI']
|
166
|
+
h[cCI] ||= {}
|
167
|
+
cO = item['cO']
|
168
|
+
h[cCI][cO] ||= {}
|
169
|
+
n = item['n']
|
170
|
+
v = item['v']
|
171
|
+
h[cCI][cO][n] = v || :any
|
172
|
+
elsif item['sCI']
|
173
|
+
sCI = item['sCI']
|
174
|
+
h[sCI] ||= {}
|
175
|
+
n = item['n']
|
176
|
+
s = item['s']
|
177
|
+
h[sCI][n] = s || :any
|
178
|
+
end
|
179
|
+
end
|
180
|
+
h
|
181
|
+
end
|
182
|
+
|
183
|
+
# return a hash that describe the end result
|
184
|
+
def query_got_hash
|
185
|
+
h = {}
|
186
|
+
@queries.each do |query|
|
187
|
+
want = query.want
|
188
|
+
got = query.got
|
189
|
+
if got['cCI']
|
190
|
+
cCI = want['cCI']
|
191
|
+
h[cCI] ||= {}
|
192
|
+
cO = want['cO']
|
193
|
+
h[cCI][cO] ||= {}
|
194
|
+
n = want['n']
|
195
|
+
v = got['v']
|
196
|
+
h[cCI][cO][n] = v
|
197
|
+
elsif want['sCI']
|
198
|
+
sCI = want['sCI']
|
199
|
+
h[sCI] ||= {}
|
200
|
+
n = want['n']
|
201
|
+
s = got['s']
|
202
|
+
h[sCI][n] = s
|
203
|
+
end
|
204
|
+
end
|
205
|
+
h
|
206
|
+
end
|
130
207
|
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
str << ", got #{got.join(', ')}" if got.any?
|
135
|
-
str << ", need #{need.join(', ')}" if need.any?
|
136
|
-
str
|
208
|
+
# log when we end collecting
|
209
|
+
def log_complete
|
210
|
+
@notifier.log "#{identifier}: Completed with #{query_got_hash.to_s}", level: :collect
|
137
211
|
end
|
138
212
|
end
|
139
213
|
end
|
data/lib/rsmp/proxy.rb
CHANGED
@@ -13,9 +13,10 @@ module RSMP
|
|
13
13
|
include Inspect
|
14
14
|
include Task
|
15
15
|
|
16
|
-
attr_reader :state, :archive, :connection_info, :sxl, :collector, :ip, :port
|
16
|
+
attr_reader :state, :archive, :connection_info, :sxl, :collector, :ip, :port, :node
|
17
17
|
|
18
18
|
def initialize options
|
19
|
+
@node = options[:node]
|
19
20
|
initialize_logging options
|
20
21
|
initialize_distributor
|
21
22
|
initialize_task
|
@@ -120,7 +121,7 @@ module RSMP
|
|
120
121
|
end
|
121
122
|
|
122
123
|
def clock
|
123
|
-
node.clock
|
124
|
+
@node.clock
|
124
125
|
end
|
125
126
|
|
126
127
|
def ready?
|
@@ -203,7 +204,7 @@ module RSMP
|
|
203
204
|
end
|
204
205
|
|
205
206
|
def notify_error e, options={}
|
206
|
-
node.notify_error e, options
|
207
|
+
@node.notify_error e, options
|
207
208
|
end
|
208
209
|
|
209
210
|
def start_watchdog
|
@@ -369,7 +370,7 @@ module RSMP
|
|
369
370
|
end
|
370
371
|
|
371
372
|
def process_deferred
|
372
|
-
node.process_deferred
|
373
|
+
@node.process_deferred
|
373
374
|
end
|
374
375
|
|
375
376
|
def verify_sequence message
|
@@ -419,7 +420,7 @@ module RSMP
|
|
419
420
|
close
|
420
421
|
message
|
421
422
|
ensure
|
422
|
-
node.clear_deferred
|
423
|
+
@node.clear_deferred
|
423
424
|
end
|
424
425
|
|
425
426
|
def process_message message
|
@@ -620,12 +621,8 @@ module RSMP
|
|
620
621
|
def version_acknowledged
|
621
622
|
end
|
622
623
|
|
623
|
-
def node
|
624
|
-
raise 'Must be overridden'
|
625
|
-
end
|
626
|
-
|
627
624
|
def author
|
628
|
-
node.site_id
|
625
|
+
@node.site_id
|
629
626
|
end
|
630
627
|
|
631
628
|
def send_and_optionally_collect message, options, &block
|
data/lib/rsmp/site_proxy.rb
CHANGED
@@ -8,7 +8,7 @@ module RSMP
|
|
8
8
|
attr_reader :supervisor_id, :site
|
9
9
|
|
10
10
|
def initialize options
|
11
|
-
super options
|
11
|
+
super options.merge(node:options[:site])
|
12
12
|
@site = options[:site]
|
13
13
|
@site_settings = @site.site_settings.clone
|
14
14
|
@ip = options[:ip]
|
@@ -18,10 +18,6 @@ module RSMP
|
|
18
18
|
@synthetic_id = Supervisor.build_id_from_ip_port @ip, @port
|
19
19
|
end
|
20
20
|
|
21
|
-
def node
|
22
|
-
site
|
23
|
-
end
|
24
|
-
|
25
21
|
# handle communication
|
26
22
|
# if disconnected, then try to reconnect
|
27
23
|
def run
|
data/lib/rsmp/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rsmp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.
|
4
|
+
version: 0.11.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Emil Tin
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-03-
|
11
|
+
date: 2022-03-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: async
|