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 +4 -4
- data/Gemfile.lock +1 -1
- data/config/tlc.yaml +1 -0
- data/lib/rsmp/proxy.rb +5 -7
- data/lib/rsmp/site.rb +5 -1
- data/lib/rsmp/site_proxy.rb +2 -6
- data/lib/rsmp/supervisor.rb +9 -3
- data/lib/rsmp/supervisor_proxy.rb +1 -0
- data/lib/rsmp/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3e3b96502eec33d2827725a3820daf3b691c1fbb89919598c5c0193e25d5c320
|
4
|
+
data.tar.gz: 81ed13b87cbb060a3ca3d8006334a63d85633117356c02659c375ec0c63daaef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a6d131786b413cb91286f5d61c130071e95fe962bd3c7569205af57927d2409362205c39ab529cf5dc5b3f34a8c4057068da1b9f206cd5b6b97c93b7abc13094
|
7
|
+
data.tar.gz: 4c4419b251ef446a5a75b0acc098e51534ae3c0080e2ae4e9a1dc5a872c87696e29a491f89a75ce0245eb20a40e0fda5183e693e45a5bfe04bee944a7edac479
|
data/Gemfile.lock
CHANGED
data/config/tlc.yaml
CHANGED
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[
|
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
|
|
data/lib/rsmp/site_proxy.rb
CHANGED
@@ -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: :
|
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 = '
|
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
|
|
data/lib/rsmp/supervisor.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
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
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.
|
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-
|
11
|
+
date: 2022-09-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: async
|