From: David Schmitt Date: Thu, 27 Jul 2017 17:55:03 +0000 (+0100) Subject: More logging functions X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=a9a8f15959a095f684f047179ee52b834b5dc0ca;p=puppet-modules%2Fpuppetlabs-apt.git More logging functions --- diff --git a/lib/puppet_x/apt_key/resource_api.rb b/lib/puppet_x/apt_key/resource_api.rb index d3aad0e..17fcc99 100644 --- a/lib/puppet_x/apt_key/resource_api.rb +++ b/lib/puppet_x/apt_key/resource_api.rb @@ -47,20 +47,63 @@ class Logger def initialize(typename) @typename = typename end + + def format_titles(titles) + "#{@typename}[#{[titles].flatten.compact.join(", ")}]" + end + + def setup_context(titles, message = nil) + @context = format_titles(titles) + @context += ": #{message}: " if message + end + [:debug, :info, :notice, :warning, :err, :critical, :alert, :emerg].each do |method| define_method(method) do |*args| if args.length == 1 - puts "#{method}: #{@typename}: #{args.last}" + puts "#{method}: #{@context || @typename}: #{args.last}" elsif args.length == 2 - titles = args.first - titles = [titles].flatten.compact - resources = titles.collect { |t| "#{@typename}[#{t}]" }.join(", ") + resources = format_titles(args.first) puts "#{method}: #{resources}: #{args.last}" else puts "#{method}: #{args.map(&inspect).join(", ")}" end end end + + [:creating, :updating, :deleting, :failing].each do |method| + define_method(method) do |titles, message: method.to_s.capitalize, &block| + setup_context(titles, message) + begin + debug("Start") + yield + notice("Finished in x.yz seconds") + rescue + err("Failed after x.yz seconds") + raise + ensure + @context = nil + end + end + end + + def processing(titles, is, should, message: 'Processing', &block) + setup_context(titles, message) + begin + debug("Changing #{is.inspect} to #{should.inspect}") + yield + notice("Changed from #{is.inspect} to #{should.inspect} in x.yz seconds") + rescue + err("Failed changing #{is.inspect} to #{should.inspect} after x.yz seconds") + raise + ensure + @context = nil + end + end + + def attribute_changed(titles, is, should, message: nil) + setup_context(titles, message) + notice("Changed from #{is.inspect} to #{should.inspect}") + end end def register_type(definition)