summaryrefslogtreecommitdiff
path: root/lib/chef
diff options
context:
space:
mode:
authorLamont Granquist <lamont@scriptkiddie.org>2015-02-09 14:47:48 -0800
committerLamont Granquist <lamont@scriptkiddie.org>2015-02-09 14:47:48 -0800
commit11140c2cbd6f675c1bc0c3f5697f23d6404886ba (patch)
treed54623e143871639b72d75977adaabf0635a86a4 /lib/chef
parent878ecf09a8945235637e3f761626f1e3c9e86ca1 (diff)
downloadchef-11140c2cbd6f675c1bc0c3f5697f23d6404886ba.tar.gz
Add Chef::Log.deprecation and associated wiring
Diffstat (limited to 'lib/chef')
-rw-r--r--lib/chef/deprecation/warnings.rb5
-rw-r--r--lib/chef/exceptions.rb6
-rw-r--r--lib/chef/log.rb11
3 files changed, 17 insertions, 5 deletions
diff --git a/lib/chef/deprecation/warnings.rb b/lib/chef/deprecation/warnings.rb
index 22b28f93b0..68b1d0e202 100644
--- a/lib/chef/deprecation/warnings.rb
+++ b/lib/chef/deprecation/warnings.rb
@@ -24,8 +24,8 @@ class Chef
method_names.each do |name|
m = instance_method(name)
define_method(name) do |*args|
- Chef::Log.warn "Method '#{name}' of '#{self.class}' is deprecated. It will be removed in Chef 12."
- Chef::Log.warn "Please update your cookbooks accordingly. Accessed from:"
+ Chef::Log.deprecation "Method '#{name}' of '#{self.class}' is deprecated. It will be removed in Chef 12."
+ Chef::Log.deprecation "Please update your cookbooks accordingly. Accessed from:"
caller[0..3].each {|l| Chef::Log.warn l}
super(*args)
end
@@ -35,4 +35,3 @@ class Chef
end
end
end
-
diff --git a/lib/chef/exceptions.rb b/lib/chef/exceptions.rb
index 78d77e3778..498970468a 100644
--- a/lib/chef/exceptions.rb
+++ b/lib/chef/exceptions.rb
@@ -212,7 +212,11 @@ class Chef
class NoProviderAvailable < RuntimeError; end
- class DeprecatedFeatureError < RuntimeError; end
+ class DeprecatedFeatureError < RuntimeError;
+ def initalize
+ super("raising deprecation error due to treat_deprecation_warnings_as_errors being set")
+ end
+ end
class MissingRole < RuntimeError
NULL = Object.new
diff --git a/lib/chef/log.rb b/lib/chef/log.rb
index 131d706a5e..56c0ef022c 100644
--- a/lib/chef/log.rb
+++ b/lib/chef/log.rb
@@ -19,6 +19,7 @@
require 'logger'
require 'chef/monologger'
+require 'chef/exceptions'
require 'mixlib/log'
class Chef
@@ -34,6 +35,14 @@ class Chef
end
end
+ def self.deprecation(msg=nil, &block)
+ if Chef::Config[:treat_deprecation_warnings_as_errors]
+ error(msg, *block)
+ raise Chef::Exceptions::DeprecatedFeatureError
+ else
+ warn(msg, *block)
+ end
+ end
+
end
end
-