summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSerdar Sutay <serdar@opscode.com>2014-12-08 18:38:26 -0800
committerSerdar Sutay <serdar@opscode.com>2014-12-08 18:38:26 -0800
commit4c37b87e6f9e78d60e31fe498f2a9a4460f155b8 (patch)
treefa973995c2c42258ebae72c80fce13dc0aece0c8
parent6abcfbf4531d9375093d0bc1664f9126ac1df21a (diff)
parent71d84cd65e3b064f44ecd9a03a6a2bb4a84b593d (diff)
downloadchef-4c37b87e6f9e78d60e31fe498f2a9a4460f155b8.tar.gz
Merge pull request #2571 from opscode/sersut/restore-path
Restore path attribute in execute resource with deprecation warning
-rw-r--r--CHANGELOG.md1
-rw-r--r--lib/chef/resource/execute.rb11
-rw-r--r--spec/support/shared/unit/execute_resource.rb10
3 files changed, 22 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 80e01bec49..e43003b81a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -25,6 +25,7 @@
* Create constant for LWRP before calling `provides`
* Cleaned up script and execute provider + specs
* Added deprecation warnings around the use of command attribute in script resources
+* `path` attribute of `execute` resource is restored to provide backwards compatibility with Chef 11.
## 12.0.0
diff --git a/lib/chef/resource/execute.rb b/lib/chef/resource/execute.rb
index dfae88b24e..6853b62887 100644
--- a/lib/chef/resource/execute.rb
+++ b/lib/chef/resource/execute.rb
@@ -36,6 +36,7 @@ class Chef
@cwd = nil
@environment = nil
@group = nil
+ @path = nil
@returns = 0
@timeout = nil
@user = nil
@@ -94,6 +95,16 @@ class Chef
)
end
+ def path(arg=nil)
+ Chef::Log.warn "'path' attribute of 'execute' is not used by any provider in Chef 11 and Chef 12. Use 'environment' attribute to configure 'PATH'. This attribute will be removed in Chef 13."
+
+ set_or_return(
+ :path,
+ arg,
+ :kind_of => [ Array ]
+ )
+ end
+
def returns(arg=nil)
set_or_return(
:returns,
diff --git a/spec/support/shared/unit/execute_resource.rb b/spec/support/shared/unit/execute_resource.rb
index d6fb88db5c..e969a2ebd5 100644
--- a/spec/support/shared/unit/execute_resource.rb
+++ b/spec/support/shared/unit/execute_resource.rb
@@ -76,6 +76,16 @@ shared_examples_for "an execute resource" do
expect(@resource.group).to eql(1)
end
+ it "should accept an array for the execution path in Chef-12 and log deprecation message", :chef_lt_13_only do
+ expect(Chef::Log).to receive(:warn).at_least(:once)
+ @resource.path ["woot"]
+ expect(@resource.path).to eql(["woot"])
+ end
+
+ it "should raise an exception in chef-13", :chef_gte_13_only do
+ expect(@resource.path [ "woot" ]).to raise_error
+ end
+
it "should accept an integer for the return code" do
@resource.returns 1
expect(@resource.returns).to eql(1)