Class: Legion::Service
- Inherits:
-
Object
- Object
- Legion::Service
- Defined in:
- lib/legion/service.rb
Instance Method Summary collapse
-
#initialize(transport: true, cache: true, data: true, supervision: true, extensions: true, crypt: true, log_level: 'info') ⇒ Service
constructor
rubocop:disable Metrics/ParameterLists.
- #load_extensions ⇒ Object
- #modules ⇒ Object
- #setup_data ⇒ Object
- #setup_logging(log_level: 'info', **_opts) ⇒ Object
- #setup_settings ⇒ Object
- #setup_supervision ⇒ Object
- #setup_transport ⇒ Object
- #shutdown ⇒ Object
Constructor Details
#initialize(transport: true, cache: true, data: true, supervision: true, extensions: true, crypt: true, log_level: 'info') ⇒ Service
rubocop:disable Metrics/ParameterLists
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/legion/service.rb', line 7 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: log_level) Legion::Logging.debug('Starting Legion::Service') setup_settings Legion::Logging.info("node name: #{Legion::Settings[:client][:name]}") if crypt require 'legion/crypt' Legion::Crypt.start end setup_transport if transport require 'legion/cache' if cache setup_data if data setup_supervision if supervision require 'legion/runner' load_extensions if extensions Legion::Crypt.cs if crypt Legion::Settings[:client][:ready] = true end |
Instance Method Details
#load_extensions ⇒ Object
73 74 75 76 |
# File 'lib/legion/service.rb', line 73 def load_extensions require 'legion/runner' Legion::Extensions.hook_extensions end |
#modules ⇒ Object
3 4 5 |
# File 'lib/legion/service.rb', line 3 def modules [Legion::Crypt, Legion::Transport, Legion::Cache, Legion::Data, Legion::Supervision].freeze end |
#setup_data ⇒ Object
32 33 34 35 36 |
# File 'lib/legion/service.rb', line 32 def setup_data require 'legion/data' Legion::Settings.merge_settings(:data, Legion::Data::Settings.default) Legion::Data.setup end |
#setup_logging(log_level: 'info', **_opts) ⇒ Object
45 46 47 48 |
# File 'lib/legion/service.rb', line 45 def setup_logging(log_level: 'info', **_opts) require 'legion/logging' Legion::Logging.setup(log_level: log_level, level: log_level, trace: true) end |
#setup_settings ⇒ Object
38 39 40 41 42 43 |
# File 'lib/legion/service.rb', line 38 def setup_settings require 'legion/settings' Legion::Logging.debug('Loading Legion::Settings') Legion::Settings.load(config_dir: './settings') Legion::Logging.info('Legion::Settings Loaded') end |
#setup_supervision ⇒ Object
56 57 58 59 |
# File 'lib/legion/service.rb', line 56 def setup_supervision require 'legion/supervision' @supervision = Legion::Supervision.setup end |
#setup_transport ⇒ Object
50 51 52 53 54 |
# File 'lib/legion/service.rb', line 50 def setup_transport require 'legion/transport' Legion::Settings.merge_settings('transport', Legion::Transport::Settings.default) Legion::Transport::Connection.setup end |
#shutdown ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/legion/service.rb', line 61 def shutdown Legion::Logging.info('Legion::Service.shutdown was called') @shutdown = true Legion::Settings[:client][:shutting_down] = true sleep(1) Legion::Extensions.shutdown Legion::Data.shutdown Legion::Cache.shutdown Legion::Transport::Connection.shutdown Legion::Crypt.shutdown end |