class Longleaf::ValidateConfigCommand
Command for validating an application configuration file
Public Class Methods
new(config_path)
click to toggle source
# File lib/longleaf/commands/validate_config_command.rb, line 9 def initialize(config_path) @config_path = config_path end
Public Instance Methods
execute()
click to toggle source
Execute the validate command on the specified configuration yml file
# File lib/longleaf/commands/validate_config_command.rb, line 14 def execute start_time = Time.now logger.info('Performing validate configuration command') begin app_config_manager = Longleaf::ApplicationConfigDeserializer.deserialize(@config_path) location_manager = app_config_manager.location_manager location_manager.locations.each do |name, location| location.available? end validate_services(app_config_manager.service_manager) record_success("Application configuration passed validation: #{@config_path}") rescue Longleaf::ConfigurationError, Longleaf::StorageLocationUnavailableError => err record_failure("Application configuration invalid due to the following issue(s):\n#{err.message}") rescue => err record_failure("Failed to validate application configuration", error: err) end logger.info("Completed validate configuration command in #{Time.now - start_time}s") return_status end
Private Instance Methods
validate_services(service_manager)
click to toggle source
Verify that all defined services are valid and may be instantiated with the given configuration, according to internal expectations. @raise ConfigurationError
if any services may not be instantiated
# File lib/longleaf/commands/validate_config_command.rb, line 42 def validate_services(service_manager) def_manager = service_manager.definition_manager def_manager.services.each do |service_name, service_def| begin service_manager.service(service_name) rescue => e raise ConfigurationError.new(e.message) end end end