[Pkg-puppet-devel] [SCM] Puppet packaging for Debian branch, experimental, updated. debian/2.6.8-1-844-g7ec39d5
Nick Lewis
nick at puppetlabs.com
Tue May 10 08:12:42 UTC 2011
The following commit has been merged in the experimental branch:
commit e5609ffefb4132049a969d88f74138058fe78694
Author: Markus Roberts <Markus at reality.com>
Date: Fri Oct 22 07:09:30 2010 -0700
Step towards #5027 -- add Logging#deprication_warning facility
This commit adds a method analogous to Puppet.warn which 1) only logs each
message the first time it is received and 2) only logs the first 100 messages
it receives. Messages are logged via warn.
This could easily be made more flexible by making the hard limit and effective
log level user settable, if desired.
diff --git a/lib/puppet/util/logging.rb b/lib/puppet/util/logging.rb
index bc52b17..b6845b8 100644
--- a/lib/puppet/util/logging.rb
+++ b/lib/puppet/util/logging.rb
@@ -15,6 +15,17 @@ module Puppet::Util::Logging
end
end
+ def deprication_warning(message)
+ $deprication_warnings ||= Hash.new(0)
+ if $deprication_warnings.length < 100 and ($deprication_warnings[message] += 1) == 1
+ warn message
+ end
+ end
+
+ def clear_deprication_warnings
+ $deprication_warnings.clear if $deprication_warnings
+ end
+
private
def is_resource?
diff --git a/spec/unit/util/logging_spec.rb b/spec/unit/util/logging_spec.rb
index edc88f1..1585c3e 100755
--- a/spec/unit/util/logging_spec.rb
+++ b/spec/unit/util/logging_spec.rb
@@ -92,4 +92,29 @@ describe Puppet::Util::Logging do
end
end
end
+
+ describe "when sending a deprication warning" do
+ before do
+ @logger.clear_deprication_warnings
+ end
+
+ it "should the message with warn" do
+ @logger.expects(:warn).with('foo')
+ @logger.deprication_warning 'foo'
+ end
+
+ it "should only log each unique message once" do
+ @logger.expects(:warn).with('foo').once
+ 5.times { @logger.deprication_warning 'foo' }
+ end
+
+ it "should only log the first 100 messages" do
+ (1..100).each { |i|
+ @logger.expects(:warn).with(i).once
+ @logger.deprication_warning i
+ }
+ @logger.expects(:warn).with(101).never
+ @logger.deprication_warning 101
+ end
+ end
end
--
Puppet packaging for Debian
More information about the Pkg-puppet-devel
mailing list