summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Justice <jjustice6@bloomberg.net>2019-02-07 15:25:16 -0500
committerJoshua Justice <jjustice6@bloomberg.net>2019-02-07 15:32:58 -0500
commit06317de4a5be2cb4e45bb8d8c59632d6b8c14d79 (patch)
tree00dd96f3ec9c57ea68efdcc449b482330ecb9a05
parent212c465199adb2895638685e1816f6d8fc3c6205 (diff)
downloadchef-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.rb10
-rw-r--r--spec/functional/resource/group_spec.rb41
-rw-r--r--spec/unit/provider/group/solaris_spec.rb8
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