Comment 4 for bug 1276766

Revision history for this message
Stig Sandbeck Mathisen (ssm) wrote : Re: [Bug 1276766] Re: 'status startpar-bridge' fails with 'status: Unknown parameter: JOB'

Steve Langasek <email address hidden> writes:

> Not being particularly familiar with puppet's internals, I don't know
> if the above is wrong per se. But startpar-bridge (and other jobs
> present on Ubuntu by default, such as network-interface and
> network-interface-security) are instantiated jobs; calling 'status
> network-interface' without specifying a network interface is not
> meaningful, and any errors returned from 'status' about 'unknown
> parameter' or 'unknown instance' should not be treated as failures by
> puppet.

That was what I was missing; instantiation. Thanks. :)

> If puppet needs to get a list of all jobs running on the system,
> including instantiated jobs, it should use the 'initctl list'
> interface.

It does, but I think something is off inside puppet's guts.

As far as I can see in the source (ruby code at
https://github.com/puppetlabs/puppet/blob/master/lib/puppet/provider/service/upstart.rb#L47)
it does "initctl list", and picks the first word of each line, unless
the service in question is "network-interface" or
"network-interface-security".

It looks like puppet does not handle instances in a generic way, but
special cases it for "network-interface" and
"network-interface-security", and then hardcoded with INTERFACE=foo and
JOB=bar.

It looks like the instance variable name differs between services, so if
my assumption is correct, I wonder what would be the "generic" way of
enumerating services the correct way would be to find this variable for
all instanciated services.

--
Stig Sandbeck Mathisen