Put in $your_module_name/lib/puppet/parser/functions/am_running_oss.rb
module Puppet::Parser::Functions
newfunction(:am_running_oss, :type => :rvalue ) do |args|
#inFile = "/tmp/OSs.txt"
inFile = args[0]
gos = {}
if File.exist?(inFile)
open(inFile, 'r').each do |line|
next if line =~ /^\s*(#|$)/
parts = line.split(',').map(&:strip)
case parts[1]
when /^Mac/
(gos[:mac] ||= []) << parts[0]
#gos['1']
when /_Win$/
(gos[:win] ||= []) << parts[0]
else
(gos[:linux] ||= []) << parts[0]
end
end
end
if gos.count >= 1
return gos.keys.join(',')
else
return 'undefined'
end
end
end
And from your module:
$q=am_running_oss("/tmp/OSs.txt")
notify {"XXXXXXXX ${q}":}
Also, you could skip the parameter and just hard coded in the file.
On Tue, Oct 15, 2013 at 9:03 AM, Sans <[email protected]> wrote:
>
> Yes, the file is only on the master (and not exactly maintained by the
> Puppet but the provisioning framework) and it looks something like this:
>
>
>> Slackware, Linux, i-num=1
>> Jaguar, MacX, i-num=6
>> Chicago, this_Win, i-num=2
>> Daytona, an_other_Win, i-num=7
>> RedHat, Linux, i-num=5
>> Lion, MacY, i-num=4
>> Caldera, Linux, i-num=9
>> Longhorn, that_Win, i-num=8
>> Tiger, MacZ, i-num=3
>> Indiana, Solaris, i-num=10
>> Kodiak, MacX, i-num=11
>
>
>
> What I was trying to do is to get a fact (or function) that returns a string
> like: "win,mac,linux", as I showed in my previous post. Really appreciate if
> you can make an example function out of that. cheers!!
>
>
>
>
> On Monday, October 14, 2013 9:37:51 PM UTC+1, Cristian Falcas wrote:
>>
>> i understood that the file is only on the master? If so, I will try to
>> write something tomorrow to implement this,
>>
>> If the value never changes, it will be better to put it in an external
>> variable.
>>
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/puppet-users.
> For more options, visit https://groups.google.com/groups/opt_out.
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-users.
For more options, visit https://groups.google.com/groups/opt_out.