Part of my rollout scripts contains a "puppet --parseonly" check of
all of our manifests and modules to do basic pre-runtime checks of
syntax (or so I thought). It basically finds all applicable modules
and echos an "import $MODULENAME" for each to the standard input of
puppet, to which I also pass --manifest site.pp to give it the entry
point to our top-level manifests.

What it actually does is parse all of the manifests explicitly
imported/included from site.pp, and parse the init.pp of all imported
modules but nothing else. We've only just discovered this
unfortunately after seeing syntax errors not being picked up in module
subclasses. The "easy" solution of running something like find -iname
"*.pp" -exec puppet --parseonly '{}' \; takes something like 5m30s on
my local SSD drive so this is not a possibility. The puppet utility
will not parse multiple files if you pass them to it, it seems but
perhaps this is not the best way of doing things.

I've read many other approaches on this list, most of which entail
running pre- or post-commit hooks from version control to check the
most recently changed files, but for various reasons this isn't
possible for us. I'd like to know if there would be any interest in
being able to pass multiple files to puppet (to save constant re-
initialization and forking new processes), and would it be feasible to
implement?

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to