[Pkg-puppet-devel] [SCM] Puppet packaging for Debian branch, experimental, updated. debian/2.6.8-1-844-g7ec39d5

Jesse Wolfe jes5199 at gmail.com
Tue May 10 08:05:28 UTC 2011


The following commit has been merged in the experimental branch:
commit 026eba3a7b568e6ef7c8ea8032ea49c65dfd8295
Author: Jesse Wolfe <jes5199 at gmail.com>
Date:   Tue Mar 1 11:38:02 2011 -0800

    Revert #5691 "Merge remote branch 'brice/feature/process-instrumentation' into next"
    
    This reverts commit 448a439f5abc3d51accececb678e9c5f547f7615, reversing
    changes made to 06939c51a3f675137b53fac8a521132a4c9cfcbe.
    As per discussion in http://projects.puppetlabs.com/issues/5691#note-5

diff --git a/lib/puppet/configurer.rb b/lib/puppet/configurer.rb
index a39f9cd..72e387c 100644
--- a/lib/puppet/configurer.rb
+++ b/lib/puppet/configurer.rb
@@ -3,7 +3,6 @@ require 'sync'
 require 'timeout'
 require 'puppet/network/http_pool'
 require 'puppet/util'
-require 'puppet/util/instrumentation'
 
 class Puppet::Configurer
   class CommandHookError < RuntimeError; end
@@ -13,7 +12,6 @@ class Puppet::Configurer
 
   include Puppet::Configurer::FactHandler
   include Puppet::Configurer::PluginHandler
-  include Puppet::Util::Instrumentation
 
   # For benchmarking
   include Puppet::Util
@@ -78,17 +76,11 @@ class Puppet::Configurer
   def prepare(options)
     dostorage
 
-    instrument("downloading plugins") do
-      download_plugins unless options[:skip_plugin_download]
-    end
+    download_plugins unless options[:skip_plugin_download]
 
-    instrument("downloading facts plugins") do
-      download_fact_plugins unless options[:skip_plugin_download]
-    end
+    download_fact_plugins unless options[:skip_plugin_download]
 
-    instrument("executing prerun command") do
-      execute_prerun_command
-    end
+    execute_prerun_command
   end
 
   # Get the remote catalog, yo.  Returns nil if no catalog can be found.
@@ -154,10 +146,8 @@ class Puppet::Configurer
     transaction = nil
 
     begin
-      instrument("applying catalog") do
-        benchmark(:notice, "Finished catalog run") do
-          transaction = catalog.apply(options)
-        end
+      benchmark(:notice, "Finished catalog run") do
+        transaction = catalog.apply(options)
       end
       report
     rescue => detail
@@ -176,10 +166,7 @@ class Puppet::Configurer
     execute_postrun_command
 
     Puppet::Util::Log.close(report)
-
-    instrument("sending report") do
-      send_report(report, transaction)
-    end
+    send_report(report, transaction)
   end
 
   def send_report(report, trans)
diff --git a/lib/puppet/network/http/handler.rb b/lib/puppet/network/http/handler.rb
index aa33f82..2b9e81b 100644
--- a/lib/puppet/network/http/handler.rb
+++ b/lib/puppet/network/http/handler.rb
@@ -5,12 +5,10 @@ require 'puppet/network/http/api/v1'
 require 'puppet/network/rest_authorization'
 require 'puppet/network/rights'
 require 'resolv'
-require 'puppet/util/instrumentation'
 
 module Puppet::Network::HTTP::Handler
   include Puppet::Network::HTTP::API::V1
   include Puppet::Network::RestAuthorization
-  include Puppet::Util::Instrumentation
 
   attr_reader :server, :handler
 
@@ -67,9 +65,7 @@ module Puppet::Network::HTTP::Handler
 
     check_authorization(indirection, method, key, params)
 
-    instrument("processing #{indirection} #{key}") do
-      send("do_#{method}", indirection, key, params, request, response)
-    end
+    send("do_#{method}", indirection, key, params, request, response)
   rescue SystemExit,NoMemoryError
     raise
   rescue Exception => e
diff --git a/lib/puppet/parser/compiler.rb b/lib/puppet/parser/compiler.rb
index 4301e8c..fdabd05 100644
--- a/lib/puppet/parser/compiler.rb
+++ b/lib/puppet/parser/compiler.rb
@@ -4,7 +4,6 @@
 require 'puppet/node'
 require 'puppet/resource/catalog'
 require 'puppet/util/errors'
-require 'puppet/util/instrumentation'
 
 require 'puppet/resource/type_collection_helper'
 
@@ -14,12 +13,9 @@ class Puppet::Parser::Compiler
   include Puppet::Util
   include Puppet::Util::Errors
   include Puppet::Resource::TypeCollectionHelper
-  extend Puppet::Util::Instrumentation
 
   def self.compile(node)
-    instrument("compiling #{node.name}") do
-      new(node).compile.to_resource
-    end
+    new(node).compile.to_resource
   rescue => detail
     puts detail.backtrace if Puppet[:trace]
     raise Puppet::Error, "#{detail} on node #{node.name}"
diff --git a/lib/puppet/transaction.rb b/lib/puppet/transaction.rb
index df4c8b2..eba601c 100644
--- a/lib/puppet/transaction.rb
+++ b/lib/puppet/transaction.rb
@@ -4,11 +4,8 @@
 require 'puppet'
 require 'puppet/util/tagging'
 require 'puppet/application'
-require 'puppet/util/instrumentation'
 
 class Puppet::Transaction
-  include Puppet::Util::Instrumentation
-
   require 'puppet/transaction/event'
   require 'puppet/transaction/event_manager'
   require 'puppet/transaction/resource_harness'
@@ -141,10 +138,8 @@ class Puppet::Transaction
           next
         end
         ret = nil
-        instrument("evaluating #{resource}") do
-          seconds = thinmark do
-            ret = eval_resource(resource)
-          end
+        seconds = thinmark do
+          ret = eval_resource(resource)
         end
 
         resource.info "Evaluated in %0.2f seconds" % seconds if Puppet[:evaltrace] and @catalog.host_config?
diff --git a/lib/puppet/util/instrumentation.rb b/lib/puppet/util/instrumentation.rb
deleted file mode 100644
index 5981bea..0000000
--- a/lib/puppet/util/instrumentation.rb
+++ /dev/null
@@ -1,12 +0,0 @@
-require 'puppet/util/instrumentation/process_name'
-
-module Puppet::Util::Instrumentation
-
-  def instrument(title)
-    Puppet::Util::Instrumentation::ProcessName.instrument(title) do
-      yield
-    end
-  end
-  module_function :instrument
-
-end
\ No newline at end of file
diff --git a/lib/puppet/util/instrumentation/process_name.rb b/lib/puppet/util/instrumentation/process_name.rb
deleted file mode 100644
index 370d29e..0000000
--- a/lib/puppet/util/instrumentation/process_name.rb
+++ /dev/null
@@ -1,129 +0,0 @@
-require 'puppet'
-require 'puppet/util/instrumentation'
-
-module Puppet::Util::Instrumentation
-  class ProcessName
-
-    # start scrolling when process name is longer than
-    SCROLL_LENGTH = 50
-
-    @active = false
-    class << self
-      attr_accessor :active, :reason
-    end
-
-    trap(:QUIT) do
-      active? ? disable : enable
-    end
-
-    def self.active?
-      !! @active
-    end
-
-    def self.enable
-      mutex.synchronize do
-        Puppet.info("Process Name instrumentation is enabled")
-        @active = true
-        @x = 0
-        setproctitle
-      end
-    end
-
-    def self.disable
-      mutex.synchronize do
-        Puppet.info("Process Name instrumentation is disabled")
-        @active = false
-        $0 = @oldname
-      end
-    end
-
-    def self.instrument(activity)
-      # inconditionnally start the scroller thread here
-      # because it doesn't seem possible to start a new thrad
-      # from the USR2 signal handler
-      @scroller ||= Thread.new do
-        loop do
-          scroll if active?
-          sleep 1
-        end
-      end
-
-      push_activity(Thread.current, activity)
-      yield
-    ensure
-      pop_activity(Thread.current)
-    end
-
-    def self.setproctitle
-      @oldname ||= $0
-      $0 = "#{base}: " + rotate(process_name, at x) if active?
-    end
-
-    def self.push_activity(thread, activity)
-      mutex.synchronize do
-        @reason ||= {}
-        @reason[thread] ||= []
-        @reason[thread].push(activity)
-        setproctitle
-      end
-    end
-
-    def self.pop_activity(thread)
-      mutex.synchronize do
-        @reason[thread].pop
-        if @reason[thread].empty?
-          @reason.delete(thread)
-        end
-        setproctitle
-      end
-    end
-
-    def self.process_name
-      out = (@reason || {}).inject([]) do |out, reason|
-        out << "#{thread_id(reason[0])} #{reason[1].join(',')}"
-      end
-      out.join(' | ')
-    end
-
-    # certainly non-portable
-    def self.thread_id(thread)
-      thread.inspect.gsub(/^#<.*:0x([a-f0-9]+) .*>$/, '\1')
-    end
-
-    def self.rotate(string, steps)
-      steps ||= 0
-      if string.length > 0 && steps > 0
-        steps = steps % string.length
-        return string[steps..string.length].concat " -- #{string[0..(steps-1)]}"
-      end
-      string
-    end
-
-    def self.base
-      basename = case Puppet.run_mode.name
-      when :master
-        "master"
-      when :agent
-        "agent"
-      else
-        "puppet"
-      end
-    end
-
-    def self.mutex
-      #Thread.exclusive {
-        @mutex ||= Sync.new
-      #}
-      @mutex
-    end
-
-    def self.scroll
-      return if process_name.length < SCROLL_LENGTH
-      mutex.synchronize do
-        setproctitle
-        @x += 1
-      end
-    end
-
-  end
-end
\ No newline at end of file
diff --git a/spec/unit/util/instrumentation/process_name_spec.rb b/spec/unit/util/instrumentation/process_name_spec.rb
deleted file mode 100644
index 9cbedf2..0000000
--- a/spec/unit/util/instrumentation/process_name_spec.rb
+++ /dev/null
@@ -1,207 +0,0 @@
-#!/usr/bin/env ruby
-
-require File.dirname(__FILE__) + '/../../../spec_helper'
-
-describe Puppet::Util::Instrumentation::ProcessName do
-
-  ProcessName = Puppet::Util::Instrumentation::ProcessName
-
-  after(:each) do
-    ProcessName.reason = {}
-  end
-
-  it "should be disabled by default" do
-    ProcessName.should_not be_active
-  end
-
-  describe "when managing thread activity" do
-    before(:each) do
-      ProcessName.stubs(:setproctitle)
-      ProcessName.stubs(:base).returns("base")
-    end
-
-    it "should be able to append activity" do
-      thread1 = stub 'thread1'
-      ProcessName.push_activity(:thread1,"activity1")
-      ProcessName.push_activity(:thread1,"activity2")
-
-      ProcessName.reason[:thread1].should == ["activity1", "activity2"]
-    end
-
-    it "should be able to remove activity" do
-      ProcessName.push_activity(:thread1,"activity1")
-      ProcessName.push_activity(:thread1,"activity1")
-      ProcessName.pop_activity(:thread1)
-
-      ProcessName.reason[:thread1].should == ["activity1"]
-    end
-
-    it "should maintain activity thread by thread" do
-      ProcessName.push_activity(:thread1,"activity1")
-      ProcessName.push_activity(:thread2,"activity2")
-
-      ProcessName.reason[:thread1].should == ["activity1"]
-      ProcessName.reason[:thread2].should == ["activity2"]
-    end
-
-    it "should set process title" do
-      ProcessName.expects(:setproctitle)
-
-      ProcessName.push_activity("thread1","activity1")
-    end
-  end
-
-  describe "when computing the current process name" do
-      before(:each) do
-        ProcessName.stubs(:setproctitle)
-        ProcessName.stubs(:base).returns("base")
-      end
-
-      it "should include every running thread activity" do
-        thread1 = stub 'thread1', :inspect => "\#<Thread:0xdeadbeef run>", :hash => 1
-        thread2 = stub 'thread2', :inspect => "\#<Thread:0x12344321 run>", :hash => 0
-
-        ProcessName.push_activity(thread1,"Compiling node1.domain.com")
-        ProcessName.push_activity(thread2,"Compiling node4.domain.com")
-        ProcessName.push_activity(thread1,"Parsing file site.pp")
-        ProcessName.push_activity(thread2,"Parsing file node.pp")
-
-        ProcessName.process_name.should == "12344321 Compiling node4.domain.com,Parsing file node.pp | deadbeef Compiling node1.domain.com,Parsing file site.pp"
-      end
-  end
-
-  describe "when finding base process name" do
-      {:master => "master", :agent => "agent", :user => "puppet"}.each do |program,base|
-        it "should return #{base} for #{program}" do
-          Puppet.run_mode.stubs(:name).returns(program)
-          ProcessName.base.should == base
-        end
-      end
-  end
-
-  describe "when finding a thread id" do
-      it "should return the id from the thread inspect string" do
-        thread = stub 'thread', :inspect => "\#<Thread:0x1234abdc run>"
-        ProcessName.thread_id(thread).should == "1234abdc"
-      end
-  end
-
-  describe "when scrolling the instrumentation string" do
-      it "should rotate the string of various step" do
-        ProcessName.rotate("this is a rotation", 10).should == "rotation -- this is a "
-      end
-
-      it "should not rotate the string for the 0 offset" do
-        ProcessName.rotate("this is a rotation", 0).should == "this is a rotation"
-      end
-  end
-
-  describe "when setting process name" do
-    before(:each) do
-      ProcessName.stubs(:process_name).returns("12345 activity")
-      ProcessName.stubs(:base).returns("base")
-      @oldname = $0
-    end
-
-    after(:each) do
-      $0 = @oldname
-    end
-
-    it "should not do it if the feature is disabled" do
-      ProcessName.setproctitle
-
-      $0.should_not == "base: 12345 activity"
-    end
-
-    it "should do it if the feature is enabled" do
-      ProcessName.active = true
-      ProcessName.setproctitle
-
-      $0.should == "base: 12345 activity"
-    end
-  end
-
-  describe "when setting a probe" do
-    before(:each) do
-      thread = stub 'thread', :inspect => "\#<Thread:0x1234abdc run>"
-      Thread.stubs(:current).returns(thread)
-      Thread.stubs(:new)
-      ProcessName.active = true
-    end
-
-    it "should start the scroller thread" do
-      Thread.expects(:new)
-      ProcessName.instrument("doing something") do
-      end
-    end
-
-    it "should push current thread activity and execute the block" do
-      ProcessName.instrument("doing something") do
-        $0.should == "puppet: 1234abdc doing something"
-      end
-    end
-
-    it "should finally pop the activity" do
-      ProcessName.instrument("doing something") do
-      end
-      $0.should == "puppet: "
-    end
-  end
-
-  describe "when enabling" do
-    before do
-      Thread.stubs(:new)
-      ProcessName.stubs(:setproctitle)
-    end
-
-    it "should be active" do
-      ProcessName.enable
-      ProcessName.should be_active
-    end
-
-    it "should set the new process name" do
-      ProcessName.expects(:setproctitle)
-      ProcessName.enable
-    end
-  end
-
-  describe "when disabling" do
-    it "should set active to false" do
-      ProcessName.active = true
-      ProcessName.disable
-      ProcessName.should_not be_active
-    end
-
-    it "should restore the old process name" do
-      oldname = $0
-      ProcessName.active = true
-      ProcessName.setproctitle
-      ProcessName.disable
-      $0.should == oldname
-    end
-  end
-
-  describe "when scrolling" do
-    it "should do nothing for shorter process names" do
-      ProcessName.expects(:setproctitle).never
-      ProcessName.scroll
-    end
-
-    it "should call setproctitle" do
-      ProcessName.stubs(:process_name).returns("x" * 60)
-      ProcessName.expects(:setproctitle)
-      ProcessName.scroll
-    end
-
-    it "should increment rotation offset" do
-      name = "x" * 60
-      ProcessName.active = true
-      ProcessName.stubs(:process_name).returns(name)
-      ProcessName.expects(:rotate).once.with(name,1).returns("")
-      ProcessName.expects(:rotate).once.with(name,2).returns("")
-      ProcessName.scroll
-      ProcessName.scroll
-    end
-  end
-
-end
\ No newline at end of file

-- 
Puppet packaging for Debian



More information about the Pkg-puppet-devel mailing list