]> review.fuel-infra Code Review - puppet-modules/puppetlabs-apt.git/commitdiff
More logging functions
authorDavid Schmitt <david.schmitt@puppet.com>
Thu, 27 Jul 2017 17:55:03 +0000 (18:55 +0100)
committerDavid Schmitt <david.schmitt@puppet.com>
Mon, 11 Sep 2017 09:53:34 +0000 (10:53 +0100)
lib/puppet_x/apt_key/resource_api.rb

index d3aad0ed4f31c37eeaa002b2d91a796437ae370f..17fcc99b33c2ecd3983e4d2e45309382be220065 100644 (file)
@@ -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)