summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCory Stephenson <aevin@me.com>2015-01-31 19:19:37 -0600
committerBryan McLellan <btm@opscode.com>2015-02-12 13:59:42 -0500
commit67d6a3d548701f669e613fffbe435f69480829d1 (patch)
tree59762a576941af1dbf5d339049919ae936e7fe9c
parent9445ee9966b25d2f0b6b06c4ec6e727b416f502c (diff)
downloadchef-67d6a3d548701f669e613fffbe435f69480829d1.tar.gz
Remove commented out versions of a service being enabled/disabled in FreeBSD.
-rw-r--r--lib/chef/provider/service/freebsd.rb2
-rw-r--r--spec/unit/provider/service/freebsd_service_spec.rb14
2 files changed, 15 insertions, 1 deletions
diff --git a/lib/chef/provider/service/freebsd.rb b/lib/chef/provider/service/freebsd.rb
index 49ba0d7d16..9204e3ef92 100644
--- a/lib/chef/provider/service/freebsd.rb
+++ b/lib/chef/provider/service/freebsd.rb
@@ -180,7 +180,7 @@ class Chef
def set_service_enable(value)
lines = read_rc_conf
# Remove line that set the old value
- lines.delete_if { |line| line =~ /^#{Regexp.escape(service_enable_variable_name)}=/ }
+ lines.delete_if { |line| line =~ /^\#?\s*#{Regexp.escape(service_enable_variable_name)}=/ }
# And append the line that sets the new value at the end
lines << "#{service_enable_variable_name}=\"#{value}\""
write_rc_conf(lines)
diff --git a/spec/unit/provider/service/freebsd_service_spec.rb b/spec/unit/provider/service/freebsd_service_spec.rb
index 91d2d8e063..5a55425d87 100644
--- a/spec/unit/provider/service/freebsd_service_spec.rb
+++ b/spec/unit/provider/service/freebsd_service_spec.rb
@@ -580,6 +580,13 @@ EOF
expect(provider).not_to receive(:write_rc_conf)
provider.enable_service
end
+
+ it "should remove commented out versions of it being enabled" do
+ allow(current_resource).to receive(:enabled).and_return(false)
+ expect(provider).to receive(:read_rc_conf).and_return([ "foo", "bar", "\# #{new_resource.service_name}_enable=\"YES\"", "\# #{new_resource.service_name}_enable=\"NO\""])
+ expect(provider).to receive(:write_rc_conf).with(["foo", "bar", "#{new_resource.service_name}_enable=\"YES\""])
+ provider.enable_service()
+ end
end
describe Chef::Provider::Service::Freebsd, "disable_service" do
@@ -607,5 +614,12 @@ EOF
expect(provider).not_to receive(:write_rc_conf)
provider.disable_service()
end
+
+ it "should remove commented out versions of it being disabled or enabled" do
+ allow(current_resource).to receive(:enabled).and_return(true)
+ expect(provider).to receive(:read_rc_conf).and_return([ "foo", "bar", "\# #{new_resource.service_name}_enable=\"YES\"", "\# #{new_resource.service_name}_enable=\"NO\""])
+ expect(provider).to receive(:write_rc_conf).with(["foo", "bar", "#{new_resource.service_name}_enable=\"NO\""])
+ provider.disable_service()
+ end
end
end