Issue #20679 has been updated by eric sorenson.

Status changed from Needs Decision to Closed



Sean, Kevin Degraaf, Brice and I talked through this at PuppetConf -- I'm much 
more certain now that `noop` metaparam on resources ought to bind most tightly 
and override the command line.

The inverse case was what convinced me: if you set `noop => true` on a 
resource, you did it for a reason, and running from the commandline in 
enforce/no-noop mode should not override that. So I'm flip-flopping from my 
position in [Note 4](#note-4) and asserting the current behaviour of the system 
is correct. IMO adding another option that does almost the same thing as no-op 
except in a few edge cases complicates more than it helps.

This should be made more explicit, per Nick Moriarty in [Note 1](#note-1). 
Although I don't think the intro guide is really appropriate to go into the 
weeds on the nuances, we should make sure it's documented somewhere, maybe in 
the [metaparam 
reference](http://docs.puppetlabs.com/references/stable/metaparameter.html#noop)
 if nowhere else. I've filed #22374 to track this.

----------------------------------------
Bug #20679: puppet agent --noop command line option does not guarantee a fully 
dry run
https://projects.puppetlabs.com/issues/20679#change-97059

* Author: Nick Moriarty
* Status: Closed
* Priority: High
* Assignee: eric sorenson
* 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.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to