Issue #10063 has been updated by Matthaus Litteken.
Status changed from Unreviewed to Needs More Information
I tried to reproduce this on CentOS 5.6 64-bit with Puppet 2.7.3. I couldn't
reproduce the problem.
I got the expected behavior of puppet updating that job with the new time,
rather than creating a new job.
Please let me know if I have misunderstood the issue, or if other steps are
required to reproduce.
I got the following output when running your sample puppet code (with added
commas for correct syntax) against a crontab with different time settings, but
the same job.
[root@localhost /]# crontab -l
# HEADER: This file was autogenerated at Tue Nov 15 10:52:43 -0800 2011 by
puppet.
# HEADER: While it can still be managed manually, it is definitely not
recommended.
# HEADER: Note particularly that the comments starting with 'Puppet Name'
should
# HEADER: not be deleted, as doing so could cause duplicate cron jobs.
# Puppet Name: myjob
22 6 * * * /usr/local/sbin/myjob
[root@localhost /]# crontab -e
crontab: installing new crontab
[root@localhost /]# crontab -l
# HEADER: This file was autogenerated at Tue Nov 15 10:52:43 -0800 2011 by
puppet.
# HEADER: While it can still be managed manually, it is definitely not
recommended.
# HEADER: Note particularly that the comments starting with 'Puppet Name'
should
# HEADER: not be deleted, as doing so could cause duplicate cron jobs.
# Puppet Name: myjob
25 3 * * * /usr/local/sbin/myjob
[root@localhost /]# puppet apply broken_cron.pp
notice: /Stage[main]/Broken_cron/Cron[myjob]/minute: minute changed '25' to
'22'
notice: /Stage[main]/Broken_cron/Cron[myjob]/hour: hour changed '3' to '5'
notice: Finished catalog run in 0.19 seconds
----------------------------------------
Bug #10063: cron resource violates resource ordering
https://projects.puppetlabs.com/issues/10063
Author: Igor .
Status: Needs More Information
Priority: Normal
Assignee:
Category: cron
Target version:
Affected Puppet version: 2.7.3
Keywords: cron ordering
Branch:
Consider the following class
<pre>
class broken_cron {
cron { 'myjob':
command => "/usr/local/sbin/myjob",
user => root,
minute => "22"
hour => "5"
ensure => present
}
# Try and cleanup crontab -- this is broken in a rather surprising way!
exec { 'crontab -l|grep -v myjob|crontab -':
unless => "crontab -l|grep '^# Puppet Name: myjob'",
path => "/bin:/usr/bin",
before => Cron['myjob']
}
}
</pre>
if this applied when crontab already contains myjob but with different time
settings than specified in the cron resource, crontab will end up containing
the job twice. It seems cron type is prefetching the contents of crontab before
the exec runs despite the explicit ordering.
--
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.