Not pretty - but hacking up your example to work in ruby should be
something like:
Facter.add("num_core") do
setcode do
dd_code=`which dmidecode`.chomp
n1=`#{dd_code} -t processor | grep -c "Socket Designation"`.chomp.to_i
n2=`#{dd_code} -t processor | grep "Core Count" | uniq | awk
'{print $3}'`.chomp.to_i
n1*n2
end
end
The key things here are the chomps to remove newlines, the #{} format
for variable interpolation in strings and the to_i to get integers.
Also not the n1*n2 at the end - this will return the result (no need
for return unless you want it).
ken.
On Tue, Jun 14, 2011 at 1:03 PM, Sans <[email protected]> wrote:
> Surely, I can do "/usr/sbin/dmidecode -t processor | grep -c "Socket
> Designation" etc. - that's not a problem. My question is: How to do
> the rest in the "fact"? Anyone one care to make a sample script out of
> that, which will be lot easier for me to understand how this thing
> works. Cheers!!
>
>
> On Jun 14, 12:46 pm, Peter Bukowinski <[email protected]> wrote:
>> One option is to save dd_code lines as a separate script, have puppet ensure
>> its presence on each machine with a file statement, and then call it by
>> explicit path in the Facter.add block.
>>
>> --
>> Peter (from phone)
>>
>> On Jun 14, 2011, at 7:39 AM, Sans <[email protected]> wrote:
>>
>>
>>
>>
>>
>>
>>
>> > Dear all,
>>
>> > I see that writing a custom-fact with single line of command is not
>> > that tough, like this:
>>
>> > ****************************
>> > Facter.add("num_core") do
>> > setcode do
>> > %x{/bin/grep siblings /proc/cpuinfo | uniq | cut -d" " -f
>> > 2}.chomp
>> > end
>> > end
>> > ****************************
>>
>> > But that's not enough for me. What I actually need to do is something
>> > like this:
>>
>> > dd_code=`which dmidecode`
>> > n1=`${dd_code} -t processor | grep -c "Socket Designation"`
>> > n2=`${dd_code} -t processor | grep "Core Count" | uniq | cut -d" " -
>> > f3`
>> > n=$(($n1*$n2))
>>
>> > How can I put this in the "fact"? Cheers!!
>>
>> > --
>> > You received this message because you are subscribed to the Google Groups
>> > "Puppet Users" group.
>> > To post to this group, send email to [email protected].
>> > To unsubscribe from this group, send email to
>> > [email protected].
>> > For more options, visit this group
>> > athttp://groups.google.com/group/puppet-users?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Users" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/puppet-users?hl=en.
>
>
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.