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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1e0f394a4f97656f2ace6156c775c7af4f35ae4023c6bd5c9ad2fd55eca06e3a
4
- data.tar.gz: b5e75bf4cb30280fa51e08ee8c42507a7239dc6f7bff57fd0c6f679ca44652b8
3
+ metadata.gz: 5e36c6f5f96850c9ad1a07ab856efc1e094deafee596074a611a08a2535f57ec
4
+ data.tar.gz: efedbe0726d80f1fff7e3d37fa171fa1afe1df1705cf50e142eee0667c6e8dff
5
5
  SHA512:
6
- metadata.gz: 9b8a16e7119b579f81a49d444ae3b2ee0393659eb0dbd84a5f24d4d498b31cf51e0ea355990af5618081c779e41d8c7d33aecb2778f6af2d242de1ee48569050
7
- data.tar.gz: 71118e681ee613fecfb5133ec2532813abaa9026d42dd7c58ad5363acbc040cc67d14b899b6a0ab2a6907166967f5125c2d5584ed01d57a3bcaec0a9e1068337
6
+ metadata.gz: 6f4362c8689573a0c7ce8e91ea079c0ce06a6b8d73bc27ce964d781dd64ee53b92c271a7ba41f31e89af62475adf341ae2a5b6682418758d3558930e72c037d3
7
+ data.tar.gz: 9f595995ec7247fdfb2e782e235c83adb475b1db85c8834aa434a42b5bc5e1ca6f4ae8e71233473bcee21b7c722b8f5a4862a8531098f793f629e7832b0eda3c
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rsmp (0.11.2)
4
+ rsmp (0.11.5)
5
5
  async (~> 1.29.1)
6
6
  async-io (~> 1.32.2)
7
7
  colorize (~> 0.8.1)
@@ -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]} #{@options[:type]}s"
290
+ "#{@options[:num]} #{describe_types}s"
286
291
  else
287
- @options[:type]
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
- want = @queries.map {|query| "#{query.want}" }
123
- "#{super} with #{want.join(', ')}"
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
- got = @queries.select {|query| query.done? == true }.map {|query| "#{query.got}" }
132
- need = @queries.select {|query| query.done? == false }.map {|query| "#{query.want}" }
133
- str = "Matched #{num_matched} of #{num_queries}".colorize(:red)
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
@@ -7,7 +7,7 @@ module RSMP
7
7
  attr_reader :supervisor, :site_id
8
8
 
9
9
  def initialize options
10
- super options
10
+ super options.merge(node:options[:supervisor])
11
11
  initialize_components
12
12
  @supervisor = options[:supervisor]
13
13
  @settings = @supervisor.supervisor_settings.clone
@@ -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
@@ -1,3 +1,3 @@
1
1
  module RSMP
2
- VERSION = "0.11.2"
2
+ VERSION = "0.11.5"
3
3
  end
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.2
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-21 00:00:00.000000000 Z
11
+ date: 2022-03-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: async