Method: Inspec::Resources::Systemd#info

Defined in:
lib/resources/service.rb

#info(service_name) ⇒ Object



274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
# File 'lib/resources/service.rb', line 274

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