Comment 0 for bug 551544

Revision history for this message
Nick Moffitt (nick-moffitt) wrote :

Binary package hint: puppet

Puppet does not currently have an "upstart" provider for the server resource. As such, it relies on upstart's sysV compatability, which is somewhat limited.

The key problem here is that features such as "ensure => running" cannot rely on "hasstatus => true" for any service that has an upstart init script. Upstart's status command appears to consider the exit code to be an actual error status *for upstart itself*, and does not conform to the status-based exit codes specified by sysV init scripts.

The result is that the only way to know if a service is running or stopped in puppet on lucid is to set "hasstatus => false" and then define a regular expression for grepping the process table--this is far from optimal.

Compounding this, puppet's init.d provider considers it appropriate to run "update-rc.d" as though the sysV script were the preferred init script.

What needs to happen very soon is either an upstart provider is written for puppet's service resource (presumably one that falls back to the sysv script if no upstart script is found), or the sysV compatability scripts need to interpret the "stop/waiting" output of the upstart status command and translate that to the standard exit code. Until then, lucid's puppet is somewhat crippled.

ProblemType: Bug
DistroRelease: Ubuntu 10.04
Package: puppet 0.25.4-2ubuntu4
ProcVersionSignature: Ubuntu 2.6.32-18.27-generic 2.6.32.10+drm33.1
Uname: Linux 2.6.32-18-generic x86_64
Architecture: amd64
Date: Tue Mar 30 10:38:40 2010
EcryptfsInUse: Yes
PackageArchitecture: all
ProcEnviron:
 LC_COLLATE=C
 PATH=(custom, user)
 LANG=en_US.UTF-8
 SHELL=/bin/bash
SourcePackage: puppet