Issue #20121 has been updated by Tim Eilers.

The patch leads to another problem: Now boot.* services configured in puppet 
manifests with enable=>true are enabled on every puppet run.
Here an example of a SLES 11 SP 2:
<pre>
# /sbin/chkconfig boot.sysctl --check
# echo $?
1
# /sbin/chkconfig --list -A| grep sysctl
boot.sysctl               0:off  1:off  2:off  3:off  4:off  5:off  6:off  B:on
# /sbin/chkconfig boot.sysctl
boot.sysctl  on
# echo $?
0
# /sbin/chkconfig boot.multipath --check
# echo $?
1
# /sbin/chkconfig --list -A| grep boot.multipath
boot.multipath            0:off  1:off  2:off  3:off  4:off  5:off  6:off
# /sbin/chkconfig boot.multipath
boot.multipath  off
# echo $?
0
</pre>
Like you can see, both solutions (previous and current) are not sufficient for 
boot.* services. The previous always returned 0, the current solution always 
returns 1 for boot.* services, regardless if they are enabled or not.
I believe the only stable solution would be parsing the output of "chkconfig 
--list -A".
The root cause is indeed in misbehaviour of chkconfig script, but it would be 
great if puppet has a workaround for that :)

----------------------------------------
Bug #20121: SLES service acts different than RedHat
https://projects.puppetlabs.com/issues/20121#change-97670

* Author: Charles Dunbar
* Status: Merged - Pending Release
* Priority: Normal
* Assignee: 
* Category: service
* Target version: 3.3.0
* Affected Puppet version: 
* Keywords: sles chkconfig customer
* Branch: https://github.com/puppetlabs/puppet/pull/1602
----------------------------------------
On Puppet 2.7.19, when trying to manage a non-existant service in 
RedHat/CentOS, puppet compiles without issue.  When you use the exact same 
manifest for SLES (currently testing x64 SLES 11.1), you get an error that the 
service doesn't exist.

Manifest:

<pre>
  service { 'foo':
  ensure => 'false',
  enable => false,
 }
</pre>

On CentOS 6.3, with --debug:

<pre>
debug: Service[foo](provider=redhat): Executing '/sbin/service foo status'
debug: Puppet::Type::Service::ProviderRedhat: Executing '/sbin/chkconfig foo'

notice: Finished catalog run in 5.04 seconds
</pre>

On SLES 11.1:
<pre>
debug: Service[foo](provider=redhat): Executing '/sbin/service foo status'
debug: Puppet::Type::Service::ProviderRedhat: Executing '/sbin/chkconfig foo'
debug: Puppet::Type::Service::ProviderRedhat: Executing '/sbin/chkconfig foo 
off'
err: /Stage[main]/Cron/Service[foo]/enable: change from true to false failed: 
Could not disable foo:
notice: Finished catalog run in 1.80 seconds
</pre>

Looks like trying to call the service off is the failure.  Ideally would prefer 
a non-existing service to be assumed to be off, as the centos machine simulates.




-- 
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