Class: RSMP::Validator::SupervisorTester
- Inherits:
-
Tester
- Object
- Tester
- RSMP::Validator::SupervisorTester
show all
- Defined in:
- lib/rsmp/validator/supervisor_tester.rb
Overview
Helper class for testing RSMP supervisors. Runs a local RSMP site inside an Async reactor.
Class Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Tester
#config, #connected, #disconnected, #isolated, #reconnected, sentinel_errors, #stop
Methods included from Log
#log
Class Attribute Details
.instance ⇒ Object
Returns the value of attribute instance.
11
12
13
|
# File 'lib/rsmp/validator/supervisor_tester.rb', line 11
def instance
@instance
end
|
Class Method Details
.connected(options = {}) ⇒ Object
13
14
15
|
# File 'lib/rsmp/validator/supervisor_tester.rb', line 13
def connected(options = {}, &)
instance.connected(options, &)
end
|
.disconnected ⇒ Object
21
22
23
|
# File 'lib/rsmp/validator/supervisor_tester.rb', line 21
def disconnected(&)
instance.disconnected(&)
end
|
.isolated(options = {}) ⇒ Object
25
26
27
|
# File 'lib/rsmp/validator/supervisor_tester.rb', line 25
def isolated(options = {}, &)
instance.isolated(options, &)
end
|
.reconnected(options = {}) ⇒ Object
17
18
19
|
# File 'lib/rsmp/validator/supervisor_tester.rb', line 17
def reconnected(options = {}, &)
instance.reconnected(options, &)
end
|
Instance Method Details
#build_node(options) ⇒ Object
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/rsmp/validator/supervisor_tester.rb', line 35
def build_node(options)
klass = case @site_config['type']
when 'tlc'
RSMP::TLC::TrafficControllerSite
else
RSMP::Site
end
site_settings = ConfigNormalizer.normalize_site_settings(@site_config.deep_merge(options))
logger = create_site_logger(@site_config)
@site = klass.new(
site_settings: site_settings,
logger: logger,
collect: options['collect']
)
end
|
#create_site_logger(site_config) ⇒ Object
65
66
67
68
69
70
71
72
73
|
# File 'lib/rsmp/validator/supervisor_tester.rb', line 65
def create_site_logger(site_config)
log_settings = site_config.is_a?(Hash) ? site_config['log'] : nil
logger_settings = RSMP::Validator.node_log_settings.merge('prefix' => '[TLC] ')
return RSMP::Logger.new(logger_settings) unless log_settings && !log_settings.empty?
logger_settings.merge!(log_settings)
logger_settings.delete('stream') if log_settings['path']
RSMP::Logger.new(logger_settings)
end
|
#parse_config ⇒ Object
30
31
32
33
|
# File 'lib/rsmp/validator/supervisor_tester.rb', line 30
def parse_config
@site_config = config['local_site']
raise "config 'local_site' is missing" unless @site_config
end
|
#wait_for_connection ⇒ Object
51
52
53
54
55
56
57
|
# File 'lib/rsmp/validator/supervisor_tester.rb', line 51
def wait_for_connection
log 'Waiting for connection to supervisor'
@proxy = @node.find_supervisor :any
@proxy.wait_for_state %i[connected ready], timeout: config['timeouts']['connect']
rescue RSMP::TimeoutError
raise RSMP::ConnectionError, "Could not connect to supervisor within #{config['timeouts']['connect']}s"
end
|
#wait_for_handshake ⇒ Object
59
60
61
62
63
|
# File 'lib/rsmp/validator/supervisor_tester.rb', line 59
def wait_for_handshake
@proxy.wait_for_state :ready, timeout: config['timeouts']['ready']
rescue RSMP::TimeoutError
raise RSMP::ConnectionError, "Handshake didn't complete within #{config['timeouts']['ready']}s"
end
|