Class: Hiera::Backend::Aws_backend

Inherits:
Object
  • Object
show all
Defined in:
lib/hiera/backend/aws_backend.rb

Overview

Hiera AWS backend

Instance Method Summary collapse

Constructor Details

#initializeAws_backend

rubocop:disable ClassAndModuleCamelCase



9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/hiera/backend/aws_backend.rb', line 9

def initialize
  begin
    require "aws-sdk"
  rescue LoadError
    require "rubygems"
    require "aws-sdk"
  end

  setup_aws_config

  Hiera.debug("AWS backend initialized")
end

Instance Method Details

#lookup(key, scope, order_override, resolution_type) ⇒ Object

rubocop:disable UnusedMethodArgument



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/hiera/backend/aws_backend.rb', line 22

def lookup(key, scope, order_override, resolution_type) # rubocop:disable UnusedMethodArgument
  answer = nil

  Hiera.debug("Looking up '#{key}' in AWS backend")

  Backend.datasources(scope, order_override) do |source|
    Hiera.debug("Looking for data source #{source}")

    service_class = find_service_class(source)
    next unless service_class

    value = service_class.lookup(key, scope)
    next if value.nil? || value.empty?

    answer = Backend.parse_answer(value, scope)
    break if answer
  end
  answer
end