Issue #21512 has been updated by Robert Yeo.

UPDATE

I have narrowed this down to a facter fact that is causing the issue.  No idea 
why though especially on my linux boxes which should skip it.  Runs fine on 
earlier versions of Puppet (3.1.1 is what I am testing with currently), but not 
on later versions (3.2.2 and 3.2.3).  I need to double check 3.2.0 and 3.2.1.

require 'rexml/document'
include REXML

# Thanks to Marcus https://github.com/DrMegahertz/ for helping out!

if Facter.value('operatingsystem') == 'Darwin'

def parse(element)
  case element.name
  when 'array'
    element.elements.map {|child| parse(child)}

  when 'dict'
    result = {}

    element.elements.each_slice(2) do |key, value|
      result[key.text] = parse(value)
    end

    result

  when 'real'
    element.text.to_f

  when 'integer'
    element.text.to_i

  when 'string', 'date'
    element.text

  else
    # FIXME: Remove me or beef me up
    # puts "Unknown type " + element.name
  end
end

begin
  xml = Facter::Util::Resolution.exec('system_profiler SPApplicationsDataType 
-xml')
  xmldoc = Document.new(xml)
  result = parse(xmldoc.root[1])
rescue
  result = ''
end

begin
  apps = []

  result[0]['_items'].each do |application|

    # Remove all spaces and convert app name to lowercase
    app_name = application['_name'].downcase.gsub(' ','')

    # Only list applications in /Applications, Skip /Application/Utilities
    if application['path'].match(/^\/Applications/) and 
application['path'].index('Utilities') == nil
      if !application['version'].nil?

        Facter.add('app_' + app_name + '_version') { setcode { 
application['version'] } }
        #Facter.add('app_' + app_name) { setcode { true } }

        apps << app_name
      end
    end
  end

  # Create apps fact with all applications separated by comma
  # Facter.add('apps') { setcode { apps.join ',' } }

rescue
end

else
end


----------------------------------------
Bug #21512: Non-PE OS X Node on PE3 Master throws unknown method error
https://projects.puppetlabs.com/issues/21512#change-95904

* Author: Nate Walck
* Status: Needs More Information
* Priority: Normal
* Assignee: Nate Walck
* Category: 
* Target version: 
* Affected Puppet version: 3.2.2
* Keywords: 
* Branch: 
----------------------------------------
I started with a fresh PE3 Master and added a Fresh OSX Client to it using 
Puppet 3.2.2, Facter 1.7.1 and Hiera 1.2.1.  

Upon running puppet agent -t and signing the certificate (Autosign * is enabled 
for this dev box), I get the following errors:

err     Could not retrieve catalog; skipping run        Puppet                  
2013-06-28 01:30 UTC
err     Failed to generate additional resources using 'eval_generate: Could not 
intern_multiple from pson: undefined method `encoding' for 
#<String:0x10291e490>        /File[/var/lib/puppet/lib]                      
2013-06-28 01:30 UTC
err     Could not retrieve catalog from remote server: Could not intern from 
pson: undefined method `encoding' for #<String:0x102b15398>        Puppet       
           2013-06-28 01:30 UTC
err     Could not evaluate: Could not intern from pson: undefined method 
`encoding' for #<String:0x102907628> Could not retrieve file metadata for 
puppet://puppet/plugins: Could not intern from pson: undefined method 
`encoding' for #<String:0x102907628>   /File[/var/lib/puppet/lib]               
       2013-06-28 01:30 UTC

The agent throws this error every run and doesn't seem to pickup custom facts 
(I tried removing the facts to see if they caused the issue, but to no avail).

Let me know if you need any additional information.



-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" 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-bugs.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to