rsmp 0.15.2 → 0.16.2

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