rsmp 0.11.2 → 0.11.5
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/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
|