diff options
| author | Markus Roberts <Markus@reality.com> | 2009-12-29 11:29:09 -0800 |
|---|---|---|
| committer | James Turnbull <james@lovedthanlost.net> | 2009-12-31 17:55:20 +1100 |
| commit | 7e2e12be7827c2adb64a192b5b7176c7c541af44 (patch) | |
| tree | a982203effddaff3250e3a012584b1a1a49c5386 /lib | |
| parent | c84186ab0736a8e1379294546159d8f6cfec6894 (diff) | |
| download | puppet-7e2e12be7827c2adb64a192b5b7176c7c541af44.tar.gz puppet-7e2e12be7827c2adb64a192b5b7176c7c541af44.tar.xz puppet-7e2e12be7827c2adb64a192b5b7176c7c541af44.zip | |
Fix for #2995 (don't fail to load PSON when UTF-8 missing)
We don't actually rely on iconv's UTF-8 support, so its absence
shouldn't cause the PSON feature to fail on system (e.g. HPUX)
where it isn't fully implemented.
This change exposed a dependency on library load order that was causing
Puppet::Util::Log to raise an error. I've removed the dependency of
Puppet::Type from Puppet::Util::Log.
Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/puppet/util/log.rb | 28 | ||||
| -rw-r--r-- | lib/puppet/util/log_paths.rb | 14 |
2 files changed, 24 insertions, 18 deletions
diff --git a/lib/puppet/util/log.rb b/lib/puppet/util/log.rb index 4cdad700c..90d722900 100644 --- a/lib/puppet/util/log.rb +++ b/lib/puppet/util/log.rb @@ -511,11 +511,16 @@ class Puppet::Util::Log # If they pass a source in to us, we make sure it is a string, and # we retrieve any tags we can. def source=(source) - # We can't store the actual source, we just store the path. - # We can't just check for whether it responds to :path, because - # plenty of providers respond to that in their normal function. - if (source.is_a?(Puppet::Type) or source.is_a?(Puppet::Parameter)) and source.respond_to?(:path) - set_source_from_ral(source) + if source.respond_to?(:source_descriptors) + descriptors = source.source_descriptors + @source = descriptors[:path] + + descriptors[:tags].each { |t| tag(t) } + + [:file, :line, :version].each do |param| + next unless descriptors[param] + send(param.to_s + "=", descriptors[param]) + end else @source = source.to_s end @@ -528,19 +533,6 @@ class Puppet::Util::Log def to_s return @message end - - private - - def set_source_from_ral(source) - @source = source.path - - source.tags.each { |t| tag(t) } - - [:file, :line, :version].each do |param| - next unless value = source.send(param) - send(param.to_s + "=", value) - end - end end # This is for backward compatibility from when we changed the constant to Puppet::Util::Log diff --git a/lib/puppet/util/log_paths.rb b/lib/puppet/util/log_paths.rb index 1a6bafc45..46f6c481d 100644 --- a/lib/puppet/util/log_paths.rb +++ b/lib/puppet/util/log_paths.rb @@ -11,5 +11,19 @@ module Puppet::Util::LogPaths return "/" + @path.join("/") end + + def source_descriptors + descriptors = {} + + descriptors[:tags] = tags + + [:path, :file, :line, :version].each do |param| + next unless value = send(param) + descriptors[param] = value + end + + return descriptors + end + end |
