class ConfigureSemian::SemianConfiguration::SemianParameters
Singleton Object associated with Semian Configuration that has various specifications for Semian initialization
Constants
- SEMIAN_PARAMETERS
Attributes
app_server[RW]
free_hosts[RW]
service_configs[RW]
service_name[RW]
track_exceptions[RW]
Public Class Methods
new()
click to toggle source
# File lib/configure_semian/semian_configuration.rb, line 23 def initialize @app_server = false @service_configs = {} @free_hosts = [] @track_exceptions = [] @service_name = nil end
Public Instance Methods
app_server=(value)
click to toggle source
Passed true only for app server so that bulkheading is disabled in worker servers
# File lib/configure_semian/semian_configuration.rb, line 32 def app_server=value @app_server = value end
choose_configs_for_given_server()
click to toggle source
Overriding specifications for nonapp server
# File lib/configure_semian/semian_configuration.rb, line 68 def choose_configs_for_given_server if self.app_server self.service_configs.delete(:worker) else self.service_configs = self.service_configs[:worker] || {} end end
generate_specifications()
click to toggle source
initial computations
# File lib/configure_semian/semian_configuration.rb, line 47 def generate_specifications # Define exceptions to be tracked by Semian Semian::NetHTTP.exceptions |= self.track_exceptions # Create the complete host,path driven semian options semian_default = SEMIAN_PARAMETERS[:semian_default].with_indifferent_access semian_default[:bulkhead] = self.app_server || false choose_configs_for_given_server service_default = semian_default.merge(self.service_configs.delete(:default) || {}) service_default.delete(:quota) if !service_default[:tickets].nil? self.service_configs.each do |host, specs| host_default = service_default.merge(specs.delete(:default) || {}) host_default.delete(:quota) if !host_default[:tickets].nil? specs.each do |path, path_specs| self.service_configs[host][path] = host_default.merge(path_specs || {}) end self.service_configs[host][:default] = host_default end self.service_configs.merge!({semian_default: semian_default, default: service_default}) end
service_configs=(value)
click to toggle source
semian options alongwith the ones defined by the service
# File lib/configure_semian/semian_configuration.rb, line 37 def service_configs=value @service_configs = value.with_indifferent_access end
track_exceptions=(value)
click to toggle source
exceptions to be tracked defined by the service
# File lib/configure_semian/semian_configuration.rb, line 42 def track_exceptions=value self.track_exceptions |= value end