rsmp 0.17.3 → 0.18.0
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 +2 -2
- data/lib/rsmp/alarm_state.rb +7 -0
- data/lib/rsmp/component.rb +10 -0
- data/lib/rsmp/site.rb +5 -0
- data/lib/rsmp/supervisor_proxy.rb +15 -2
- 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: 617db976cf78abbb1d4bbae2e31ba58863d21f9ef9df8f912cf84eb093a6de7d
|
4
|
+
data.tar.gz: 056310e524601423385b17156276ff1dac127594106db24832b8368134a8c843
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c73d30a792e3b00c99f695ac4a686aa8b67b627b184a0abcc5c14d6f2c2495755490b581de792774e58fb524d82e30bb51a32eb6aa570be2484bba26f682437a
|
7
|
+
data.tar.gz: 350ae202e67dd8f51ce478321af030d578b9134bdb659510740e9ab48a9aaa549a528e1c223717af8f21044e9d5aa08fe59a8bc8f08871b2059fa72bc4bf8738
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
rsmp (0.
|
4
|
+
rsmp (0.18.0)
|
5
5
|
async (~> 1.30.3)
|
6
6
|
async-io (~> 1.33.0)
|
7
7
|
colorize (~> 0.8.1)
|
@@ -79,7 +79,7 @@ GEM
|
|
79
79
|
multi_test (0.1.2)
|
80
80
|
nio4r (2.5.9)
|
81
81
|
rake (13.0.6)
|
82
|
-
regexp_parser (2.
|
82
|
+
regexp_parser (2.8.0)
|
83
83
|
rsmp_schema (0.4.0)
|
84
84
|
json_schemer (~> 0.2.21)
|
85
85
|
thor (~> 1.2.1)
|
data/lib/rsmp/alarm_state.rb
CHANGED
data/lib/rsmp/component.rb
CHANGED
@@ -13,6 +13,16 @@ module RSMP
|
|
13
13
|
raise UnknownStatus.new "Status #{status_code}/#{status_name} not implemented by #{self.class}"
|
14
14
|
end
|
15
15
|
|
16
|
+
def acknowledge_alarm alarm_code
|
17
|
+
alarm = get_alarm_state alarm_code
|
18
|
+
if alarm.acknowledge
|
19
|
+
log "Acknowledging alarm #{alarm_code}", level: :info
|
20
|
+
@node.alarm_acknowledged alarm
|
21
|
+
else
|
22
|
+
log "Alarm #{alarm_code} already acknowledged", level: :info
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
16
26
|
def suspend_alarm alarm_code
|
17
27
|
alarm = get_alarm_state alarm_code
|
18
28
|
if alarm.suspend
|
data/lib/rsmp/site.rb
CHANGED
@@ -96,6 +96,11 @@ module RSMP
|
|
96
96
|
end
|
97
97
|
end
|
98
98
|
|
99
|
+
def alarm_acknowledged alarm_state
|
100
|
+
alarm = AlarmIssue.new( alarm_state.to_hash.merge('aSp' => 'Issue') )
|
101
|
+
send_alarm alarm
|
102
|
+
end
|
103
|
+
|
99
104
|
def alarm_suspended_or_resumed alarm_state
|
100
105
|
alarm = AlarmIssue.new( alarm_state.to_hash.merge('aSp' => 'Suspend') )
|
101
106
|
send_alarm alarm
|
@@ -70,10 +70,13 @@ module RSMP
|
|
70
70
|
# Async::IO::Endpoint#connect renames the current task. run in a subtask to avoid this see issue #22
|
71
71
|
@task.async do |task|
|
72
72
|
task.annotate 'socket task'
|
73
|
-
# this timeout is a workaround for
|
74
|
-
|
73
|
+
# this timeout is a workaround for connect hanging on windows if the other side is not present yet
|
74
|
+
timeout = @site_settings.dig('timeouts','connect') || 1.1
|
75
|
+
task.with_timeout timeout do
|
75
76
|
@socket = @endpoint.connect
|
76
77
|
end
|
78
|
+
delay = @site_settings.dig('intervals','after_connect')
|
79
|
+
task.sleep delay if delay
|
77
80
|
end.wait
|
78
81
|
|
79
82
|
@stream = Async::IO::Stream.new(@socket)
|
@@ -207,6 +210,16 @@ module RSMP
|
|
207
210
|
end
|
208
211
|
end
|
209
212
|
|
213
|
+
# handle incoming alarm acknowledge
|
214
|
+
def handle_alarm_acknowledge message
|
215
|
+
component_id = message.attributes["cId"]
|
216
|
+
component = @site.find_component component_id
|
217
|
+
alarm_code = message.attribute("aCId")
|
218
|
+
log "Received #{message.type} #{alarm_code} acknowledgement", message: message, level: :log
|
219
|
+
acknowledge message
|
220
|
+
component.acknowledge_alarm alarm_code
|
221
|
+
end
|
222
|
+
|
210
223
|
# handle incoming alarm suspend
|
211
224
|
def handle_alarm_suspend message
|
212
225
|
component_id = message.attributes["cId"]
|
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.18.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Emil Tin
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-04-
|
11
|
+
date: 2023-04-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: async
|