私はしばらくこのことを試していますが、何が間違っているのかわかりません。サンプル関数は次のとおりです (元の関数で動的に生成されるハッシュを除いて、元の関数と似ています)。
module Puppet::Parser::Functions
newfunction(:am_running_oss, :type => :rvalue ) do |args|
oss = {:linux=>["Slackware", "RedHat", "Caldera"],
:mac=>["Jaguar", "Lion", "Tiger", "Kodiak"],
:win=>["Chicago", "Daytona", "Longhorn"]}
cls = args[0]
if oss.key?(cls)
return oss[cls][0]
else
return 'undefined'
end
end
end
そして、私のマニフェストには、これがあります:
$h= am_running_oss($::am_os_type)
notify { "=*=*= amRunningOS <|:|> ${h} =*=*=*=*=*=*=*=": }
( am_os_type は事実であり、ノードの種類に基づいてwin、macまたはlinuxを返します)
JaguarまたはSlackwareが戻り値として表示されることを期待していましたが、代わりに undefined が返されます。誰かが私が間違っていることを知っていますか? 引数を関数に渡すという点でまだ足りないものはありますか? 乾杯!!