Point taken on perl overkill .. trying to get something working and
copy/pasted someone else's solution ;)

In any case, I expect this to get all of the non-localhost interface
names, sort them, and return me the IP address of the last in the
list.
When run from commandline by name it works great. When I run facter
alone (show all facts) or Puppet runs it it appears to instead give me
the first one in the list.

On Mon, Feb 9, 2015 at 9:25 AM, jcbollinger <john.bollin...@stjude.org> wrote:
>
>
> On Sunday, February 8, 2015 at 3:47:58 PM UTC-6, John D'Ausilio wrote:
>>
>> So I have a custom fact which works fine from the commandline: facter
>> last_interface  (it returns the ip address of the last of a sorted list of
>> interface names)
>>
>> If I just run facter without parameters, the value in last_interface is
>> incorrect!
>>
>> Is there something different between the environment when running facter
>> without args and the environment when asking for a specific fact?
>>
>> Facter.add('last_interface') do
>>   setcode do
>>     name = Facter::Core::Execution.exec('ip -o l | grep -v loopback | perl
>> -lane\'$F[1]=~s/://g;print $F[1]\' | sort -n | tail -1')
>>     Facter.value("ipaddress_"+name)
>>   end
>> end
>>
>
>
> No. The environment provided to Facter (or to any command) is determined by
> how you launch the command.  The arguments to the command cannot affect its
> environment.
>
> We might be able to offer better insight if you explained what fact value
> you expect, and why, and what you actually see in the incorrect case.
>
> I will say right now, however, that it is awfully strange and heavyweight to
> use Perl as part of determining the fact value when the fact computation is
> already running in Ruby.  Even if you want to do the whole job with an
> external pipeline, 'sed' would be a lighter-weight (and simple-syntax)
> choice.  Nevertheless, I don't see how that could contribute to differing
> results.
>
>
> John
>
> --
> 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 puppet-users+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/puppet-users/f0aa94a6-aa55-4420-97f0-1f82c55c6207%40googlegroups.com.
>
> For more options, visit https://groups.google.com/d/optout.

-- 
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 puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/CAO1ctWey1Vn6CYr9y6-nqwH0iLBx-qp9yXV6yrxGPo-YsUuDtQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to