lib/legion/service.rb in legionio-0.2.0 vs lib/legion/service.rb in legionio-0.3.0
- old
+ new
@@ -1,38 +1,36 @@
-# frozen_string_literal: true
-
module Legion
class Service
def modules
[Legion::Crypt, Legion::Transport, Legion::Cache, Legion::Data, Legion::Supervision].freeze
end
def initialize(transport: true, cache: true, data: true, supervision: true, extensions: true, crypt: true, log_level: 'info') # rubocop:disable Metrics/ParameterLists
- setup_logging(log_level)
+ setup_logging(log_level: log_level)
Legion::Logging.debug('Starting Legion::Service')
setup_settings
- Legion::Logging.info "node name: #{Legion::Settings[:client][:name]}"
+ Legion::Logging.info("node name: #{Legion::Settings[:client][:name]}")
- require 'legion/crypt' if crypt
- Legion::Crypt.start if crypt
+ if crypt
+ require 'legion/crypt'
+ Legion::Crypt.start
+ end
+
setup_transport if transport
- setup_cache if cache
+
+ require 'legion/cache' if cache
+
setup_data if data
+
setup_supervision if supervision
require 'legion/runner'
-
load_extensions if extensions
- Legion::Crypt.setup_safe if crypt
+ Legion::Crypt.cs if crypt
Legion::Settings[:client][:ready] = true
end
- def setup_cache
- require 'legion/cache'
- Legion::Cache.setup
- end
-
def setup_data
require 'legion/data'
Legion::Settings.merge_settings(:data, Legion::Data::Settings.default)
Legion::Data.setup
end
@@ -42,31 +40,31 @@
Legion::Logging.debug('Loading Legion::Settings')
Legion::Settings.load(config_dir: './settings')
Legion::Logging.info('Legion::Settings Loaded')
end
- def setup_logging(_log_level = 'info')
+ def setup_logging(log_level: 'info', **_opts)
require 'legion/logging'
- Legion::Logging.setup(level: 'info', trace: true)
+ Legion::Logging.setup(log_level: log_level, level: log_level, trace: true)
end
def setup_transport
require 'legion/transport'
- Legion::Settings.merge_settings(:transport, Legion::Transport::Settings.default)
+ Legion::Settings.merge_settings('transport', Legion::Transport::Settings.default)
Legion::Transport::Connection.setup
end
def setup_supervision
- require_relative('supervison')
+ require 'legion/supervision'
@supervision = Legion::Supervision.setup
end
def shutdown
Legion::Logging.info('Legion::Service.shutdown was called')
@shutdown = true
+ Legion::Settings[:client][:shutting_down] = true
+ sleep(1)
Legion::Extensions.shutdown
-
- sleep(0.2)
Legion::Data.shutdown
Legion::Cache.shutdown
Legion::Transport::Connection.shutdown
Legion::Crypt.shutdown
end