Привет, ЛОРчик!
Подскажи, что я делаю не так, пожалуйста. Написал функцию, которая должна на ноде чекать содержимое файла и возвращать результат в зависимости от.
Puppet::Functions.create_function(:'check') do
dispatch :isin do
param 'String', :path_string
param 'String', :check_string
return_type 'Boolean'
end
def isin(path_string, check_string)
if File.readlines("/etc/default/grub").each do | line |
return true if line.include?("ipv6")
end
return false
end
end
end
Функция работает и действительно возвращает верный результат в зависимости от того, есть ли что нибудь про ipv6 в файле или нет.
Затем в модуле описываю логику так
class m_grub {
include stdlib
$grub_path="/etc/default/grub"
$res = Deferred("check",['/etc/default/grub','ipv6'])
notify { 'TEST RES':
message => Deferred(
'sprintf',
['Result is : %s', $res]
),
}
if $res == 'true' {
notify { 'TRUE': }
} elsif $res == 'false' {
notify { 'FALSE': }
}
}
Проблема в том, что возвращается true, а ни одна нотифайка не выполняется. Причем, если вручную назначать $res = ‘true’ или ‘false’, то всё работает, как положено.
Подскажи, лорчик, гдле ошибка?
Заранее высылаю бандероль с квантами успеха.
Перемещено hobbit из general