Class: Inspec::Resources::Svcs

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

Overview

Solaris services

Instance Attribute Summary

Attributes inherited from ServiceManager

#inspec, #service_ctl

Instance Method Summary collapse

Constructor Details

#initialize(service_name, service_ctl = nil) ⇒ Svcs

Returns a new instance of Svcs.



624
625
626
627
# File 'lib/resources/service.rb', line 624

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

Instance Method Details

#info(service_name) ⇒ Object



629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
# File 'lib/resources/service.rb', line 629

def info(service_name)
  # get the status of runit service
  cmd = inspec.command("#{service_ctl} -l #{service_name}")
  return nil if cmd.exit_status != 0

  params = SimpleConfig.new(
    cmd.stdout.chomp,
    assignment_regex: /^(\w+)\s*(.*)$/,
    multiple_values: false,
  ).params

  installed = cmd.exit_status == 0
  running = installed && (params['state'] == 'online')
  enabled = installed && (params['enabled'] == 'true')

  {
    name: service_name,
    description: params['name'],
    installed: installed,
    running: running,
    enabled: enabled,
    type: 'svcs',
  }
end