Class: HieraSimulator::FactSource::FileSystem

Inherits:
Object
  • Object
show all
Defined in:
lib/hiera-simulator/fact_source/filesystem.rb

Overview

Retrieve facts from the file system. This object is a “connection” to those files.

Instance Method Summary collapse

Constructor Details

#initialize(config, override = {}) ⇒ FileSystem

Constructor

Parameters:

Raises:



10
11
12
13
# File 'lib/hiera-simulator/fact_source/filesystem.rb', line 10

def initialize(config, override = {})
  @fact_dir = override.fetch(:fact_dir, config.get('fact_dir', nil))
  raise HieraSimulator::FactSourceError, 'No fact_dir was found in hiera-simulator configuration' if @fact_dir.nil?
end

Instance Method Details

#facts(node) ⇒ Hash

Get facts for a node

Parameters:

  • node (String)

    Node FQDN as it should exist in PuppetDB

Returns:

  • (Hash)

    Facts from the node in question

Raises:



18
19
20
21
22
# File 'lib/hiera-simulator/fact_source/filesystem.rb', line 18

def facts(node)
  filepath = File.join(@fact_dir, node + '.yaml')
  return HieraSimulator::FactSource::Util.modify_and_load_yamlfile(filepath) if File.readable?(filepath)
  raise HieraSimulator::FactLookupError, "Fact retriever could not find or access #{filepath}"
end