Issue #3757 has been updated by Chris Price.

Assignee set to Chris Price

This still needs to get merged back in to Telly.  I've discussed with Nigel and 
Daniel, and the summary of current affairs is:

1. There seems to be general consensus (at least from the dev side) that 
minimizing file-based API is probably wise
2. These two cases ("is an agent running?", and "is an agent administratively 
disabled, and why?") seem to qualify as cases where a file-based API is useful 
enough to accept the negative consequences
3. These cases need to be documented very clearly, explicitly, publicly... both 
in the code and wherever we are documenting public API on the web site.
4. Even though we should attempt to minimize the amount of data that these 
files contain (so that we can minimize backward-compatibility concerns in the 
future), if we're going to put data in these files at all, it would be smart to 
add a minimal amount of structure to it (key-value pairs in this case) to give 
us more flexibility down the road.


----------------------------------------
Feature #3757: --enable and --disable should be improved
https://projects.puppetlabs.com/issues/3757#change-58060

Author: R.I. Pienaar
Status: Re-opened
Priority: Normal
Assignee: Chris Price
Category: executables
Target version: Telly
Affected Puppet version: 0.25.4
Keywords: mcollective enabledisable
Branch: https://github.com/puppetlabs/puppet/pull/216


At present the --enable/--disable and associated checks on the puppetd is all 
done via a lock file /var/lib/puppet/state/puppetdlock.

My investigations reveal the behavior of this file to be:

 * if exist and it's empty, someone ran --disable
 * if exist and it's got a PID in it puppetd is doing a manifest run at present
 * if it's absent its enabled and not running

The problem comes when you want to disable the daemon while it's running a 
manifest.  The lock file with PID in it will remain in place and once puppetd 
is done doing its run it will remove the lock file, leaving your client enabled 
when infact it was asked to disable the client and not run in future.

So I want to be able to disable future runs even while a current run is 
happening.  The easiest might be to have 2 lock files - one to indicate 
enabled/disabled and one to indicate running dont start another concurrent 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 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.

Reply via email to