mirror of
https://github.com/inspec/inspec
synced 2025-02-16 22:18:38 +00:00
Merge pull request #5470 from inspec/nm/group-members-nil
Fix for group resource when member does not exist
This commit is contained in:
commit
97e8a5a144
5 changed files with 31 additions and 12 deletions
|
@ -118,7 +118,7 @@ module Inspec::Resources
|
|||
end
|
||||
|
||||
def members
|
||||
flatten_entry(group_info, "members")
|
||||
flatten_entry(group_info, "members") || empty_value_for_members
|
||||
end
|
||||
|
||||
def members_array
|
||||
|
@ -152,6 +152,10 @@ module Inspec::Resources
|
|||
group = @group.dup
|
||||
@groups_cache ||= inspec.groups.where { name == group }
|
||||
end
|
||||
|
||||
def empty_value_for_members
|
||||
inspec.os.windows? ? [] : ""
|
||||
end
|
||||
end
|
||||
|
||||
class GroupInfo
|
||||
|
|
3
test/fixtures/files/etcgroup
vendored
3
test/fixtures/files/etcgroup
vendored
|
@ -1,4 +1,5 @@
|
|||
# comment
|
||||
root:x:0:
|
||||
www-data:x:33:www-data,root
|
||||
GroupWithCaps:x:999:
|
||||
GroupWithCaps:x:999:
|
||||
sftpusers:x:1000:sftponly
|
|
@ -6,9 +6,9 @@ describe "Inspec::Resources::EtcGroup" do
|
|||
let(:resource) { load_resource("etc_group") }
|
||||
|
||||
it "verify /etc/group config parsing" do
|
||||
_(resource.gids).must_equal [0, 33, 999]
|
||||
_(resource.groups).must_equal %w{ root www-data GroupWithCaps }
|
||||
_(resource.users).must_equal %w{ www-data root }
|
||||
_(resource.gids).must_equal [0, 33, 999, 1000]
|
||||
_(resource.groups).must_equal %w{ root www-data GroupWithCaps sftpusers }
|
||||
_(resource.users).must_equal %w{ www-data root sftponly }
|
||||
end
|
||||
|
||||
it "verify group filter with no users" do
|
||||
|
|
|
@ -86,7 +86,7 @@ describe "Inspec::Resources::Group" do
|
|||
resource = MockLoader.new(:windows).load_resource("group", "dhcp")
|
||||
_(resource.exists?).must_equal false
|
||||
_(resource.gid).must_be_nil
|
||||
_(resource.members).must_be_nil
|
||||
_(resource.members).must_equal []
|
||||
_(resource.members_array).must_equal []
|
||||
end
|
||||
|
||||
|
@ -96,4 +96,18 @@ describe "Inspec::Resources::Group" do
|
|||
_(resource.exists?).must_equal false
|
||||
_(resource.gid).must_be_nil
|
||||
end
|
||||
|
||||
# centos7
|
||||
it "verify group on centos7 with members" do
|
||||
resource = MockLoader.new(:centos7).load_resource("group", "sftpusers")
|
||||
_(resource.exists?).must_equal true
|
||||
_(resource.members).must_include "sftponly"
|
||||
end
|
||||
|
||||
# centos with non-existent group member
|
||||
it "verify non-existent group member on centos" do
|
||||
resource = MockLoader.new(:centos7).load_resource("group", "root")
|
||||
_(resource.exists?).must_equal true
|
||||
_(resource.members).must_equal ""
|
||||
end
|
||||
end
|
||||
|
|
|
@ -7,18 +7,18 @@ describe "groups resource on unix platform" do
|
|||
|
||||
describe "no arguments" do
|
||||
it "finds all group names" do
|
||||
_(resource.names.count).must_equal 3
|
||||
_(resource.names).must_equal %w{root www-data GroupWithCaps}
|
||||
_(resource.names.count).must_equal 4
|
||||
_(resource.names).must_equal %w{root www-data GroupWithCaps sftpusers}
|
||||
end
|
||||
|
||||
it "finds all group gids" do
|
||||
_(resource.gids.count).must_equal 3
|
||||
_(resource.gids).must_equal [0, 33, 999]
|
||||
_(resource.gids.count).must_equal 4
|
||||
_(resource.gids).must_equal [0, 33, 999, 1000]
|
||||
end
|
||||
|
||||
it "finds no group domains" do
|
||||
_(resource.domains.count).must_equal 3
|
||||
_(resource.domains).must_equal [nil, nil, nil]
|
||||
_(resource.domains.count).must_equal 4
|
||||
_(resource.domains).must_equal [nil, nil, nil, nil]
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue