I think it simply could detect that the command (swap -l ) failed and
raise an exception with the output (or first line of the output).

Now it fails with a nil access error, I had to see the code to
determine that the problem was that I was running facter as a normal
user and 'swap -l' was failing.

--
Atentamente
Héctor Rivas



On Thu, Jun 10, 2010 at 12:03 PM, Paul Nasrat <[email protected]> wrote:
> On 10 June 2010 07:16, James Turnbull <[email protected]> wrote:
>>
>> Signed-off-by: James Turnbull <[email protected]>
>
> -1
>
> Hmm, there are a whole bunch of facts/commands that require root or
> behave differently. I'd rather see this implemented as a confine.
>
>> ---
>>  lib/facter/memory.rb |   14 +++++++++-----
>>  1 files changed, 9 insertions(+), 5 deletions(-)
>>
>> diff --git a/lib/facter/memory.rb b/lib/facter/memory.rb
>> index f0f0d45..94769d0 100644
>> --- a/lib/facter/memory.rb
>> +++ b/lib/facter/memory.rb
>> @@ -21,15 +21,19 @@ require 'facter/util/memory'
>>  end
>>
>>  if Facter.value(:kernel) == "AIX"
>> -    swap = Facter::Util::Resolution.exec('swap -l')
>> -    swapfree, swaptotal = 0, 0
>> -    swap.each do |dev|
>> +    begin
>> +      swap = Facter::Util::Resolution.exec('swap -l')
>> +      swapfree, swaptotal = 0, 0
>> +      swap.each do |dev|
>>         if dev =~ /^\/\S+\s.*\s+(\S+)MB\s+(\S+)MB/
>>             swaptotal += $1.to_i
>>             swapfree  += $2.to_i
>> -        end
>> +        end
>> +      end
>> +    rescue Exception => e
>> +      puts "You must be root to run swap -l on AIX"
>
> puts isn't helpful if using facter as a library
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Puppet Developers" 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-dev?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" 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-dev?hl=en.

Reply via email to