summaryrefslogtreecommitdiff
path: root/spec/unit/provider
diff options
context:
space:
mode:
authorMal Graty <mal.graty@googlemail.com>2018-05-16 19:07:11 +0100
committerMal Graty <mal.graty@googlemail.com>2018-05-19 00:35:58 +0100
commit3071b022ccb88a0c3298ebf613c0109f97ff4b55 (patch)
treeb3b674c06eead93b03f78ab5f5ea0da2e2187eae /spec/unit/provider
parentd436e257b5666163e02608c4afeada60e231fa88 (diff)
downloadchef-3071b022ccb88a0c3298ebf613c0109f97ff4b55.tar.gz
Contextualise daemon-reload calls
Ensure daemon-reload is called in the correct context for user units. Signed-off-by: Mal Graty <mal.graty@googlemail.com>
Diffstat (limited to 'spec/unit/provider')
-rw-r--r--spec/unit/provider/systemd_unit_spec.rb123
1 files changed, 84 insertions, 39 deletions
diff --git a/spec/unit/provider/systemd_unit_spec.rb b/spec/unit/provider/systemd_unit_spec.rb
index ce04b6c84c..c1fe08ff94 100644
--- a/spec/unit/provider/systemd_unit_spec.rb
+++ b/spec/unit/provider/systemd_unit_spec.rb
@@ -280,49 +280,53 @@ describe Chef::Provider::SystemdUnit do
provider.action_create
end
- it "triggers a daemon-reload when creating a unit with triggers_reload" do
- allow(provider).to receive(:manage_unit_file).with(:create)
- expect(new_resource.triggers_reload).to eq true
- allow(provider).to receive(:shell_out_with_systems_locale!)
- expect(provider).to receive(:shell_out_with_systems_locale!)
- .with("#{systemctl_path} daemon-reload")
- provider.action_create
- end
+ context "when a user is specified" do
+ it "triggers a daemon-reload when creating a unit with triggers_reload" do
+ new_resource.user("joe")
+ allow(provider).to receive(:manage_unit_file).with(:create)
+ expect(new_resource.triggers_reload).to eq true
+ allow(provider).to receive(:shell_out_with_systems_locale!)
+ expect(provider).to receive(:shell_out_with_systems_locale!)
+ .with("#{systemctl_path} --user daemon-reload", user_cmd_opts)
+ provider.action_create
+ end
- it "triggers a daemon-reload when deleting a unit with triggers_reload" do
- allow(File).to receive(:exist?)
- .with(unit_path_system)
- .and_return(true)
- allow(provider).to receive(:manage_unit_file).with(:delete)
- expect(new_resource.triggers_reload).to eq true
- allow(provider).to receive(:shell_out_with_systems_locale!)
- expect(provider).to receive(:shell_out_with_systems_locale!)
- .with("#{systemctl_path} daemon-reload")
- provider.action_delete
- end
+ it "triggers a daemon-reload when deleting a unit with triggers_reload" do
+ new_resource.user("joe")
+ allow(File).to receive(:exist?)
+ .with(unit_path_user)
+ .and_return(true)
+ allow(provider).to receive(:manage_unit_file).with(:delete)
+ expect(new_resource.triggers_reload).to eq true
+ allow(provider).to receive(:shell_out_with_systems_locale!)
+ expect(provider).to receive(:shell_out_with_systems_locale!)
+ .with("#{systemctl_path} --user daemon-reload", user_cmd_opts)
+ provider.action_delete
+ end
- it "does not trigger a daemon-reload when creating a unit without triggers_reload" do
- new_resource.triggers_reload(false)
- allow(provider).to receive(:manage_unit_file).with(:create)
- allow(provider).to receive(:shell_out_with_systems_locale!)
- expect(provider).to_not receive(:shell_out_with_systems_locale!)
- .with("#{systemctl_path} daemon-reload")
- provider.action_create
- end
+ it "does not trigger a daemon-reload when creating a unit without triggers_reload" do
+ new_resource.user("joe")
+ new_resource.triggers_reload(false)
+ allow(provider).to receive(:manage_unit_file).with(:create)
+ allow(provider).to receive(:shell_out_with_systems_locale!)
+ expect(provider).to_not receive(:shell_out_with_systems_locale!)
+ .with("#{systemctl_path} --user daemon-reload", user_cmd_opts)
+ provider.action_create
+ end
- it "does not trigger a daemon-reload when deleting a unit without triggers_reload" do
- new_resource.triggers_reload(false)
- allow(File).to receive(:exist?)
- .with(unit_path_system)
- .and_return(true)
- allow(provider).to receive(:manage_unit_file).with(:delete)
- allow(provider).to receive(:shell_out_with_systems_locale!)
- expect(provider).to_not receive(:shell_out_with_systems_locale!)
- .with("#{systemctl_path} daemon-reload")
- provider.action_delete
- end
+ it "does not trigger a daemon-reload when deleting a unit without triggers_reload" do
+ new_resource.user("joe")
+ new_resource.triggers_reload(false)
+ allow(File).to receive(:exist?)
+ .with(unit_path_user)
+ .and_return(true)
+ allow(provider).to receive(:manage_unit_file).with(:delete)
+ allow(provider).to receive(:shell_out_with_systems_locale!)
+ expect(provider).to_not receive(:shell_out_with_systems_locale!)
+ .with("#{systemctl_path} --user daemon-reload", user_cmd_opts)
+ provider.action_delete
+ end
- context "when a user is specified" do
it "deletes the file when it exists" do
new_resource.user("joe")
allow(File).to receive(:exist?)
@@ -364,6 +368,47 @@ describe Chef::Provider::SystemdUnit do
end
context "when no user is specified" do
+ it "triggers a daemon-reload when creating a unit with triggers_reload" do
+ allow(provider).to receive(:manage_unit_file).with(:create)
+ expect(new_resource.triggers_reload).to eq true
+ allow(provider).to receive(:shell_out_with_systems_locale!)
+ expect(provider).to receive(:shell_out_with_systems_locale!)
+ .with("#{systemctl_path} --system daemon-reload", {})
+ provider.action_create
+ end
+
+ it "triggers a daemon-reload when deleting a unit with triggers_reload" do
+ allow(File).to receive(:exist?)
+ .with(unit_path_system)
+ .and_return(true)
+ allow(provider).to receive(:manage_unit_file).with(:delete)
+ expect(new_resource.triggers_reload).to eq true
+ allow(provider).to receive(:shell_out_with_systems_locale!)
+ expect(provider).to receive(:shell_out_with_systems_locale!)
+ .with("#{systemctl_path} --system daemon-reload", {})
+ provider.action_delete
+ end
+
+ it "does not trigger a daemon-reload when creating a unit without triggers_reload" do
+ new_resource.triggers_reload(false)
+ allow(provider).to receive(:manage_unit_file).with(:create)
+ allow(provider).to receive(:shell_out_with_systems_locale!)
+ expect(provider).to_not receive(:shell_out_with_systems_locale!)
+ .with("#{systemctl_path} --system daemon-reload", {})
+ provider.action_create
+ end
+
+ it "does not trigger a daemon-reload when deleting a unit without triggers_reload" do
+ new_resource.triggers_reload(false)
+ allow(File).to receive(:exist?)
+ .with(unit_path_system)
+ .and_return(true)
+ allow(provider).to receive(:manage_unit_file).with(:delete)
+ allow(provider).to receive(:shell_out_with_systems_locale!)
+ expect(provider).to_not receive(:shell_out_with_systems_locale!)
+ .with("#{systemctl_path} --system daemon-reload", {})
+ provider.action_delete
+ end
it "deletes the file when it exists" do
allow(File).to receive(:exist?)
.with(unit_path_system)