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