Class: Voxpupuli::Acceptance::Facts

Inherits:
Object
  • Object
show all
Defined in:
lib/voxpupuli/acceptance/facts.rb

Constant Summary collapse

ENV_VAR_PREFIX =
'BEAKER_FACTER_'
FACT_FILE =
'/etc/facter/facts.d/voxpupuli-acceptance-env.json'

Class Method Summary collapse

Class Method Details

.beaker_facts_from_envObject



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/voxpupuli/acceptance/facts.rb', line 8

def beaker_facts_from_env
  facts = {}

  ENV.each do |var, value|
    next unless var.start_with?(ENV_VAR_PREFIX)

    fact = var.sub(ENV_VAR_PREFIX, '').downcase
    facts[fact] = value
  end

  facts
end

.write_beaker_facts_on(hosts) ⇒ Object



21
22
23
24
25
26
27
28
29
30
# File 'lib/voxpupuli/acceptance/facts.rb', line 21

def write_beaker_facts_on(hosts)
  beaker_facts = beaker_facts_from_env

  if beaker_facts.any?
    require 'json'
    on(hosts, "mkdir -p #{File.dirname(FACT_FILE)} && cat <<VOXPUPULI_BEAKER_ENV_VARS > #{FACT_FILE}\n#{beaker_facts.to_json}\nVOXPUPULI_BEAKER_ENV_VARS")
  else
    on(hosts, "rm -f #{FACT_FILE}")
  end
end