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 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