我正在尝试这个东西一段时间,但无法弄清楚我做错了什么。这是示例函数(与原始函数类似,除了哈希是在原始函数中动态生成的):
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 。有谁知道我做错了什么?在将参数传递给函数方面,我还有什么遗漏吗?干杯!!