Method: Inspec::Resources::Systemd#info

Defined in:
lib/resources/service.rb

#info(service_name) ⇒ Object



260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
# File 'lib/resources/service.rb', line 260

def info(service_name)
  cmd = inspec.command("#{service_ctl} show --all #{service_name}")
  return nil if cmd.exit_status.to_i != 0

  # parse data
  params = SimpleConfig.new(
    cmd.stdout.chomp,
    assignment_regex: /^\s*([^=]*?)\s*=\s*(.*?)\s*$/,
    multiple_values: false,
  ).params

  # LoadState values eg. loaded, not-found
  installed = params['LoadState'] == 'loaded'

  {
    name: params['Id'],
    description: params['Description'],
    installed: installed,
    running: is_active?(service_name),
    enabled: is_enabled?(service_name),
    type: 'systemd',
    params: params,
  }
end