Уведомить модуль, чтобы восстановить факты из запуска кукол - PullRequest
0 голосов
/ 19 октября 2018

Предположим, у меня есть модуль в марионетке, который создает пользовательские факты.Но для этого требуется установить пакет package_a.В зависимости от того, есть этот пакет или нет, он решит сгенерировать факты.

Этот пакет устанавливается как часть запуска марионетки в профиле.Поэтому изначально факты не будут сгенерированы из модуля.

После установки пакета, который используется для генерации пользовательских фактов, есть ли способ уведомить марионетку о сборе этих фактов, чтобы ее можно было использовать в следующиханкеты?

Модуль, который добавляет пользовательские факты:

Facter.add(:custom_facts) do
  confine do
    exists = Facter::Core::Execution.which('package_a') != nil
    Puppet.debug "Testing custom_facts fact applicable? #{exists.inspect}"
    true
  end

  setcode do
    to_ret = {}
    result = JSON.parse(Facter::Core::Execution.execute('package_a some command'))
    Puppet.debug "Facts returned by command: #{result.inspect}"
    result.each do |key,value|
      to_ret[key]={
        'value'   => value['value'],
      }
    end
    to_ret
  end
end
...