Class: Inspec::Resources::Upstart

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

Overview

Instance Attribute Summary

Attributes inherited from ServiceManager

#inspec, #service_ctl

Instance Method Summary collapse

Methods included from FileReader

#read_file_content

Constructor Details

#initialize(service_name, service_ctl = nil) ⇒ Upstart

Returns a new instance of Upstart.



346
347
348
349
# File 'lib/resources/service.rb', line 346

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

Instance Method Details

#info(service_name) ⇒ Object



351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
# File 'lib/resources/service.rb', line 351

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?
  enabled = info_enabled(service_name)

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