Update stdlib
[mirror/dsa-puppet.git] / 3rdparty / modules / stdlib / lib / puppet / functions / deprecation.rb
1 # Function to print deprecation warnings, Logs a warning once for a given key. The uniqueness key - can appear once. The msg is the message text including any positional information that is formatted by the user/caller of the method  It is affected by the puppet setting 'strict', which can be set to :error (outputs as an error message), :off (no message / error is displayed) and :warning (default, outputs a warning)  *Type*: String, String.
2 #
3
4 Puppet::Functions.create_function(:deprecation) do
5   dispatch :deprecation do
6     param 'String', :key
7     param 'String', :message
8   end
9
10   def deprecation(key, message)
11     if defined? Puppet::Pops::PuppetStack.stacktrace()
12       stacktrace = Puppet::Pops::PuppetStack.stacktrace()
13       file = stacktrace[0]
14       line = stacktrace[1]
15       message = "#{message} at #{file}:#{line}"
16     end
17     # depending on configuration setting of strict
18     case Puppet.settings[:strict]
19     when :off
20       # do nothing
21     when :error
22       fail("deprecation. #{key}. #{message}")
23     else
24       unless ENV['STDLIB_LOG_DEPRECATIONS'] == 'false'
25         Puppet.deprecation_warning(message, key)
26       end
27     end
28   end
29 end