Issue #20679 has been updated by Josh Cooper.
Puppet applies multiple catalogs (each in a Transaction) during a single agent
run. For example, settings defined in puppet.conf are applied in one catalog,
pluginsync in another, statefile in another, ssl files in another, etc.
So I think we want to ignore noop when applying non-host catalogs, which the
code currently does, see `Property#noop`. But if we are applying a host
catalog, then we want to give precedence to the global setting `Puppet[:noop]`
over the resource's `noop` metaparameter. I think the following in
`lib/puppet/property.rb:1079-1085` will accomplish this:
<pre>
if Puppet[:noop]
true
elsif defined?(@noop)
@noop
else
false
end
</pre>
----------------------------------------
Bug #20679: puppet agent --noop command line option does not guarantee a fully
dry run
https://projects.puppetlabs.com/issues/20679#change-92190
* Author: Nick Moriarty
* Status: Needs Decision
* Priority: High
* Assignee: Andrew Parker
* Category: agent
* Target version:
* Affected Puppet version: 2.7.11
* Keywords: noop simulation dry-run dryrun simulate test backlog
* Branch:
----------------------------------------
According to some documentation (including man pages), and common sense,
specifying --noop should cause Puppet agent to run in 'dry-run' mode, and make
no changes.
However, it seems that this actually just changes the global resource default
for 'noop' to true. If a resource is defined which determines noop itself (for
example, based on a parameter), this will escape what would reasonably be
expected to be a simulation run, as it will override the global noop with
'false'.
I noticed this while testing a development branch and noting that it actually
affected a file mode somewhere.
If not implemented via the 'noop' mechanism, a proper simulation mode should be
provided which will show exactly what will happen, but with the guarantee that
nothing will be done. The current --noop flag certainly doesn't provide that
guarantee.
This issue may cause us to internally ban the use of 'noop' in manifests, as it
leaves us with no way of guaranteeing a proper dry run.
--
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?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.