Class: Longleaf::StorageLocationValidator

Inherits:
ConfigurationValidator show all
Defined in:
lib/longleaf/services/storage_location_validator.rb

Overview

Validates application configuration of storage locations

Class Method Summary collapse

Class Method Details

.validate_config(config) ⇒ Object

Validates configuration to ensure that it is syntactically correct and does not violate schema and uniqueness requirements.

Parameters:

  • config (Hash)

    hash containing the application configuration



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/longleaf/services/storage_location_validator.rb', line 16

def self.validate_config(config)
  assert("Configuration must be a hash, but a #{config.class} was provided", config.class == Hash)
  assert("Configuration must contain a root '#{AF::LOCATIONS}' key", config.key?(AF::LOCATIONS))
  locations = config[AF::LOCATIONS]
  assert("'#{AF::LOCATIONS}' must be a hash of locations", locations.class == Hash)

  existing_paths = Array.new
  locations.each do |name, properties|
    assert("Name of storage location must be a string, but was of type #{name.class}", name.instance_of?(String))
    assert("Storage location '#{name}' must be a hash, but a #{properties.class} was provided", properties.is_a?(Hash))

    assert_path_property_valid(name, AF::LOCATION_PATH, properties, existing_paths)
    assert_path_property_valid(name, AF::METADATA_PATH, properties, existing_paths)
  end
end