Issue #4415 has been updated by Chris Price.
Following up on the comments above; here's what's actually happening here.
* The catalog is compiled successfully on the master because it has access to
the ruby code for the ruby-defined type. For the manifest-defined type, it
adds the nested notify resource directly into the catalog as well.
* The master then sends the catalog down to the agent. At this point, if you
look at the contents of the catalog, it appears that it is impossible to
distinguish that there was a difference in origin for the manifest-defined type
and the ruby-defined type. They are identifiable as instances of custom types,
but the objects used to represent them in memory have the same properties
available for both instances, and there is no way that I can see to
programmatically determine that there is a difference between them.
* The agent then attempts to process the catalog. When it gets to the resource
in the catalog that represents the ruby-defined type, it ends up hitting this
block of code:
lib/puppet/resource.rb:278
# Convert our resource to a RAL resource instance. Creates component
# instances for resource types that don't exist.
def to_ral
if typeklass = Puppet::Type.type(self.type)
return typeklass.new(self)
else
return Puppet::Type::Component.new(self)
end
end
----------------------------------------
Bug #4415: puppetd ignores resources in the catalog if the type code cannot be
found
https://projects.puppetlabs.com/issues/4415#change-63377
Author: Dan Bode
Status: Accepted
Priority: Normal
Assignee: Chris Price
Category:
Target version: 3.X
Affected Puppet version:
Keywords: pluginsync
Branch:
site.pp
<pre>
node puppetclient {
vcsrepo { "/usr/local/dev/repo":
ensure => present,
provider => git
}
notify { 'test123':
require => Vcsrepo['/usr/local/dev/repo']
}
}
</pre>
if I dont sync vcsrepo and I remove the type source code for notify.rb, then
puppet doesn't fail and just ignores them
<pre>
debug: /Stage[main]//Node[puppetclient]/Notify[test123]/require: requires
Vcsrepo[/usr/local/dev/repo]
info: Applying configuration version '1280516948'
debug: Finishing transaction -607606538
debug: Storing state
debug: Stored state in 0.02 seconds
notice: Finished catalog run in 0.04 seconds
debug: Using cached certificate for ca
debug: Using cached certificate for puppetclient
debug: Using cached certificate_revocation_list for ca
debug: Value of 'preferred_serialization_format' (pson) is invalid for report,
using default (b64_zlib_yaml)
debug: report supports formats: b64_zlib_yaml marshal raw yaml; using
b64_zlib_yaml
</pre>
--
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.