0

私はしばらくこのことを試していますが、何が間違っているのかわかりません。サンプル関数は次のとおりです (元の関数で動的に生成されるハッシュを除いて、元の関数と似ています)。

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 は事実であり、ノードの種類に基づいてwinmacまたはlinuxを返します)

JaguarまたはSlackwareが戻り値として表示されることを期待していましたが、代わりに undefined が返されます。誰かが私が間違っていることを知っていますか? 引数を関数に渡すという点でまだ足りないものはありますか? 乾杯!!

4

1 に答える 1