Issue #4094 has been updated by James Turnbull.

Target version deleted (0.25.6)


----------------------------------------
Bug #4094: Exported Resources cannot find exported customs defines in autoload 
path
https://projects.puppetlabs.com/issues/4094

Author: Peter Meier
Status: Accepted
Priority: Normal
Assignee: 
Category: 
Target version: 
Affected Puppet version: 0.25.5
Keywords: 
Branch: 


Given the following define:

<pre>
cat modules/nagios/manifest/plugin.pp
define nagios::plugin(
    $source = 'absent',
    $ensure = present
){
  file{$name:
    path => $hardwaremodel ? {
      'x86_64' => "/usr/lib64/nagios/plugins/$name",
      default => "/usr/lib/nagios/plugins/$name",
    },
    ensure => $ensure,
    source => $source ? {
      'absent' => "puppet://$server/modules/nagios/plugins/$name",
      default => "puppet://$server/modules/$source"
    },
    tag => 'nagios_plugin',
    require => Package['nagios-plugins'],
    owner => root, group => 0, mode => 0755;
  }
}
</pre>

which I export on nagiosclient with the following define:

<pre>
@@nagios::plugin{'foo': }
</pre>

and collect it on the nagios host with:

<pre>
Nagios::Plugin <<| |>>
</pre>

I get the following error message on the master:
<pre>
Tue Jun 29 06:26:41 +0200 2010 Puppet (err): Could not find resource type 
'Nagios::Plugin' on node nagioshost
</pre>

and on the client:

<pre>
err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could 
not find resource type 'Nagios::Plugin' on node nagioshost
</pre>

However this fails only from time to time and actually it fails only if the 
nagiosclient exporting the define haven't yet run against the instance of the 
puppetmaster against which the nagioshost will run. I suspect that the 
autoloading of the @nagios::plugin@ isn't yet done on the failing instances and 
an exported resource doesn't trigger a lookup. This is not really a problem in 
a single-thread master environment (aka webrick), but it certainly becomes a 
problem on mongrel based installation and it can easily be reproduced by 
restarting a webrick based master and let nagioshost run prior to nagiosclient 
and it will fail as long as nagiosclient isn't yet run.

I worked around it by exporting the native resource file in the define and 
collecting files with a certain tag on the nagioshost. However, I think 
exporting such resources should be possible.


-- 
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 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-bugs?hl=en.

Reply via email to