Class: Inspec::Resources::Upstart

Inherits:
ServiceManager show all
Defined in:
lib/resources/service.rb

Overview

Instance Attribute Summary

Attributes inherited from ServiceManager

#inspec, #service_ctl

Instance Method Summary collapse

Constructor Details

#initialize(service_name, service_ctl = nil) ⇒ Upstart

Returns a new instance of Upstart.



329
330
331
332
# File 'lib/resources/service.rb', line 329

def initialize(service_name, service_ctl = nil)
  @service_ctl = service_ctl || 'initctl'
  super
end

Instance Method Details

#info(service_name) ⇒ Object



334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
# File 'lib/resources/service.rb', line 334

def info(service_name)
  # get the status of upstart service
  status = inspec.command("#{service_ctl} status #{service_name}")

  # fallback for systemv services, those are not handled via `initctl`
  return SysV.new(inspec).info(service_name) if status.exit_status.to_i != 0 || status.stdout == ''

  # @see: http://upstart.ubuntu.com/cookbook/#job-states
  # grep for running to indicate the service is there
  running = !status.stdout[%r{start/running}].nil?

  {
    name: service_name,
    description: nil,
    installed: true,
    running: running,
    enabled: info_enabled(status, service_name),
    type: 'upstart',
  }
end