diff options
author | Joshua Justice <jjustice6@bloomberg.net> | 2019-02-07 15:25:16 -0500 |
---|---|---|
committer | Joshua Justice <jjustice6@bloomberg.net> | 2019-02-07 15:32:58 -0500 |
commit | 06317de4a5be2cb4e45bb8d8c59632d6b8c14d79 (patch) | |
tree | 00dd96f3ec9c57ea68efdcc449b482330ecb9a05 | |
parent | 212c465199adb2895638685e1816f6d8fc3c6205 (diff) | |
download | chef-06317de4a5be2cb4e45bb8d8c59632d6b8c14d79.tar.gz |
Update the functional spec and provider behavior to match
Signed-off-by: Joshua Justice <jjustice6@bloomberg.net>
-rw-r--r-- | lib/chef/provider/group/solaris.rb | 10 | ||||
-rw-r--r-- | spec/functional/resource/group_spec.rb | 41 | ||||
-rw-r--r-- | spec/unit/provider/group/solaris_spec.rb | 8 |
3 files changed, 7 insertions, 52 deletions
diff --git a/lib/chef/provider/group/solaris.rb b/lib/chef/provider/group/solaris.rb index 52f9b4eb85..4d913fba30 100644 --- a/lib/chef/provider/group/solaris.rb +++ b/lib/chef/provider/group/solaris.rb @@ -35,16 +35,10 @@ class Chef super requirements.assert(:all_actions) do |a| - a.assertion { ::File.exist?("/usr/sbin/usermod") } - a.failure_message Chef::Exceptions::Group, "Could not find binary /usr/sbin/usermod for #{new_resource}" + a.assertion { ::File.exist?("/usr/sbin/usermod") && ::File.exist?("/usr/sbin/groupmod") } + a.failure_message Chef::Exceptions::Group, "Could not find binary /usr/sbin/usermod or /usr/sbin/groupmod for #{new_resource}" # No whyrun alternative: this component should be available in the base install of any given system that uses it end - - requirements.assert(:modify, :manage) do |a| - a.assertion { (new_resource.members.empty? && new_resource.excluded_members.empty?) || new_resource.append } - a.failure_message Chef::Exceptions::Group, "setting group members directly is not supported by #{self}, must set append true in group" - # No whyrun alternative - this action is simply not supported. - end end def set_members(members) diff --git a/spec/functional/resource/group_spec.rb b/spec/functional/resource/group_spec.rb index d4c8132313..6ed6f845c6 100644 --- a/spec/functional/resource/group_spec.rb +++ b/spec/functional/resource/group_spec.rb @@ -292,14 +292,16 @@ describe Chef::Resource::Group, :requires_root_or_running_windows do end end - let(:group_name) { "group#{SecureRandom.random_number(9999)}" } + # Groups below 1000 are reserved on a number of OSes, pick higher numbers + let(:number) { SecureRandom.random_number(9899) + 100 } + let(:group_name) { "grp#{number}" } # groupname 8 characters or less let(:included_members) { [] } let(:excluded_members) { [] } let(:group_resource) do group = Chef::Resource::Group.new(group_name, run_context) group.members(included_members) group.excluded_members(excluded_members) - group.gid(30000) unless ohai[:platform_family] == "mac_os_x" + group.gid(number) unless ohai[:platform_family] == "mac_os_x" group end @@ -410,7 +412,7 @@ downthestreetalwayshadagoodsmileonhisfacetheoldmanwalkingdownthestreeQQQQQQ" end end end - describe "group manage action", :not_supported_on_solaris do + describe "group manage action" do let(:spec_members) { %w{mnou5sdz htulrvwq x4c3g1lu} } let(:included_members) { [spec_members[0], spec_members[1]] } let(:excluded_members) { [spec_members[2]] } @@ -448,37 +450,4 @@ downthestreetalwayshadagoodsmileonhisfacetheoldmanwalkingdownthestreeQQQQQQ" end end end - describe "group resource with Usermod provider", :solaris_only do - describe "when excluded_members is set" do - let(:excluded_members) { ["x4c3g1lu"] } - - it ":manage should raise an error" do - expect { group_resource.run_action(:manage) }.to raise_error - end - - it ":modify should raise an error" do - expect { group_resource.run_action(:modify) }.to raise_error - end - - it ":create should raise an error" do - expect { group_resource.run_action(:create) }.to raise_error - end - end - - describe "when append is not set" do - let(:included_members) { %w{dfgdf4ds sadfsdfs} } - - before(:each) do - group_resource.append(false) - end - - it ":manage should raise an error" do - expect { group_resource.run_action(:manage) }.to raise_error - end - - it ":modify should raise an error" do - expect { group_resource.run_action(:modify) }.to raise_error - end - end - end end diff --git a/spec/unit/provider/group/solaris_spec.rb b/spec/unit/provider/group/solaris_spec.rb index 0e0f189c52..03596070d8 100644 --- a/spec/unit/provider/group/solaris_spec.rb +++ b/spec/unit/provider/group/solaris_spec.rb @@ -54,14 +54,6 @@ describe Chef::Provider::Group::Solaris do allow(File).to receive(:exist?).and_return(true) end - it "should raise an error when setting the entire group directly" do - @provider.define_resource_requirements - @provider.load_current_resource - @provider.instance_variable_set("@group_exists", true) - @provider.action = :modify - expect { @provider.run_action(@provider.process_resource_requirements) }.to raise_error(Chef::Exceptions::Group, "setting group members directly is not supported by #{@provider}, must set append true in group") - end - it "should groupmod the whole batch when append is false" do current_resource = @new_resource.dup @provider.current_resource = current_resource |