rsmp 0.15.2 → 0.16.0

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: 0cd9ae260f3226f42fd5d0e2aafbd2daefaebebe7a13863ac9a809609cf78935
4
- data.tar.gz: 772ad76e47e4470b15d1245634e9dc6c477b20e41d746f258855a48230340f10
3
+ metadata.gz: 15537491c95e5c0fc89514111d9947409bd4222b566d69df7376f545b96629a0
4
+ data.tar.gz: 70399d65fd90a7f0db1bdc75003a3cac47d57052190b55cc6a9a39d119451c6d
5
5
  SHA512:
6
- metadata.gz: 0f9c480ba0ba82548ca0aa639281f7a44a7489ed096087505a1887f328bf818e83e4549b7fbe0099e83a731cc316d736d64b63b925ad993ac428ad3346990fab
7
- data.tar.gz: 892f11941e75f9517b975e1d16202a48046c902febbc89d1c4463c98abe1dccb0416d2425b11af2fa771d967ce173933b476410430da22d405abd35af96031fb
6
+ metadata.gz: a44a9c93dbfb105de6620a9c42e97ad90b5a32f284f0fc38e25e47c4dff177dc60d3b5fad83812cba585fe4c1b7504afee2fa658ab24f7159dbcef99f897b8f4
7
+ data.tar.gz: cc77592ac84a15959438786227a602d6f81c82e4b401c48310f50440f53d72270b77f44a439b3ba2fb08ce22087375a486db8ddb71e8639b73360e3a005021e8
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.0)
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
@@ -59,7 +59,7 @@ module RSMP
59
59
 
60
60
  def check_sxl_version
61
61
  sxl = @site_settings['sxl']
62
- version = @site_settings['sxl_version']
62
+ version = @site_settings['sxl_version'].to_s
63
63
  RSMP::Schema::find_schema! sxl, version, lenient: true
64
64
  end
65
65
 
@@ -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
data/lib/rsmp/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module RSMP
2
- VERSION = "0.15.2"
2
+ VERSION = "0.16.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
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.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Emil Tin