Issue #6846 has been updated by John Crenshaw.
Ben Hughes wrote: > In noop mode it won't copy the files nor run the execs, so the dependancies > will fail. I fear I am missing something here, sorry. > > As for all the errors to be reported, I think some of it being obscured by > using noop mode. It will error on the first element that breaks normally, so > you will see what the problem is there. Exactly. Something about how this is implemented was causing it to report an error several levels deep though. There was an exec that depended on a chain of file commands. It appeared to be reporting the LAST node in the failed chain, not the first. I.E. I has file1->file2->file3->exec, and it reported a dependency failure on exec. When I commented out exec, it told me that file3 had a dependency failure, and so on. Makes it REALLY hard to track down the source of the trouble. ---------------------------------------- Feature #6846: Report full list of errors, not just the last error https://projects.puppetlabs.com/issues/6846 Author: John Crenshaw Status: Investigating Priority: Low Assignee: Category: Target version: Affected Puppet version: Keywords: Branch: Reproducible using the camptocamp apache module's apache::vhost-ssl method as a --noop on a machine that doesn't already have apache installed. (The reason in this case, is because apache installs a file, which is later used as a prerequisite for the "generate-ssl-cert-$name" event, which itself generates a file that is the prerequisite for the "public CSR file for $name" event. Here are the interesting bits of the apache::vhost-ssl define: ` exec { "generate-ssl-cert-$name": command => "/usr/local/sbin/generate-ssl-cert.sh ${name} ${apache::params::root}/${name}/ssl/ssleay.cnf ${apache::params::root}/${name}/ssl/ ${days}", creates => $csrfile, notify => Exec["apache-graceful"], require => [ File["${apache::params::root}/${name}/ssl/ssleay.cnf"], File["/usr/local/sbin/generate-ssl-cert.sh"], ], } ` Then later on: ` # put a copy of the CSR in htdocs, or another location if $publish_csr # specifies so. file { "public CSR file for $name": ensure => $publish_csr ? { false => "absent", default => "present", }, path => $publish_csr ? { true => "${apache::params::root}/${name}/htdocs/${name}.csr", false => "${apache::params::root}/${name}/htdocs/${name}.csr", default => $publish_csr, }, source => "file://$csrfile", mode => 640, seltype => "httpd_sys_content_t", require => Exec["generate-ssl-cert-$name"], } ` This gives an error: Could not retrieve information from source(s) file:///var/www/example.com/ssl/example.com.csr at /etc/puppet/modules/apache/manifests/definitions/vhost-ssl.pp You don't see the real error unless you remove the copying entry. The real error is: Could not find dependency File[/usr/local/sbin/generate-ssl-cert.sh] for Exec[generate-ssl-cert-donedesk.com] at /etc/puppet/modules/apache/manifests/definitions/vhost-ssl.pp:224 ...which is of course caused by the dependency on a non-existent file (non-existent, because the noop suppressed the installation that would have created it, but that's a bug in the definition, not puppet.) Puppet should have recursively indicated all of the failed dependencies, not just one. -- 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.
