Module: RSMP::Supervisor::Modules::Configuration
- Included in:
- RSMP::Supervisor
- Defined in:
- lib/rsmp/node/supervisor/modules/configuration.rb
Overview
Handles supervisor configuration and site settings
Instance Method Summary collapse
- #check_site_sxl_types ⇒ Object
- #handle_supervisor_settings(supervisor_settings) ⇒ Object
- #ip_to_site_settings(ip) ⇒ Object
- #site_id_to_site_setting(site_id) ⇒ Object
Instance Method Details
#check_site_sxl_types ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/rsmp/node/supervisor/modules/configuration.rb', line 13 def check_site_sxl_types sites = @supervisor_settings['sites'].clone || {} sites['default'] = @supervisor_settings['default'] sites.each do |site_id, settings| raise RSMP::ConfigurationError, "Configuration for site '#{site_id}' is empty" unless settings sxl = settings['sxl'] raise RSMP::ConfigurationError, "Configuration error for site '#{site_id}': No SXL specified" unless sxl RSMP::Schema.find_schemas! sxl if sxl rescue RSMP::Schema::UnknownSchemaError => e raise RSMP::ConfigurationError, "Configuration error for site '#{site_id}': #{e}" end end |
#handle_supervisor_settings(supervisor_settings) ⇒ Object
6 7 8 9 10 11 |
# File 'lib/rsmp/node/supervisor/modules/configuration.rb', line 6 def handle_supervisor_settings(supervisor_settings) = RSMP::Supervisor::Options.new(supervisor_settings || {}) @supervisor_settings = .to_h @core_version = @supervisor_settings.dig('default', 'core_version') check_site_sxl_types end |
#ip_to_site_settings(ip) ⇒ Object
39 40 41 |
# File 'lib/rsmp/node/supervisor/modules/configuration.rb', line 39 def ip_to_site_settings(ip) @supervisor_settings['sites'][ip] || @supervisor_settings['sites']['default'] end |
#site_id_to_site_setting(site_id) ⇒ Object
28 29 30 31 32 33 34 35 36 37 |
# File 'lib/rsmp/node/supervisor/modules/configuration.rb', line 28 def site_id_to_site_setting(site_id) base = @supervisor_settings['default'] || {} return base unless @supervisor_settings['sites'] site_specific = @supervisor_settings['sites'][site_id] || @supervisor_settings['sites']['default'] return base unless site_specific base.deep_merge(site_specific) end |