class Inspec::Resources::Group

Usage: describe group('root') do

it { should exist }
its('gid') { should eq 0 }

end

Public Class Methods

new(groupname) click to toggle source
# File lib/inspec/resources/groups.rb, line 103
def initialize(groupname)
  @group = groupname

  # select group manager
  @group_provider = select_group_manager(inspec.os)
  return skip_resource "The `group` resource is not supported on your OS yet." if @group_provider.nil?
end

Public Instance Methods

exists?() click to toggle source

verifies if a group exists

# File lib/inspec/resources/groups.rb, line 112
def exists?
  !group_info.entries.empty?
end
gid() click to toggle source
# File lib/inspec/resources/groups.rb, line 116
def gid
  flatten_entry(group_info, "gid")
end
local() click to toggle source
# File lib/inspec/resources/groups.rb, line 128
def local
  # at this point the implementation only returns local groups
  true
end
members() click to toggle source
# File lib/inspec/resources/groups.rb, line 120
def members
  flatten_entry(group_info, "members") || empty_value_for_members
end
members_array() click to toggle source
# File lib/inspec/resources/groups.rb, line 124
def members_array
  flatten_entry(group_info, "members_array") || []
end
to_s() click to toggle source
# File lib/inspec/resources/groups.rb, line 133
def to_s
  "Group #{@group}"
end

Private Instance Methods

empty_value_for_members() click to toggle source
# File lib/inspec/resources/groups.rb, line 156
def empty_value_for_members
  inspec.os.windows? ? [] : ""
end
flatten_entry(group_info, prop) click to toggle source
# File lib/inspec/resources/groups.rb, line 139
def flatten_entry(group_info, prop)
  entries = group_info.entries
  if entries.empty?
    nil
  elsif entries.size == 1
    entries.first.send(prop)
  else
    raise "found more than one group with the same name, please use `groups` resource"
  end
end
group_info() click to toggle source
# File lib/inspec/resources/groups.rb, line 150
def group_info
  # we need a local copy for the block
  group = @group.dup
  @groups_cache ||= inspec.groups.where { name == group }
end