rsmp 0.15.2 → 0.16.2

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: 0cd9ae260f3226f42fd5d0e2aafbd2daefaebebe7a13863ac9a809609cf78935
4
- data.tar.gz: 772ad76e47e4470b15d1245634e9dc6c477b20e41d746f258855a48230340f10
3
+ metadata.gz: 3e3b96502eec33d2827725a3820daf3b691c1fbb89919598c5c0193e25d5c320
4
+ data.tar.gz: 81ed13b87cbb060a3ca3d8006334a63d85633117356c02659c375ec0c63daaef
5
5
  SHA512:
6
- metadata.gz: 0f9c480ba0ba82548ca0aa639281f7a44a7489ed096087505a1887f328bf818e83e4549b7fbe0099e83a731cc316d736d64b63b925ad993ac428ad3346990fab
7
- data.tar.gz: 892f11941e75f9517b975e1d16202a48046c902febbc89d1c4463c98abe1dccb0416d2425b11af2fa771d967ce173933b476410430da22d405abd35af96031fb
6
+ metadata.gz: a6d131786b413cb91286f5d61c130071e95fe962bd3c7569205af57927d2409362205c39ab529cf5dc5b3f34a8c4057068da1b9f206cd5b6b97c93b7abc13094
7
+ data.tar.gz: 4c4419b251ef446a5a75b0acc098e51534ae3c0080e2ae4e9a1dc5a872c87696e29a491f89a75ce0245eb20a40e0fda5183e693e45a5bfe04bee944a7edac479
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rsmp (0.15.2)
4
+ rsmp (0.16.2)
5
5
  async (~> 1.30.3)
6
6
  async-io (~> 1.33.0)
7
7
  colorize (~> 0.8.1)
data/config/tlc.yaml CHANGED
@@ -2,6 +2,7 @@ site_id: RN+SI0001
2
2
  supervisors:
3
3
  - ip: 127.0.0.1
4
4
  port: 12111
5
+ rsmp_versions: '3.2'
5
6
  sxl: tlc
6
7
  sxl_version: '1.1'
7
8
  components:
data/lib/rsmp/proxy.rb CHANGED
@@ -13,7 +13,7 @@ module RSMP
13
13
  include Inspect
14
14
  include Task
15
15
 
16
- attr_reader :state, :archive, :connection_info, :sxl, :collector, :ip, :port, :node
16
+ attr_reader :state, :archive, :connection_info, :sxl, :collector, :ip, :port, :node, :rsmp_version
17
17
 
18
18
  def initialize options
19
19
  @node = options[:node]
@@ -28,6 +28,7 @@ module RSMP
28
28
  def disconnect
29
29
  end
30
30
 
31
+
31
32
  # wait for the reader task to complete,
32
33
  # which is not expected to happen before the connection is closed
33
34
  def wait_for_reader
@@ -314,12 +315,9 @@ module RSMP
314
315
  end
315
316
 
316
317
  def get_schemas
317
- # normally we have an sxl, but during connection, it hasn't been established yet
318
- # at these times we only validate against the core schema
319
- # TODO
320
- # what schema should we use to validate the initial Version and MessageAck messages?
321
318
  schemas = { core: RSMP::Schema.latest_core_version } # use latest core
322
- schemas[sxl] = RSMP::Schema.sanitize_version(sxl_version) if sxl && sxl_version
319
+ schemas[:core] = rsmp_versions.last if rsmp_versions
320
+ schemas[sxl] = RSMP::Schema.sanitize_version(sxl_version.to_s) if sxl && sxl_version
323
321
  schemas
324
322
  end
325
323
 
@@ -460,7 +458,7 @@ module RSMP
460
458
  def rsmp_versions
461
459
  return [RSMP::Schema.latest_core_version] if @site_settings["rsmp_versions"] == 'latest'
462
460
  return RSMP::Schema.core_versions if @site_settings["rsmp_versions"] == 'all'
463
- @site_settings["rsmp_versions"]
461
+ [@site_settings["rsmp_versions"]].flatten
464
462
  end
465
463
 
466
464
  def check_rsmp_version message
data/lib/rsmp/site.rb CHANGED
@@ -18,6 +18,10 @@ module RSMP
18
18
  build_proxies
19
19
  end
20
20
 
21
+ def sxl_version
22
+ @site_settings['sxl_version']
23
+ end
24
+
21
25
  def site_id
22
26
  @site_settings['site_id']
23
27
  end
@@ -59,7 +63,7 @@ module RSMP
59
63
 
60
64
  def check_sxl_version
61
65
  sxl = @site_settings['sxl']
62
- version = @site_settings['sxl_version']
66
+ version = @site_settings['sxl_version'].to_s
63
67
  RSMP::Schema::find_schema! sxl, version, lenient: true
64
68
  end
65
69
 
@@ -48,7 +48,7 @@ module RSMP
48
48
  def handshake_complete
49
49
  super
50
50
  sanitized_sxl_version = RSMP::Schema.sanitize_version(@site_sxl_version)
51
- log "Connection to site #{@site_id} established, using core #{@rsmp_version}, #{@sxl} #{sanitized_sxl_version}", level: :log
51
+ log "Connection to site #{@site_id} established, using core #{@rsmp_version}, #{@sxl} #{sanitized_sxl_version}", level: :info
52
52
  start_watchdog
53
53
  end
54
54
 
@@ -308,11 +308,10 @@ module RSMP
308
308
  end
309
309
 
310
310
  def check_sxl_version message
311
-
312
311
  # check that we have a schema for specified sxl type and version
313
312
  # note that the type comes from the site config, while the version
314
313
  # comes from the Version message send by the site
315
- type = 'tlc'
314
+ type = @site_settings['sxl']
316
315
  version = message.attribute 'SXL'
317
316
  RSMP::Schema::find_schema! type, version, lenient: true
318
317
 
@@ -332,7 +331,6 @@ module RSMP
332
331
  def process_version message
333
332
  return extraneous_version message if @version_determined
334
333
  check_site_ids message
335
- check_rsmp_version message
336
334
  check_sxl_version message
337
335
  version_accepted message
338
336
  end
@@ -341,8 +339,6 @@ module RSMP
341
339
  # RSMP support multiple site ids. we don't support this yet. instead we use the first id only
342
340
  site_id = message.attribute("siteId").map { |item| item["sId"] }.first
343
341
  @supervisor.check_site_id site_id
344
- @site_id = site_id
345
- setup_site_settings
346
342
  site_ids_changed
347
343
  end
348
344
 
@@ -138,8 +138,7 @@ module RSMP
138
138
  def peek_version_message protocol
139
139
  json = protocol.peek_line
140
140
  attributes = Message.parse_attributes json
141
- message = Message.build attributes, json
142
- message.attribute('siteId').first['sId']
141
+ Message.build attributes, json
143
142
  end
144
143
 
145
144
  # accept an incoming connecting by creating and starting a proxy
@@ -169,7 +168,9 @@ module RSMP
169
168
  archive: @archive
170
169
  }
171
170
 
172
- id = peek_version_message protocol
171
+ version_message = peek_version_message protocol
172
+ id = version_message.attribute('siteId').first['sId']
173
+
173
174
  proxy = find_site id
174
175
  if proxy
175
176
  if proxy.connected?
@@ -182,6 +183,11 @@ module RSMP
182
183
  proxy = build_proxy settings.merge(site_id:id) # keep the id learned by peeking above
183
184
  @proxies.push proxy
184
185
  end
186
+
187
+ proxy.setup_site_settings
188
+ proxy.check_rsmp_version version_message
189
+ log "Validating using core version #{proxy.rsmp_version}", level: :debug
190
+
185
191
  proxy.start # will run until the site disconnects
186
192
  proxy.wait
187
193
  ensure
@@ -84,6 +84,7 @@ module RSMP
84
84
  def handshake_complete
85
85
  sanitized_sxl_version = RSMP::Schema.sanitize_version(sxl_version)
86
86
  log "Connection to supervisor established, using core #{@rsmp_version}, #{sxl} #{sanitized_sxl_version}", level: :info
87
+ set_state :ready
87
88
  start_watchdog
88
89
  if @site_settings['send_after_connect']
89
90
  send_all_aggregated_status
data/lib/rsmp/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module RSMP
2
- VERSION = "0.15.2"
2
+ VERSION = "0.16.2"
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.15.2
4
+ version: 0.16.2
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-09-02 00:00:00.000000000 Z
11
+ date: 2022-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: async